Post on 01-Aug-2020
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
Contenidos
� Introducción � Clasificación � Ejemplos � Herramientas
28/11/13 2 PL2 - Transformaciones de modelos
INTRODUCCIÓN TRANSFORMACIONES DE MODELOS
28/11/13 3 PL2 - Transformaciones de modelos
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
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
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
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
CLASIFICACIÓN TRANSFORMACIONES DE MODELOS
28/11/13 8 PL2 - Transformaciones de modelos
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
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
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
Ejemplos (I)
28/11/13 PL2 - Transformaciones de modelos 12
Organización Participa
localización
Proyecto
nombre financiación
título
1..* 0..* 1..*
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..*
Ejemplos (II)
28/11/13 PL2 - Transformaciones de modelos 14
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.
Ejemplos (III)
28/11/13 PL2 - Transformaciones de modelos 16
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.
Ejemplos (IV)
28/11/13 PL2 - Transformaciones de modelos 18
public class ProyectoDAO {
private ProyectoDAO instance;
public ProyectoDAO getInstance(){
return instance;
}
…
ProjectoDAO.java
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
HERRAMIENTAS TRANSFORMACIONES DE MODELOS
28/11/13 20 PL2 - Transformaciones de modelos
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
Herramientas M2M
� SmartQVT � Operational QVT � Declarative QVT � ATL
28/11/13 PL2 - Transformaciones de modelos 22
Herramientas M2T
� MOFScript � JET � Acceleo � Xpand � Xtend
28/11/13 PL2 - Transformaciones de modelos 23
RESUMEN TRANSFORMACIONES DE MODELOS
28/11/13 24 PL2 - Transformaciones de modelos
¿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
28/11/13 26 PL2 - Transformaciones de modelos
Transformaciones de modelos
Procesadores de Lenguajes 2
Iván Ruiz Rube ivan.ruiz@uca.es