uml profiles for design patterns - universidad nacional de ...agaris/slides/4-patrones.pdf ·...
TRANSCRIPT
![Page 1: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/1.jpg)
Patrones
Maestría en Ingeniería de Software
![Page 2: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/2.jpg)
Agenda
- Model Driven Architecture (MDA)- Unified Model Language (UML) - Object Constraint Language (OCL)- Patrones- Conclusiones
![Page 3: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/3.jpg)
Contenido
Patrones• Introducción
• Definición• Características• Elementos para su descripción • Categorías
• Patrones arquitectónicos• Características• Ejemplo
![Page 4: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/4.jpg)
Contenido
Patrones• Patrones de Diseño
• Definición• Clasificación Gof• Algunos patrones Gof
• Patrones de Análisis• Características• Ejemplo
![Page 5: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/5.jpg)
Contenido
Patrones• Idiomas
• Características• Ejemplo
• Conceptos asociados• Antipatrones• Refactoring
• Patrones en MDA
![Page 6: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/6.jpg)
Introducción a Patrones
“ Un patrón describe primero un problema que ocurre una y 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 7: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/7.jpg)
Introducción a Patrones
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.
Definición
[Fuente: Buschmann et al. En “Pattern-Oriented Software Architecture,”]
![Page 8: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/8.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 9: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/9.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 10: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/10.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 11: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/11.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 12: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/12.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 13: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/13.jpg)
Patrones Arquitectónicos
Layer MVC Presentation-Abstraction-Control (PAC) Microkernel Reflection Pipes y Filters Backboard Broker
Patrones arquitectónicos
![Page 14: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/14.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 15: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/15.jpg)
Patrones Arquitectónicos
divide una aplicación interactiva en 3 componentes: modelos, vistas y componentes. el modelo contiene la funcionalidad central y datos las vistas muestran la información al usuario los controladores manejan la entrada de ususario las vistas y los controladores se encargan de la interfase de usuario
Model-View-Controller (MVC)
[Fuente de imagen: http://www.enode.com/x/markup/tutorial/mvc.html]
![Page 16: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/16.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 17: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/17.jpg)
Patrones de Diseño
Características 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 de diseño OO que repetidamente ocurren. Se reutilizan diseños exitosos
basándose en la experiencia previa.
![Page 18: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/18.jpg)
Patrones de Diseño
“ 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)
Definición
![Page 19: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/19.jpg)
Patrones de Diseño
A L C A N C E
- Chain of Responsibility- Command- Iterator- Mediator- Memento- Observer- State- Strategy- Visitor
- Adapter- Bridge- Composite- Decorator- Façade- Flyweight- Proxy
- Abstract Factory- Builder- Prototype- SingletonObjeto
- Interpreter- Template Method
- Adapter- Factory MethodClase
ComportamientoEstructuralCreacional
P R O P O S I T O
Clasificación Gof
Patrón
Diseño particular
![Page 20: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/20.jpg)
Patrones de Diseño
Singleton
![Page 21: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/21.jpg)
Patrones de Diseño
Composite
![Page 22: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/22.jpg)
Patrones de Diseño
Proxy
![Page 23: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/23.jpg)
Patrones de Diseño
Facade.
![Page 24: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/24.jpg)
Patrones de Diseño
Abstract Factory
![Page 25: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/25.jpg)
Patrones de Diseño
Factory Method
![Page 26: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/27.jpg)
Patrones de Diseño
Iterator
![Page 28: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/28.jpg)
Patrones de Diseño
Observer
![Page 29: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/30.jpg)
Patrones de Análisis
Durante etapa de análisis surgen abstracciones de análisis particulares. Estas abstracciones representan patrones reusables detectados en diferentes dominios A diferencia de los patrones de diseño, no profundizan en detalles de implementación
Características
![Page 31: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/31.jpg)
Patrones de Análisis
Ejemplo
Party
Persona Organizacion
![Page 32: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/34.jpg)
Idiomas
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”.
Handle/Body
![Page 35: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/36.jpg)
Conceptos asociados
Proveen experiencia al reconocer problemas recurrentes y además proveen soluciones para
remediarlos.
Antipatrones
[Fuente imagen: IBM]
![Page 37: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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ñas evitando asociaciones transitivas,- Minimizar la complejidad quitando responsabilidades y repartiéndolas en otras clases
![Page 39: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/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 - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/44.jpg)
Patrones en MDA
Refactoring en PIM
Extract Composite: extrae una superclase que implementa el Composite cuando subclases en una jerarquía implementan el mismo Composite. (Kerievsky)
......... A B
P
.........
A B
C
P
![Page 45: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/45.jpg)
Patrones en MDA
CIM
PIM
PSM
Código
Analista del Negocio
ArquitectoDiseñador
DesarrolladorTesteador
- Patrones arquitectónicos- Patrones de análisis- Patrones de diseño
- Patrones de diseño- Idiomas
![Page 46: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/46.jpg)
Patrones en MDA
Patrones usados en especificación de transformación
![Page 47: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/47.jpg)
Patrones en MDA
Definición de Patrones como Perfiles UMLPatrón
Diseño particular
Perfil
Diseño marcado
![Page 48: UML Profiles for Design Patterns - Universidad Nacional de ...agaris/slides/4-Patrones.pdf · Ayudan a los desarrolladores de software a resolver problemas de diseño OO que repetidamente](https://reader031.vdocument.in/reader031/viewer/2022022100/5baea67309d3f290738d5dba/html5/thumbnails/48.jpg)
Patrones en MDA
Class ifier
Operation
Association
Property
D irectedRelationship
C la ss
Association
- - - - - - - - - - - - - - - - - {redefine s class}
Update
Observer
1..*
1
1..* {subsets ownedOperation}
1{redefines
class}
AssocEndObservers
0..1
1
0..1
+participant 1
RelationshipObserver
11 {redefinestarget}
SubjectObserver 1
1
1
{subsets m em berEnd}
+association
1
{rede fines a ssoc iat ion}
ConcreteObserver
1
1
1{subsetsownedElem ent}
1{redefines source}
AssocEndSubject1
1+associa tion
1{redefines association}1
{subsets m em berEnd}
Attach Detach Notify
AssocEndConcreteObserver1
1
1
+participant 1
Subject
0..1
1
0..1
+pa rticipant1
1..*
1
1..*
1
1..*
1
1..*
1
1..*
1
1..*
1
ObserverSubject1
1
1
{subsets m emb erEnd}+association1
{redefines association}
R elationshipSubject
11{redefines
target}
AssocEndConcreteSubject1
1 + associa tion1
{redefines association}1
{subsets m em berEnd}
GetState
SetState
Property
Concrete Subject
1
1
1 {subsetsownedElem ent}
1
{redefinessource}
1
1
1
+participant1
1..*
1
+ getSta te
1..*
{subsets m em ber}
1 1..*1
+setState
1..*
{subsets m em ber}
1
1..*1
+state
1..*{subsets m em ber}
1
- - - - - - - - - - - - - - - - - - - - - - - - - - -{subse t owned Op erati on}
Definición de Patrones como metamodelo