Principios y Patrones de Diseño

Slides:



Advertisements
Presentaciones similares
S.O.L.I.D. AltNetHispano Carlos Peix
Advertisements

METODOLOGÍA ORIENTADA A OBJETOS CARACTERISTICAS DEL PROCESO
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Fundamentos de Diseño de Software INFT.1
Adapter, Bridge, Decorator.
Enfoques de desarrollo
Arquitectura Orientada a Servicios (SOA)
Arquitectura CLARO-TECNOTREE
Patrones de Diseño GEYFFER ALEXANDER ACOSTA CRISTHIAN DOUGLAS CASTRO
Arquitectura multicapas orientadas a objetos
Fundamentos de Ingeniería de Software
Introducción a la programación orientada a aspectos.
Prof. César Luza Montero
Nelson Medinilla Martínez Universidad Politécnica de Madrid
Aplicación del paradigma orientado a objetos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ingeniería del Software
Encapsulamiento y Abstracción
Patrones de diseño OO Gang of Four (GoF)
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Algunas Herramientas de Apoyo al Diseño de Software Agustín J. González ELO329: Diseño y programación orientados a objetos.
Modelado Arquitectónico
STARUML.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Ingeniería de Software

Patrones Creacionales
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
DISEÑO DE SOFTWARE 1ª. Parte
Programación orientada a objetos
Lenguajes de Programación Tema 3
Arquitectura Orientada a Servicios
CONCEPTOS BÁSICOS Diseño de Sistemas.
Introducción a la Ingeniería de Software Diseño. 2 Bibliografía An Integrated Approach to Software Engineering 3ed Springer Pankaj Jalote Capítulos 6.
3.- Introducción a Patrones de Diseño
Son la base para la búsqueda de soluciones o problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method.
Patrones de diseño Web Pierre Sergei Zuppa Azúa.
Ingeniería en Sistemas de Información
Métricas Técnicas para Sistemas Orientados a Objeto
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Eva Lleonart Martín Asunción García-Menacho Rovira
SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño
PATRONES DE DISEÑO.
PATRÓN ADAPTER (Adaptador) Elena Moreno Ramírez Laura Sánchez Romero Aroa Solana Ruiz.
Diagrama de Clases ACI 570.
Interfaces ELO329: Diseño y Programación Orientados a Objetos.
Almudena Moya Muñoz Julio 2006 Una vuelta de tuerca a los principios de diseño ágiles.
Importancia en la efectividad del:
Desarrollo de Software Orientado a Objetos (deficiencias)
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
Estructuras de Datos y Algoritmos Introducción. Texto Requerido: Carrano & Prichard: Data Abstraction and Problem Solving with Java; Walls and Mirrors,
Ciclo de Vida del Software Paradigmas de Desarrollo
Diseño de Sistemas.
Patrones de diseño equipo n.1
Algoritmos y Programación III
Jairo Pinto Ing. sistemas
Actividades en el Proceso de desarrollo de Software
*INTERFACES*. DEFINICION Cuando uno usa una herramienta, o accede e interactúa con un sistema, suele haber “algo” entre uno mismo y el objeto de la interacción.
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
Patrón de Diseño Brigde ( Handle/Body) Calderón Márquez Jorge Alberto Posgrado de Ciencia e Ingeniería en Computación. Tecnología Orientada a Objetos.
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
NZ/EA/abril Introducción Julio NZ/EA/abril ¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas.
VI. EVALUACIÓN DE LOS RECURSOS
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Fundamentos de Ingeniería de Software
Oswald David Blanco Solipas Laura Marcela Cervantes Aguilar Julieth del Carmen Glen Castro Danesa Nini Hernández Blanco.
Transcripción de la presentación:

Principios y Patrones de Diseño Basado en el artículo “Principles and Patterns” de Robert C. Martin Arquitectura de software Dominio de patrones de diseño: módulos y su interconexión Copyright © 2000 by Robert C. Martin. All Rights Reserved

INTRODUCCION: El diseño de muchas aplicaciones de software comienza como una imagen o idea en la mente de sus diseñadores. Los patrones de diseño son descripciones de clases y objetos relacionados que están adaptados para resolver un problema de diseño general en un contexto determinado.

SINTOMAS DE LA DEGRADACION RIGIDEZ: Tendencia del software a ser difícil de cambiar. FRAGILIDAD:Un cambio en alguna parte de un software, ocasiona cambios en otros sectores INMOVILIDAD: Inhabilidad de reusar software

SINTOMAS DE LA DEGRADACION VISCOSIDAD: De entorno: Entorno de desarrollo ineficiente. De diseño: Cuando los métodos de preservar el diseño son mas difícil de emplear que los métodos que no preservan el diseño.

PRINCIPIOS DE DISEÑO DE CLASES PRINCIPIO ABIERTO-CERRADO (OCP): Un módulo debe ser abierto para extensión pero cerrado para modificación. PRINCIO DE SUSTITUCION DE LISKOV (LSP): Las subclases deben ser sustitutas de sus clases base

PRINCIPIOS DE DISEÑO DE CLASES PRINCIPIO DE INVERSION DE DEPENDENCIA (DIP): Dependa de abstracciones, no dependa de implementaciones. PRINCIPIO DE SEGREGACION DE INTERFACES (ICP):Los clientes de una clase no deben depender de interfaces que no utilicen.

PRINCIPIOS DE ARQUITECTURA DE PAQUETES PRINCIPIOS DE COHESION DE PAQUETES: Las clases en un mismo paquetes se usan juntas. PRINCIPIOS DE ACOPLAMIENTO DE PAQUETES: Son normas que rigen la interrelación entre paquetes.

PRINCIPIOS DE COHESION DE PAQUETES Principio de equivalencia de liberación y reuso (REP): Agrupar las clases reusable en paquetes que se puedan administrar y controlar. Principio de agrupación común (CCP): Clases que cambian juntas pertenecen a un mismo grupo. Principio de reuso común (CRP): Clases que no son rehusadas juntas no deben ser agrupadas.

PRINCIPIOS DE ACOPLAMIENTO DE PAQUETES Principio de dependencia acíclica (ADP): Las dependencias entre paquetes no debe formar ciclos. Principio de dependencia estable (SDP): La dependencia debe ser en dirección de la estabilidad. Principio de abstracción estable (SAP): Los paquetes estables deben ser paquetes abstractos.

PATRONES DE ARQUITECTURA ORIENTADA A OBJETOS La definición esencial de un patrón de diseño es una buena solución, conocida y desgastada, a un problema común.

PATRONES DE ARQUITECTURA ORIENTADA A OBJETOS Abstract Server: Cuando un cliente depende directamente del servidor violamos el Principio de Dependencia Inversa, este problema lo resolvemos introduciendo una interface. Adapter: Se utiliza para transformar una interfaz en otra, de tal modo que una clase que no pudiera utilizar la primera, haga uso de ella a través de la segunda Observer: Se usa cuando no queremos que el detector sepa del actor.

PATRONES DE ARQUITECTURA ORIENTADA A OBJETOS Bridge: Se usa para desacoplar una abstracción de su implementación. Abstract Factory: Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia concreta que se esté usando.

CONCLUSION Los patrones de diseño describen soluciones simples y elegantes a problemas específicos de diseño de software orientado a objetos. Los mismos representan soluciones que han sido desarrolladas y han ido evolucionando a lo largo del tiempo.

BIBLIOGRAFIA Principles and Patterns2009-Articulo de Robert C Martin Programación en java: Fundamentos de programación y principios de diseño http://elvex.ugr.es/decsai/java/ “Patrones de diseño”. Gamma, E.; Helm, R.; Johnson, R.; Vlissides