MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de Asociación. Javier Muñoz 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 I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04)
26
Embed
MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de Asociación. Javier Muñoz Javier Muñoz, Marta Ruiz, Manoli Albert, Vicente.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MDA Aplicado: Una Gramática de Grafos para la Transformación de Relaciones de
Asociación.
Javier MuñozJavier Muñoz, Marta Ruiz, Manoli Albert, Vicente Pelechano
Grupo OO-MethodDepartamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
I Taller sobre Desarrollo de Software Dirigido por
Modelos, MDA y Aplicaciones (DSDM'04)
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
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
SourceCode
PIM Model to ModelTransformation
PSM Model to CodeTransformation
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
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
R1. Creación de tipos de datos atómicos
name : String = ???
??? : Design::Atom
1)
:=
name : String = String
String : Design::Atom
name : String = Integer
Integer : Design::Atom
name : String = Boolean
Boolean : Design::Atom4)
3)
2)
name : String = Object
Object : Design::Atom5)
R3. Creación de la estructura de clases base
name : String = DecoradorColegaabstract : Boolean = ???
DecoradorColega : Design::Class
name : String = DecoradorColegaabstract : Boolean = true
DecoradorColega : Design::Class
name : String = DecoradorColegaabstract : Boolean = true
MediadorAsociacion : Design::Class
name : String = String
String : Design::Atom
name : String = Integer
Integer : Design::Atom
name : String = Boolean
Boolean : Design::Atom
name : String
String : Design::Atom
name : String = Integer
Integer : Design::Atom
name : String = Boolean
Boolean : Design::Atom
name : String = Minvisibility : String = protected
Min : Design::Attribute
name : String = Maxvisibility : String = protected
name : String = DecoradorColega+match(5).nameabstract : Boolean = false
DecoradorColega+match(5).name : Design::Class
content : String = match(1).Min
: Design::AtomicValue
content : String = matc(1).Max
: Design::AtomicValue
content : String = match(1).V
: Design::AtomicValue
content : String = match(1).CT
: Design::AtomicValue
content : String = match(1).PB
: Design::AtomicValue
content : String = match(1).PI
: Design::AtomicValue
name : String = match(4).nameabstract : Boolean = match(4).abstract
match(4).name : Design::Class
name : String = match(5).nameabstract : Boolean = match(5).abstract
match(5).name : Design::Class
-specializes -is_specialized
24)
23)
22)
21)
20)
19)
18)
16)
15)
4
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
Implementación de la Gramática
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