UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla...
Transcript of UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla...
![Page 1: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/1.jpg)
Agenda
- Model Driven Architecture (MDA)
- Unified Model Language (UML)
- Object Constraint Language (OCL)
- Patrones
- Conclusiones
![Page 2: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/2.jpg)
Contenido
Patrones• Introducción
•
•
•
•
Definición CaracterísticasElementos para su descripción Categorías
• Patrones arquitectónicos•
•
Características Ejemplo
![Page 3: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/3.jpg)
Contenido
Patrones• Patrones de Diseño
•
•
•
Definición Clasificación Gof Algunos patrones Gof
• Patrones de Análisis•
•
Características Ejemplo
![Page 4: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/4.jpg)
Contenido
Patrones• Idiomas
•
•
Características Ejemplo
• Conceptos asociados•
•
Antipatrones Refactoring
• Patrones en MDA
![Page 5: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/5.jpg)
Introducción a Patrones
“ Un patrón describe primero un problema que ocurre unay otra vez en nuestro entorno, y a continuación describe el núcleo de la solución al problema, de tal manera que puede usar la solución millones de veces sin repetir la solución específica una sola vez”
[Fuente: Christopher Alexander en “Timeless Way of Building,”1979]
![Page 6: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/6.jpg)
Introducción a Patrones
Definición
Problema de diseño particular que surge en contextos de diseños específicos
y presenta un esquema genérico bien probado por su solución. El esquema
de la solución es especificado describiendo sus componentes constituyentes,
sus responsabilidades y relaciones, y la forma en la cual ellos colaboran.
[Fuente: Buschmann et al. En “Pattern-Oriented Software Architecture,”]
![Page 7: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/7.jpg)
Introducción a Patrones
Características
• Es una solución reusable de un problema recurrente
• Testeada
• Considera la solución como un template
• Puede ser adaptada y personalizada para un dominio específico
![Page 8: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/8.jpg)
Introducción a Patrones
Elementos para Descripción
– Nombre
– Problema
– Contexto
– Efecto
– Solución
– Ejemplos
– Contexto resultante
– Patrones relacionados
– Casos conocidos
– Representación gráfica
![Page 9: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/9.jpg)
Introducción a Patrones
Idiomas: patrones de bajo nivel específico a un lenguaje de programación; tales como Java y C++ (Coplien, 1992).
Patrones de Diseño: se enfoca en un pequeño grupo de de objetos que colaboran entre sí. Gamma, Helm, Johnson, Vlissides (1995)
Patrones Arquitectónicos: se enfoca en la estructura de subsistemas de un sistema. Buschmann Meunier, Rohnert, Sommerlad, Stal (1996)
Patrones de Análisis: se enfoca en patrones encontrados durante el análisis OO. Fowler (2002)
![Page 10: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/10.jpg)
Patrones Arquitectónicos
Idiomas: patrones de bajo nivel específico a un lenguaje de programación; tales como Java y C++
Patrones de Diseño: se enfoca en un pequeño grupo de de objetos que colaboran entre sí. Gamma, Helm, Johnson, Vlissides (1995)
Patrones Arquitectónicos: se enfoca en la estructura de subsistemas de un sistema. Buschmann, Meunier, Rohnert, Sommerlad, Stal (1996)
Patrones de Análisis: se enfoca en patrones encontrados durante el análisis OO. Fowler (2002)
.
![Page 11: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/11.jpg)
Patrones Arquitectónicos
Estructuras de alto nivel para sistemas de
software
Fija la arquitectura global de una aplicación
Contiene un cjto. de subsistemas predefinidos
Define las responsabilidades de c/u de los
subsistemas
Detalla en las relaciones entre los subsistemas
Posteriormente se hará uso de patrones de
diseño para problemas específicos.
Características
![Page 12: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/12.jpg)
Patrones Arquitectónicos
Layer
MVC
Presentation-Abstraction-Control (PAC)
Microkernel
Reflection
Pipes y Filters
Backboard
Broker
Patrones arquitectónicos
![Page 13: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/13.jpg)
Session
Patrones Arquitectónicos
•ayuda a estructurar
aplicaciones que pueden ser
descompuestas en grupos de
subtareas
•subtareas agrupadas en
distintos niveles de abstracción
Layers
Presentation
Transport
Network
Data Link
Physical
Application Level 7
Level 6
Level 5
Level 4
Level 3
Level 2
Level 1
![Page 14: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/14.jpg)
Patrones Arquitectónicos
divide una aplicación interactiva en 3
componentes: modelos, vistas y componentes.
el modelo contiene la funcionalidadcentral y datos
las vistas muestran la información al
usuario
los controladores manejan la entradade ususario
las vistas y los controladores seencargan de la interfase de usuario
Model-View-Controller (MVC)
[Fuente de imagen: http://www.enode.com/x/markup/tutorial/mvc.html]
![Page 15: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/15.jpg)
Patrones Arquitectónicos
Idiomas: patrones de bajo nivel específico a un lenguaje de programación; tales como Java y C++
Patrones de Diseño: se enfoca en un pequeño grupo de de objetos que colaboran entre sí. Gamma, Helm, Johnson, Vlissides (1995)
Patrones Arquitectónicos: se enfoca en la estructura de subsistemas de un sistema. Buschmann, Meunier, Rohnert, Sommerlad, Stal (1996)
Patrones de Análisis: se enfoca en patrones encontrados durante el análisis OO. Fowler (2002)
.
![Page 16: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/16.jpg)
Patrones de Diseño
Nivel de abstracción medio independiente de la implementación
Diseñado para “microarquitecturas”
Sencillos, flexibles
Extensibles y reusables
Permiten
Incrementar vocabulario de diseño
Mejorar la documentación y mantenimiento de sistemas
Acelerar proceso de diseño
Facilitar aprendizaje de buenas prácticas
Ayudan a los desarrolladores de software a resolver problemas dediseño OO que repetidamente ocurren. Se reutilizan diseños exitosos
basándose en la experiencia previa.
Características
![Page 17: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/17.jpg)
Patrones de Diseño
Definición
“ descripciones de objetos que se comunican y clases que son personalizadas para resolver un problema de diseño general en un contexto particular ”
(Gamma y otros, 1995)
![Page 18: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/18.jpg)
Diseño GOF ver el articulo que esta anexado en la
página denominado GOF.pdf
![Page 19: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/19.jpg)
Patrones de Diseño
- Adapter
Clasificación Gof
Patrón
Diseño particular
P R O P O S I T O
Creacional Estructural Comportamiento
A
L
C
A
N
C
E
Clase - Factory Method - Adapter - Interpreter
- Template Method
Objeto
- Abstract Factory
- Builder
- Prototype
- Singleton
- Bridge
- Composite
- Decorator
- Façade
- Flyweight
- Proxy
- Chain of Responsibility
- Command
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Visitor
![Page 20: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/20.jpg)
Patrones de Diseño
Singleton
![Page 21: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/21.jpg)
Patrones de Diseño
Composite
![Page 22: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/22.jpg)
Patrones de Diseño
Proxy
![Page 23: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/23.jpg)
Patrones de Diseño
Facade.
![Page 24: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/24.jpg)
Patrones de Diseño
Abstract Factory
![Page 25: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/25.jpg)
Patrones de Diseño
Factory Method
![Page 26: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/26.jpg)
Patrones de Diseño
Visitor
[ Fuente imagen: Examples to Accompany: Design Patterns Elements of Reusable Object-Oriented Software ]
![Page 27: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/27.jpg)
Patrones de Diseño
Iterator
![Page 28: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/28.jpg)
Patrones de Diseño
Observer
![Page 29: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/29.jpg)
Patrones de Análisis
Idiomas: patrones de bajo nivel específico a un lenguaje de programación; tales como Java y C++.
Patrones de Diseño: se enfoca en un pequeño grupo de de objetos que colaboran entre sí. Gamma, Helm, Johnson, Vlissides (1995)
Patrones Arquitectónicos: se enfoca en la estructura de subsistemas de un sistema. Buschmann, Meunier, Rohnert, Sommerlad, Stal (1996)
Patrones de Análisis: se enfoca en patrones encontrados durante el análisis OO. Fowler (2002)
![Page 30: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/30.jpg)
Patrones de Análisis
Durante etapa de análisis surgen abstraccionesde análisis particulares.
Estas abstracciones representan patronesreusables detectados en diferentes dominios
A diferencia de los patrones de diseño, noprofundizan en detalles de implementación
Características
![Page 31: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/31.jpg)
Patrones de Análisis
Ejemplo
Party
Persona Organizacion
![Page 32: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/32.jpg)
Idiomas
Idiomas: patrones de bajo nivel específico a un lenguaje de programación; tales como Java y C++
Patrones de Diseño: se enfoca en un pequeño grupo de de objetos que colaboran entre sí. Gamma, Helm, Johnson, Vlissides (1995)
Patrones Arquitectónicos: se enfoca en la estructura de subsistemas de un sistema. Buschmann, Meunier, Rohnert, Sommerlad, Stal (1996)
Patrones de Análisis: se enfoca en patrones encontrados durante el análisis OO. Fowler (2002)
![Page 33: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/33.jpg)
Idiomas
Bajo nivel de abstracción
Definie una guía implementando los componentes y relaciones del patrón
Considera al patrón en un lenguaje de programación específico
Características
![Page 34: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/34.jpg)
Idiomas
Handle/Body
Problema: Cómo separar interfase de implementación en objetos C++
Solución: Separar una clase diseño en dos clases de implementación. Una toma sobre el rol de un identificador y presenta la interfase de la clase a el usuario. Esta primer clase es el “handle”. La otra clase, llamada “body” encapsula la implementación. El “handle” delega las invocaciones de función miembro a “body”.
![Page 35: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/35.jpg)
Contenido
Patrones•
•
•
•
•
•
•
Introducción
Patrones arquitectónicos
Patrones de diseño
Patrones de análisis
Idiomas
Conceptos asociados
Patrones en MDA
![Page 36: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/36.jpg)
Conceptos asociados
Antipatrones
Proveen experiencia al reconocer problemas recurrentes y además proveen soluciones para
remediarlos.
[Fuente imagen: IBM]
![Page 37: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/37.jpg)
Conceptos asociados
Antipatrones
Blob (“clases gigantes”)
Lava Flow (“código muerto”)
Funcional Decomposition (“Diseño no orientado a objetos”)
Poltergeists (“No se sabe bien lo que hacen algunas clases”)
Golden hammer (“Para un martillo todo son clavos”)
Spaghetti code
Cut-and-paste programming
![Page 38: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/38.jpg)
Conceptos asociados
Antipatrones
Blob:
Una clase “Dios” que monopoliza el procesamiento
Muchos métodos sin argumentos
Refactoring- Separar en clases pequeñasevitando asociacionestransitivas,- Minimizar la complejidadquitando responsabilidades yrepartiéndolas en otras clases
![Page 39: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/39.jpg)
Conceptos asociados
trata de la estructura interna del software,
preserva el comportamiento observable,
mejora una situación dada de acuerdo a un
objetivo,
los pasos de refactoring son pequeños y
pueden ser combinados sistemáticamente en
secuencias
Refactoring
![Page 40: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/40.jpg)
Aspectos a considerar
Una forma de analizar la calidad de los modelos es mirar las instancias de
patrones predefinidos.
Es posible detectar patrones deseables o patrones indeseables.
La reutilización de patrones posibilita obteneción de modelos robustos y
de alta calidad.
La detección de patrones indeseables (anti-patrones) en una etapa
temprana del diseño previene errores
El soporte de patrones esta empezando a ser incorporado por herramientas
(IBM Rational Software Architect)
Se plantea la especificación de patrones en numerosos trabajos de
investigación
![Page 41: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/41.jpg)
Aspectos a considerar
Curva de aprendizaje
* Un catálogo de patrones no favorece al diseñador experto, sino al
diseñador inexperto.
![Page 42: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/42.jpg)
Contenido
Patrones•
•
•
•
•
•
•
Introducción
Patrones arquitectónicos
Patrones de diseño
Patrones de análisis
Idiomas
Conceptos asociados
Patrones en MDA
![Page 43: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/43.jpg)
Patrones en MDA
PSM 1 PSM 2
PIM Algunos conceptos
•
•
•
•
Refinamiento
Antirefinamiento
Refactoring
Puentes
Aplicación de Patrones en Refactoring
![Page 44: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/44.jpg)
Patrones en MDA
.........A B.........
A B
C
Refactoring en PIM
Extract Composite: extrae una superclase que implementa el Composite
cuando subclases en una jerarquía implementan el mismo Composite.
(Kerievsky)
P
P
![Page 45: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/45.jpg)
Patrones en MDA
CIM
PIM
PSM
Código
Analista del
Negocio
Arquitecto
Diseñador
Desarrollador
Testeador
- Patrones arquitectónicos- Patrones de análisis- Patrones de diseño
- Patrones de diseño- Idiomas
![Page 46: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/46.jpg)
Patrones en MDA
Patrones usados en especificación de transformación
![Page 47: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/47.jpg)
Patrones en MDA
Diseño particular
Definición de Patrones como Perfiles UML
Patrón Perfil
Diseño marcado
![Page 48: UML Profiles for Design Patterns · Define las responsabilidades de c/u de los subsistemas Detalla en las relaciones entre los subsistemas ... Idiomas: patrones de bajo nivel específico](https://reader031.fdocuments.in/reader031/viewer/2022022702/5bc51b9d09d3f2d9748c6dcb/html5/thumbnails/48.jpg)
Patrones en MDA
Classifier
Operation
Associat ion
Property
D irectedRelationshi p
C lass
Association
- - - - - - - - - - - - - - - - - {redefine s class}
Update
Observer
1..* {subsets
ownedOperation}
1
{redefines
class}
AssocEndObservers
0..1
+participant 1
RelationshipObserver
1 {redefines
target}
SubjectObserver 1
{subsets m em berEnd}
+association
1
{rede fines a s oc iat ion}
ConcreteObserver
1{subsets
ownedElem ent}
{redefines source} 1
AssocEndSubject
+association
1
{redefines association}1
{subsets m em berEnd}
Attach Detach Notify
AssocEndConcreteObserver
1
+participant 1
Subject
0..1
1 +pa rticipant
1..*
1
1..*
1
1..*
1
ObserverSubject
1
{subsets m emberEnd}1
+association{redefines association}
R elationshipSubject
1{redefines
target}
AssocEndConcreteSubject1
+ associa tion{redefines association}
1
{subsets m em berEnd}
GetState
SetState
Property
ConcreteSubject
1 {subsets
ownedElem ent}
1
1
+participant1
+getSta te
1..*
{subsets mem ber}
1
+setState
1..*
{subsets mem ber}{redefines
source} 1
+state
1..*
{subsets m em ber}
1
- - - - - - - - - - - - - - - - - - - - - - - - - - -{subse t own ed Op erati o n}
Definición de Patrones como metamodelo