Title: MDA Aplicado: Una Gram
1MDA 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)
- 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
2Agenda
- 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
3Introducció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
4Introducció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
5Introducción
Aplicación Transformaciones
PIM
Modelado Conceptual Orientado a Objetos
PSM
class Empleado String Nombre ...
class Empresa String Nombre ...
Clases de Diseño
6Relaciones 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
7Marco conceptual para relaciones de asociación
- 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
8Implementació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 IDEAS04) - 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
9Implementación de relaciones de asociación
10Transformació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
11Gramá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
12Gramáticas de Grafos
13Transformació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
14Metamodelo de Análisis
- Basado en el marco conceptual
15Metamodelo análisis (ejemplo)
16Metamodelo de Diseño
- Elementos básicos de cualquier lenguaje orientado
a objetos - Usando nomenclatura de C
17Metamodelo de Diseño (ejemplo)
- public class Persona
-
- public String Nombre
- private Integer Edad
- private Persona Vecino
- public String Telefonos
-
- public void fijarEdad(Integer nueva_edad)
-
- Edad nueva_edad
-
-
18La 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
19R1. Creación de tipos de datos atómicos
20R3. Creación de la estructura de clases base
21R6. Transformación de los extremos de la
asociación
22R6. Transformación de los extremos de la
asociación
23Implementació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
24Implementación de la Gramática
25Conclusiones
- 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
26Gracias