Patrones de Diseño Patrones GRASP Experto Creador Alta Cohesión

Slides:



Advertisements
Presentaciones similares
Patrones GRASP.
Advertisements

Diagrama de Clases SPI 2016.
Conferencia 1: Principios de la Tecnología de Objetos Conceptos básicos de la Orientación a Objetos.
Introducción a las bases de datos. MODELO ENTIDAD RELACIÓN (CONTINUACIÓN)  Ejemplo de cómo se lee un diagrama entidad relación:
2012-BM5A. Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar.
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
NIA Planeación de una auditoria de Estados Financieros. NOMBRE: Beatriz Acero Zapana CURSO: Auditoria Financiera ESCUELA: Ciencias Contables y Financiera.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Tema: Análisis de una red trocal multiservicio para encriptación de información sobre MPLS basada en el estándar IETF con el protocolo GETVPN Autor:
Arquitectura y Patrones de diseño.
ESTRUTURA ORGANIZATIVA Y ORGANIGRAMA. ESTRUCTURA ORGANIZATIVA.
Programación Avanzada
Ingreso , proceso y salida de datos
Clases y Objetos.
Conexiones Discos Rigidos
Programación Avanzada
Ciclo de vida del producto y decisiones de selección del proceso
Programación Orientada a Objetos
Determinación de precios Determinación de precios Conceptos
U.T. 11: Introducción A Las Bases De Datos
Generalización de casos de uso
Lenguajes y representación técnica
Patrones de Diseño Agustín J. González ElO329.
Patrones de Diseño Agustín J. González ElO329.
Introducción a programación web Martin Esses
Programación orientada a objetos
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Novell Netware Autores: Cerrina Maria Josefina, Coto Marcelo,
TEMA 7 SISTEMAS DE INFORMACIÓN EN MARKETING
DIRECCIONAMIENTO IPV4 Prof.: Nelson Calderón.
Ingeniería de Software Somerville
Conexiones Discos Rígidos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
Modelo de 3 capas. Qué es la arquitectura de una aplicación? La arquitectura se refiere a la forma en la que es diseñada tanto física como lógicamente.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Ingeniería del Software
Conceptos Relacionados Unidad I. Parte A.
Niveles de gestión estratégica. Estrategia Funcional El principal objetivo de la estrategia es la creación de una ventaja competitiva sostenible en el.
APLICACIONES II ° Patrones De Diseño ° Esteban Omar Mora Delgado
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
Contabilidad de Costos Lic. Freddy García Castellón.
Universidad Nacional de Colombia - Leguajes de Programación
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
GICI-Grupo de Investigación en control Industrial 1 1.DESARROLLO DE UN MODELO MATEMÁTICO Para investigar como varía el comportamiento de un proceso químico.
ANALISIS DE SISTEMAS ANALISIS ORIENTADO A OBJETOS.
ESTRUCTURA DE S.OPERATIVO
Patrones de Diseño Sistemas de Información II – IS 445 Docente: Lisber Arana Hinostroza Mayo
Ingeniería de Software INF - 163
Punto 4 – Componentes del servicio DNS
Class adapter.
CAPA FÍSICA DEL MODELO OSI La capa física: Señales de comunicación.
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Estructura de los Sistemas Operativos Alumna:Arratea Almeyda Aracelli.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Subsistemas de Control n Los sistemas en general poseen una característica que los lleva a no solo permanecer sino a crecer y expandirse (principio de.
Patrones de Diseño Agustín J. González ElO329.
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS. INTRODUCCION. ¿ Qué es UML ?. UML, por sus siglas en Ingles, Unified Modeling Languaje.(Lenguaje Unificado.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
PROYECTO DE INVERSION Y EL CICLO DE PROYECTOS. CONCEPTOS DE PROYECTOS.
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
Estructura de los Sistemas Operativos por: Omar Saravia Tasayco
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
ICI 502 Procesos de Software
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
La Metodología Kimball, es una metodología empleada para la construcción de un almacén de datos (data warehouse, DW) que no es más que, una colección de.
Transcripción de la presentación:

Patrones de Diseño Patrones GRASP Experto Creador Alta Cohesión Bajo Acoplamiento Controlador Polimorfismo Fabricación Pura Indirección Variaciones Protegidas

Bibliografía Utilizada UML y Patrones Patrones de GoF Patrones populares de diseños presentados en el libro “Design Patterns”. Este libro fue escrito por cuatro autores (Gang of Four). Bibliografía Utilizada UML y Patrones de Craig Larman.

Presentación del Problema 1 CU: Internar Paciente. El Sistema en base al tipo de prestación establece el tipo de habitación que le corresponde y le muestra las camas disponibles. Consideraciones: No se conoce exactamente el algoritmo o política con la cual se determina el tipo de habitación. La política de asignación podría cambiar en el tiempo: Depende directamente del tipo de intervención. Depende del tipo de intervención, obra social, plan. Tenga en cuenta que ambas políticas podrían ser válidas y la gerencia determinar cuál aplicar en un momento dado.

Presentación del Problema 1 Podríamos plantear una asociación entre intervención y tipo de habitación. Pero no estamos seguros de que esta política sea correcta o que la misma no cambie en el futuro.

Posible Solución Aplicar Patrón Experto Asignar la responsabilidad de determinar la política a utilizar y la realización de la misma al ExpertoInternación.

Posible Solución Aplicar Patrón Experto Problemas Encontrados Un cambio en cualquiera de las políticas (lo cual es muy probable),o la inclusión de una nueva, tiene impacto directo en la clase con la responsabilidad de coordinar todo el caso de uso.

Solución Estrategia P: ¿Cómo diseñar diversos algoritmos o políticas que están relacionadas?¿Cómo diseñar que estos algoritmos o políticas puedan cambiar?

Solución Estrategia P: ¿Cómo diseñar diversos algoritmos o políticas que están relacionadas?¿Cómo diseñar que estos algoritmos o políticas puedan cambiar? S: Defina cada algoritmo/política/estrategia en una clase independiente con una interfaz común.

Estrategia Patrones Relacionados Variaciones Protegidas. P:¿Cómo diseñar objetos, subsistemas y sistemas de manera que las variaciones o inestabilidades en estos elementos no tenga un impacto no deseable en otros elementos? S: Identifique los puntos de variaciones previstas o de inestabilidad; asigne responsabilidades para crear una interfaz alrededor de ellos. Polimorfismo P: ¿Cómo manejar alternativas basadas en tipos?¿Cómo crear componentes de software conectables? S: Cuando las alternativas o comportamientos relacionados varía según el tipo, asigne responsabilidad para el comportamiento, utilizando operaciones polimórficas, a los tipos para los que varía el comportamiento.

Estrategia Estrategia P: ¿Cómo diseñar diversos algoritmos o políticas que están relacionadas?¿Cómo diseñar que estos algoritmos o políticas puedan cambiar? S: Defina cada algoritmo/política/estrategia en una clase independiente con una interfaz común. Patrones Relacionados: Polimorfismo Variaciones Protegidas

Estrategia Consideraciones La elección de la signatura del método es de extrema importancia, dado que indica qué tan flexible al cambio es la estrategia. Se debe elegir los parámetros de manera tal de cubrir todas las posibles variaciones de las políticas manteniendo el acoplamiento bajo.

¿Quién crea las estrategias? Nuevo Problema A partir de la solución anterior, nos da pie a un nuevo problema. ¿Quién crea las estrategias?

Posible Solución Patrón Creador En este caso asignamos la responsabilidad al experto del caso de uso.

Posible Solución Patrón Creador

Posible Solución Patrón Creador Problemas Encontrados: A pesar de que la lógica de los diferentes algoritmos o políticas ha quedado encapsulado dentro de las estrategias, sigue existiendo un acoplamiento entre el experto y las diferentes estrategias (alto acoplamiento). El experto es quien conoce que política aplicar (baja cohesión).

Solución: Patrón Factoría P: ¿Quién debe ser el responsable de la creación de objetos cuando existen consideraciones especiales, como una lógica de creación compleja, el deseo de separar las responsabilidades de la creación para mejorar la cohesión, etc.? S: Asignar la responsabilidad a un objeto de fabricación pura denominado factoría que maneje la creación.

Solución: Patrón Factoría

Patrón Factoría Consideraciones: Nótese que en este caso la factoría, para decidir que estrategia crear, lee el nombre de la estrategia de una fuente externa. Existen casos donde la estrategia a crear depende de los datos manejados en el caso de uso, por tanto, esos datos deben ser enviados como parámetros a la fábrica para determinar que objeto crear. Ejemplo: C.U. Facturación, descuentos por Tipo de producto.

¿Quien Crea la Factoría? En ejemplo anterior se otorgó esta responsabilidad al experto, pero: Obsérvese que sólo se necesita una única instancia de la factoría en el proceso. Los métodos de esta factoría podrían necesitar que se invoquen desde varios sitios del código.

Singleton P: Se admite exactamente una instancia de una clase -es un “singleton”-. Los objetos necesitan un único punto de acceso global. S: Defina un método estático de la clase que devuelva el singleton.

Singleton VS

Singleton Con la inicialización perezosa: Se evita el trabajo de creación si nunca se accede a la instancia getInstancia() podría contener una lógica de creación compleja y condicional

Solución Completa 1

Solución Completa 1

Solución Completa 1

Patrones GoF Estrategia Factoría Singleton Patrones de Diseño Patrones GRASP Experto Creador Alta Cohesión Bajo Acoplamiento Controlador Polimorfismo Fabricación Pura Indirección Variaciones Protegidas Patrones GoF Estrategia Factoría Singleton

Presentación del Problema 2 Si el paciente posee obra social, el sistema se comunica con la misma para obtener la información del estado del socio en la entidad y el plan que tiene asignado.

Presentación del Problema 2 Consideraciones: El sistema de la clínica debe comunicarse con un sistema externo hecho por otra empresa, la cual provee de una interfaz para la comunicación. El diseño debe ser lo suficientemente flexible para que permita la comunicación con sistemas de diversas obras sociales.

Presentación del Problema 2 Aunque todos los sistemas externos deben proveer una interfaz similar para la comunicación, es posible que existan diferencia en los mecanismos, tales como parámetros, protocolos, etc. OS1 CORBA RMI RPC SOAP Sistema de Clinica OS2 OS3

Posibles Soluciones Asignar la tarea de comunicación al experto del caso de uso. Esto no es conveniente debido a que se genera un alto acoplamiento en el experto y una baja cohesión. Utilizar solamente una indirección tampoco es conveniente debido a que un único objeto tendría la responsabilidad de comunicarse con todos los posibles sistemas

Solución: Patrón Adaptador P: ¿Cómo resolver interfaces incompatibles, o proporcionar una interfaz estable para componentes parecidos con diferentes interfaces?

Solución: Patrón Adaptador P: ¿Cómo resolver interfaces incompatibles, o proporcionar una interfaz estable para componentes parecidos con diferentes interfaces? S:Convierta la interfaz original de un componente en otra interfaz mediante un objeto adaptador intermedio.

Solución: Patrón Adaptador Cada uno de los adaptadores concretos tiene la responsabilidad de establecer las comunicación con el sistema correspondiente, teniendo en cuenta protocolos de comunicación, transformaciones de datos, etc

Adaptador Patrones Relacionados Variaciones Protegidas. P:¿Cómo diseñar objetos, subsistemas y sistemas de manera que las variaciones o inestabilidades en estos elementos no tenga un impacto no deseable en otros elementos? S: Identifique los puntos de variaciones previstas o de inestabilidad; asigne responsabilidades para crear una interfaz alrededor de ellos. Polimorfismo P: ¿Cómo manejar alternativas basadas en tipos?¿Como crear componentes de software conectables? S: Cuando las alternativas o comportamientos relacionados varía según el tipo, asigne responsabilidad para el comportamiento, utilizando operaciones polimórficas, a los tipos para los que varía el comportamiento. Indirección P:¿Dónde asignar una responsabilidad para evitar el acoplamiento directo entre dos o mas cosas?¿Cómo desacoplar los objetos de manera que soporte el bajo acoplamiento y el potencial de reutilización permanezca alto? S: Asigne la responsabilidad a un objeto intermedio que medie entre otros componentes o servicios de manera que no se acople directamente.

Patrón Adaptador P: ¿Cómo resolver interfaces incompatibles, o proporcionar una interfaz estable para componentes parecidos con diferentes interfaces? S:Convierta la interfaz original de un componente en otra interfaz mediante un objeto adaptador intermedio. Patrones Relacionados: Polimorfismo Variaciones Protegidas Indirección

Aplicando los patrones fábrica y singleton: Solución Completa 2 Aplicando los patrones fábrica y singleton:

Solución Completa 2

Patrones de Diseño Patrones GRASP Patrones GoF Estrategia Factoría Experto Creador Alta Cohesión Bajo Acoplamiento Controlador Polimorfismo Fabricación Pura Indirección Variaciones Protegidas Patrones GoF Estrategia Factoría Singleton Adaptador

Patrón DTO Un inconveniente que se presenta en la realización de los casos de uso es el de retorno de datos a la interfaz. Retornar una entidad a la interfaz implica un alto acoplamiento entre clases que no debería conocerse, dado que se encuentran en capas diferentes.

Patrón DTO

Patrón DTO (Objetos para la trasferencia de datos)‏ P: ¿Cómo puedo intercambiar datos entre diferentes capas de una aplicación de manera de mantener un bajo acoplamiento entre ellas? S: Crear pseudo-entidades a medida de las necesidades. Es decir, definir clases con los atributos necesarios para representar los datos que se desean intercambiar entre las diferentes capas.

Patrón DTO Solución Camas Disponibles Este patrón es muy efectivo ya que en lugar de mandar o recibir datos de manera individual, contiene todos los datos en una estructura única (estructura de datos) solicitada ya sea por la petición o la respuesta. Al tratarse de objetos transversales un cambio en la capa generadora de estos objetos no implica un cambio en las capas consumidoras y viceversa, consiguiendo así el desacoplamiento deseado.

Patrón DTO Solución Camas Disponibles Secuencia 1

Patrón DTO Solución Camas Disponibles Secuencia 2

Patrón DTO: Otra Aplicación De la interfaz del adaptador de la solución anterior: En la signatura del método podemos observar una gran cantidad de parámetros sin ningún tipo de estructura. Sería deseable contar con una estructura flexible que permita organizar los datos y representar estructuras aunque las mismas no se correspondan con una entidad del sistema.

Solución DTO Adaptador Este tipo de objetos no tienen ningún tipo de lógica de negocios y son simples contenedores de datos estructurales.

Solución DTO Adaptador

Patrones de Diseño Patrones GRASP Patrones GoF Estrategia Factoría Experto Creador Alta Cohesión Bajo Acoplamiento Controlador Polimorfismo Fabricación Pura Indirección Variaciones Protegidas Patrones GoF Estrategia Factoría Singleton Adaptador DTO