T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de...
Transcript of T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de...
![Page 1: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/1.jpg)
Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz
28/11/13 1
Transformaciones de modelos
Procesadores de Lenguajes 2
PL2 - Transformaciones de modelos
Curso 2013-2014
![Page 2: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/2.jpg)
Contenidos
� Introducción � Clasificación � Ejemplos � Herramientas
28/11/13 2 PL2 - Transformaciones de modelos
![Page 3: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/3.jpg)
INTRODUCCIÓN TRANSFORMACIONES DE MODELOS
28/11/13 3 PL2 - Transformaciones de modelos
![Page 4: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/4.jpg)
Introducción
� Los DSL están concebidos para “hacer algo”.
� Los motores de transformación permitirán ‘evolucionar’ modelos.
� El objetivo de realizar transformaciones de modelos es ahorrar esfuerzos y reducir errores, automatizando la construcción de nuevos modelos.
28/11/13 PL2 - Transformaciones de modelos 4
![Page 5: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/5.jpg)
Introducción
� Los motores de transformación MDE actuarán como procesadores de lenguajes.
� El motor de transformación es un proceso que toma como entrada uno o varios modelos y como salida genera uno o más modelos.
� Las transformaciones se definen mediante un conjunto de reglas.
28/11/13 PL2 - Transformaciones de modelos 5
![Page 6: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/6.jpg)
Desarrollo de un procesador de lenguaje (enfoque MDE)
28/11/13 PL2 - Transformaciones de modelos 6 6
Generación de transformaciones
Desarrollo del formato de representación
Diseño del metamodelo
Construcción del editor
![Page 7: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/7.jpg)
Desarrollo de un procesador de lenguaje (enfoque MDE)
28/11/13 PL2 - Transformaciones de modelos 7 7
Generación de transformaciones
Desarrollo del formato de representación
Diseño del metamodelo
Construcción del editor
![Page 8: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/8.jpg)
CLASIFICACIÓN TRANSFORMACIONES DE MODELOS
28/11/13 8 PL2 - Transformaciones de modelos
![Page 9: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/9.jpg)
Clasificación (I)
� Multiplicidad de modelos ◦ 1:1 à Transformación simple ◦ 1:N à De un modelo PIM a múltiples PSM ◦ N:1 à Fusión de modelos (model merging)
� Direccionalidad ◦ Unidireccional à Lo más habitual ◦ Bidireccional à Se requiere controlar la
consistencia de modelos
28/11/13 PL2 - Transformaciones de modelos 9
![Page 10: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/10.jpg)
Clasificación (II)
� Lenguaje de modelado ◦ Endógenas à transformaciones entre
modelos expresados en el mismo lenguaje ◦ Exógenasà lenguajes distintos
� Nivel de abstracción ◦ Vertical à los modelos origen y destino
residen en diferentes niveles de abstracción ◦ Horizontal à mismo nivel de abstracción
28/11/13 PL2 - Transformaciones de modelos 10
![Page 11: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/11.jpg)
Clasificación (III)
� Técnica de transformación ◦ M2M à Produce modelos a partir de otros
modelos ◦ M2T à Produce ficheros de texto a partir
de modelos ◦ T2M à Produce modelos a partir de
ficheros de texto ◦ T2T à Produce ficheros de texto a partir de
otros ficheros
28/11/13 PL2 - Transformaciones de modelos 11
![Page 12: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/12.jpg)
Ejemplos (I)
28/11/13 PL2 - Transformaciones de modelos 12
Organización Participa
localización
Proyecto
nombre financiación
título
1..* 0..* 1..*
![Page 13: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/13.jpg)
Ejemplos (I)
28/11/13 PL2 - Transformaciones de modelos 13
Derivación de un diagrama de clases de análisis a partir de un modelo E/R.
Transformación M2M, exógena y horizontal.
Organización Participa
localización
Proyecto
nombre financiación
título
1..* 0..* 1..*
![Page 14: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/14.jpg)
Ejemplos (II)
28/11/13 PL2 - Transformaciones de modelos 14
![Page 15: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/15.jpg)
Ejemplos (II)
28/11/13 PL2 - Transformaciones de modelos 15
Refinamiento de un diagrama de clases de análisis a un diagrama de clases de diseño con un framework MVC en J2EE
Transformación M2M, endógena y vertical.
![Page 16: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/16.jpg)
Ejemplos (III)
28/11/13 PL2 - Transformaciones de modelos 16
![Page 17: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/17.jpg)
Ejemplos (III)
28/11/13 PL2 - Transformaciones de modelos 17
Aplicación de un patrón de diseño (singleton) sobre un modelo de clases UML.
Transformación M2M, endógena y horizontal.
![Page 18: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/18.jpg)
Ejemplos (IV)
28/11/13 PL2 - Transformaciones de modelos 18
public class ProyectoDAO {
private ProyectoDAO instance;
public ProyectoDAO getInstance(){
return instance;
}
…
ProjectoDAO.java
![Page 19: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/19.jpg)
Ejemplos (IV)
28/11/13 PL2 - Transformaciones de modelos 19
Generación de código Java partir de un diagrama de clases de diseño.
Transformación M2T, exógena y vertical.
public class ProyectoDAO {
private ProyectoDAO instance;
public ProyectoDAO getInstance(){
return instance;
}
…
ProjectoDAO.java
![Page 20: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/20.jpg)
HERRAMIENTAS TRANSFORMACIONES DE MODELOS
28/11/13 20 PL2 - Transformaciones de modelos
![Page 21: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/21.jpg)
Espacios tecnológicos
� Los modelos UML serializados en XMI pueden ser transformados utilizando los mecanismos habituales de XML. ◦ Plantillas XSLT y XQuery.
� Nosotros utilizaremos los lenguajes y frameworks MDE. ◦ Proyectos M2M y M2T de Eclipse.
28/11/13 PL2 - Transformaciones de modelos 21
![Page 22: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/22.jpg)
Herramientas M2M
� SmartQVT � Operational QVT � Declarative QVT � ATL
28/11/13 PL2 - Transformaciones de modelos 22
![Page 23: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/23.jpg)
Herramientas M2T
� MOFScript � JET � Acceleo � Xpand � Xtend
28/11/13 PL2 - Transformaciones de modelos 23
![Page 24: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/24.jpg)
RESUMEN TRANSFORMACIONES DE MODELOS
28/11/13 24 PL2 - Transformaciones de modelos
![Page 25: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/25.jpg)
¿Qué hemos aprendido hoy?
� Conocer en qué consisten las transformaciones de modelos.
� Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.
� Herramientas del espacio tecnológico model-driven para la transformación de modelos.
28/11/13 PL2 - Transformaciones de modelos 25
![Page 26: T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de transformaciones: multiplicidad, direccionalidad, M2M/M2T, endógena/exógena, vertical/horizontal.](https://reader034.fdocumento.com/reader034/viewer/2022042507/5f85ae19ab184a21542fa263/html5/thumbnails/26.jpg)
28/11/13 26 PL2 - Transformaciones de modelos
Transformaciones de modelos
Procesadores de Lenguajes 2
Iván Ruiz Rube [email protected]