1 / 26

MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de Asociación.

I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) . MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de Asociación. Javier Muñoz , Marta Ruiz, Manoli Albert, Vicente Pelechano Grupo OO-Method

riva
Download Presentation

MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de Asociación.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de Asociación. Javier Muñoz, Marta Ruiz, Manoli Albert, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

  2. Agenda • Introducción • Caracterización de Relaciones de Asociación • Implementación de Relaciones de Asociación • Transformación de Relaciones de Asociación • Gramáticas de Grafos • Metamodelos • La Gramática • Implementación • Conclusiones

  3. PIM PSM Model to Model Model to Code Transformation Transformation Source Code Introducción • MDA constituye un enfoque adecuado para realizar generación de código siguiendo una estrategia basada en modelos. • Las transformaciones entre modelos se convierten en un elemento clave

  4. Introducción • MDA no propone una técnica estándar • Están trabajando en ello (RFP QVT) • Se están proponiendo y estudiando varias técnicas • Manipulación directa de los modelos • Enfoques relacionales • Gramáticas de grafos • XSLT

  5. Introducción Aplicación Transformaciones PIM Modelado Conceptual Orientado a Objetos PSM class Empleado{ String Nombre; ... } class Empresa { String Nombre; ... } Clases de Diseño

  6. Relaciones de asociación • Los métodos de Desarrollo de Software Dirigido por modelos necesitan primitivas conceptuales precisas • La descripción que realiza UML de las relaciones de asociación, agregación y composición es ambigua y no es aceptada por la mayoría de la comunidad OO • En este trabajo se parte del marco conceptual propuesto en [Albert2003] presentado en CAiSE2003

  7. Características Temporales Dinámica/Estática Multiplicidad Número min y max conectados Propagación de Borrado Restrictivo/Cascada/Enlace Visibilidad Visible/No visible Proyección de Identificación Proyectado/No Proyectado Reflexividad Reflexivo/No Reflexivo Simetría Simétrica/Antisimética Marco conceptual para relaciones de asociación

  8. Implementación de relaciones de asociación • A partir del marco conceptual se realiza una propuesta de implementación aplicando patrones de diseño ([Ruiz2004] en IDEAS’04) • Ideas básicas • Una relación de asociación tiene semántica propia • Patrón Mediator • Los objetos que participan tienen estructura y comportamiento adicional • Patrón Decorator • Las relaciones comparten estructura y estrategia de ejecución para la gestión de enlaces • Patrón Template Method

  9. Clases abstractas (template method) Clases decoradoras Clase mediadora Implementación de relaciones de asociación

  10. Transformación de modelos • Un modelo puede ser gestionado con un grafo • Elementos = nodos etiquetados • Relaciones = enlaces etiquetados entre nodos • Ventajas de las gramáticas de grafos • Base de conocimiento existente • Sintaxis gráfica • Naturaleza declarativa • Herramientas para su aplicación

  11. Gramáticas de Grafos • Una gramática de grafos se compone de una serie de reglas • Cada regla define: • En la parte izquierda (LHS) un subgrafo Patrón • En la parte derecha (RHS) un subgrafo Sustitución

  12. Gramáticas de Grafos

  13. Transformación de Relaciones de Asociación • Estrategia a seguir: • Definir el metamodelo origen (metamodelo de análisis) • Definir el metamodelo destino (metamodelo de diseño) • Especificar la gramática para la transformación entre metamodelos

  14. Metamodelo de Análisis • Basado en el marco conceptual

  15. Metamodelo análisis (ejemplo)

  16. Metamodelo de Diseño • Elementos básicos de cualquier lenguaje orientado a objetos • Usando nomenclatura de C#

  17. Metamodelo de Diseño (ejemplo) publicclass Persona { public String Nombre; privateInteger Edad; privatePersona Vecino; publicString [] Telefonos; publicvoid fijarEdad(Integer nueva_edad) { Edad = nueva_edad; } }

  18. La Gramática para Transformación de Relaciones de Asociación • R1. Creación de tipos de datos atómicos • R2. Transformación de clases de análisis • R3. Creación de la estructura de las clases base • R4. Creación de las operaciones de DecoradorColega • R5. Creación de las operaciones de MediadorAsociacion • R6. Transformación de los extremos de la asociación • R7. Transformación de la asociación • R8. Transformación de las propiedades clave con PI • R9. Transformación de las propiedades clave sin PI • R10. Transformación de las propiedades • R11. Eliminación de enlaces innecesarios

  19. R1. Creación de tipos de datos atómicos

  20. R3. Creación de la estructura de clases base

  21. R6. Transformación de los extremos de la asociación

  22. R6. Transformación de los extremos de la asociación

  23. Implementación de la Gramática • Utilizando la herramienta Atom3 (http://atom3.cs.mcgill.ca/) • Especificación de los metamodelos mediante ER • Obtención de editores gráficos para los MM • Especificación y aplicación de la gramática de grafos • Problemas encontrados • No soporta herencia en la definición de los MM • En la aplicación de la GG, el modelo debe validar siempre uno de los MM • No es muy estable y la usabilidad es baja

  24. Implementación de la Gramática

  25. Conclusiones • Se han aplicado gramáticas de grafos para definir transformaciones entre modelos en el contexto de MDA • Conclusiones: • Es factible utilizar GG en MDA • Algunas reglas pueden resultar poco legibles • Las reglas con más elementos corresponden a la creación de la infraestructura del sistema • Trabajo futuro: • Implementar la GG con otras herramientas • Implementar la transformación con otras técnicas • Especificar transformaciones más complejas • Estudiar la separación de la infraestructura y la parte específica

  26. Gracias

More Related