T6 - Transformaciones de modelos - UCA · transformaciones de modelos. ! Clasificación de...

26
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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

¿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.

28/11/13 26 PL2 - Transformaciones de modelos

Transformaciones de modelos

Procesadores de Lenguajes 2

Iván Ruiz Rube [email protected]