SlideShare una empresa de Scribd logo
1 de 32
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Métodos Avanzados de Desarrollo de Software
Asignatura Optativa de 4º Año
Grado en Informática
Departamento de Sistemas Informáticos
Universidad de Castilla-La Mancha
Métodos avanzados de
desarrollo de software
Tema VII: Arquitecturas dirigidas por Modelos.
Transformaciones de modelos
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Índice
• Repaso
• Motivación
• Definición
• Ejemplo informal
• Modelo de análisis
• Modelo de diseño
• Reglas de transformación
• Funciones de transformación
• Escenarios de transformación
• Refinamiento
• Abstracción
• Representación
• Migración
• Mezcla
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Repaso
Capas de abstracción
CIM
PIM
PSM
ISM
ABSTRACTO
CONCRETO
Transformación
Transformación
Transformación
CIM
PIM
PSM
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Repaso
Transformación de modelos
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
PIM a PSM
PIM sin marcar
PIM sin marcar
Marcas para la
Plataforma A
Marcas para la
Plataforma B
PIM sin marcar
Marcas para la
Plataforma A
Marcas para la
Plataforma B
PIM sin marcar
Marcas para la
Plataforma A
Marcas para la
Plataforma B
PSM sin
marcar para la
Plataforma A
PSM sin
marcar para la
Plataforma B
Transformación Transformación
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Motivación
Ejemplo
• Consideremos:
• Un modelo independiente de la plataforma, modelado:
• Sin referencia a la distribución de objetos
• Ni al acceso remoto
• Una tecnología que ofrece el acceso remoto a los objetos.
• Asumamos que queremos que el diseño utilice el acceso
remoto , por completo => todo acceso es remoto.
• En una propuesta tradicional basada en código,
modificaríamos el modelo independiente de la plataforma
para mostrar el acceso a los objetos remotos
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Motivación
Consecuencias
• Este modelo modificado sería tratado como un modelo de
diseño.
• El mismo modelo tiene información
• del modelo de la aplicación
• del modelo de la implementación
• Algunos procesos tratan este modelo como una única
expresión del sistema.
• => Mezclan los detalles de implementación, con los de la
aplicación
• => la imposibilidad de cambiar la plataforma.
• Otros retienen ambos modelos
• => lo que puede llevar a divergencias entre ambos.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformación de modelos
• Para evitar estos problemas, MDA mantiene una función de mapeo (o
transformación) que transforma el modelo origen en el modelo destino
• Es una solución a:
• los problemas de mezcla de código
• de divergencia de modelos
• ¿Por qué?
• El modelo destino no se modifica, se genera.
• Las dos características principales del modelo de transformación son:
• la construcción
• la sincronización
• Las transformaciones se usan para construir modelos destino, desde
modelos fuente.
• Las transformaciones son aplicaciones de funciones de transformación,
definidos en términos de:
• Las reglas de transformación representan decisiones de diseño
repetibles.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Un ejemplo informal
• Veamos la transición entre un modelo de análisis y un modelo de
diseño
• Asumamos también que el modelo de análisis contiene los
elementos Banco, Cliente, Cuenta y Transferencia
• Notemos que hay información de la aplicación que tiene que
sobrepasar el tiempo de vida de la aplicación, mientras hay otras
que no.
• Los EJBs proveen dos formas de beans:
• Entity Bean (POJO Persistente @Persist en JEE5/6 de la JPA)
• Objeto accesible remotamente que guarda su estado en una base de
datos
• Stateful Session Bean
• Objeto accesible remotamente que «vive» lo que «vive» un cliente (ej.
sesión Web)
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Información del modelo de análisis
• Un Banco
• Conoce sus Clientes y Cuentas
• Puede establecer y romper las relaciones con sus Clientes
• Un Cliente
• Sabe su nombre
• Puede abrir Cuentas
• Puede cerrar una Cuenta que le pertenece
• Conoce las Cuentas que le pertenecen
• Puede hacer una Transferencia de una cantidad de dinero desde
una Cuenta que le pertenece a otra Cuenta.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Información del modelo de análisis
• Una Cuenta
• Conoce su número de cuenta
• Conoce su balance
• Conoce el Cliente que le pertenece
• Puede retirar un monto de dinero de su balance
• Puede depositar un monto de dinero en su balance
• Una Transferencia
• Conoce el monto de dinero a transferir
• Conoce las Cuentas fuente y destino
• Ejecuta la retirada de un monto especificado de dinero de la
Cuenta fuente y lo deposita en la cuenta destino
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Información del modelo de análisis
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Paso del análisis al diseño
Respecto del tiempo de vida de estos elementos:
• El Banco existe el mismo tiempo que existe el sistema
• El Cliente existe desde el momento que establece una relación
con el Banco hasta el momento que cierra todas sus cuentas y
termina su relación con el Banco
• Una cuenta existe desde el momento que se abre hasta el
momento que se cierra
• Una transferencia existe desde el momento que la ejecuta el
Cliente hasta el momento que se ejecuta
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Información del modelo de diseño
• Un Banco
• Es un Entity Bean con atributos persistentes apuntando a los Clientes y a las
Cuentas
• Tiene operaciones para establecer y cerrar relaciones con sus Clientes
• Un Cliente
• Es un Entity Bean con atributos persistentes que mantiene su nombre y
apunta a sus Cuentas
• Tiene operaciones para abrir y cerrar Cuentas y para ejecutar Transferencias
• Una Cuenta
• Es un Entity Bean con atributos persistentes que mantiene su número de
cuenta y balance, además de apuntar al Cliente al que pertenece
• Tiene operaciones para retirar y depositar montos de dinero
• Una Transferencia
• Es un Stateful Session Bean con atributos transient que mantienen la
cantidad de dinero, las Cuentas fuente y destino.
• Tiene una operación para ejecutar la transferencia
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
¿Cómo pasamos del análisis al diseño?
Reglas de la función de transformación
• Una clase cuyas instancias deben necesitar ser persistentes el
tiempo que dure el sistema, se representan por un Entity Bean
• Una clase cuyas instancias deben persistir un tiempo
indeterminado – menos que el del sistema pero más que
cualquier ejecución de una función - deben representarse con
un Entity Bean
• Una clase cuyas instancias existen solo por un período
relativamente corto de tiempo, que lleva información
relacionada con los Entity Beans, debe ser representado por
un Stateful Session Bean
• Todo Entity Bean y Stateful Session Bean tendrá los atributos
necesarios que reflejen la información necesaria sobre las
asociaciones en el modelo de análisis
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Funciones de transformación
• Estas reglas forman la función de transformación
• La transformación particular del modelo de análisis del sistema
bancario es la aplicación de la función de transformación
• La diferencia entre este proceso y el dirigido por código es que el del
código pierde la transformación una vez ejecutado.
• Como consecuencia:
• No puede repetirse sobre el mismo modelo
• No puede ser aplicado en un modelo que requiere un modelo similar.
• Así definimos,
• Una «función de transformación» como una colección de reglas o
algoritmos que definen cómo funciona un «transformación».
• Una «transformación» es la aplicación o ejecución de una «función
de transformación» para transformar un modelo en otro
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Funciones de transformación
• Las funciones de transformación se definen sobre los meta-
modelos, pero operan sobre los modelos
• Ejemplo: «Transforma cada clase con al menos un atributo
persistente en un Entity Bean»
• La reglas no se basan en elementos del modelo, se basa en los
tipos de ese modelo
• Las reglas no son específicas de un modelo, se aplican a todos
los modelos que se crean a partir del meta-modelo, lo que las
hace «reusables».
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Formalismos de transformación
Query, View and Transform (QVT)
• Para cumplir con las dos características del mapeo de
modelos: construcción y sincronización, las transformaciones
deben ejecutase automáticamente
• Lo que lleva a: acortar los plazos de arreglos, escalar a grandes
modelos, evitar el trabajo manual => menos errores y mejora
de la calidad general
• Para que la máquina pueda llevar a cabo esto, se necesita un
formalismo para expresar las reglas y expresar los modelos.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Formalismos de transformación
1. Imperativo
2. Basados en arquetipos
3. Declarativo
MM de Entrada M de Entrada MMSalida
Entidad
parent
Paquete
nombre:String
nombre:String
PA PB
E1
Clase
nombre:String
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Formalismos de transformación
Imperativo
• Implementación de todas las reglas y algoritmos en forma
procedural
• Expresa cómo se consulta la información en el meta-modelo,
se transforma y se escribe
• Principal ventaja:
• es familiar
• Principal desventaja:
• No reversible => no se puede construir el modelo fuente del
destino
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejemplo Java
…
foreach (e:Entidad in entidades){
File dir = new File(e.parent.nombre);
dir.mkdirs();
OutputStream os = new FileOutputStream( e.parent.nombre + ”/” +
e.nombre+”.java”);
os.println(“package ”+ e.parent.nombre +”;”);
os.println(“private class ”+e.nombre+” {”);
…
os.println(“}”);
os.close();
}
…
RESULTADO:
El contenido del archivo /PA/PB/E1.java será:
package PA.PB;
private class E1 {
…
}
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Formalismos de transformación
Basado en arquetipos
• Mezcla el un conjunto de plantillas con código, o reglas para
generar el texto.
• Puede ser implementado con un lenguaje de acceso a datos
que selecciona los elementos apropiados del modelo fuente y
el arquetipo (plantilla) que se usará.
• Luego selecciona cómo hacer la transformación en algo que se
incluye en el modelo destino.
• Principal ventaja:
• Muy bueno para transformar modelos en código
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejemplo MOF Script
texttransformation gui2java (in mmEntrada:“MMEntrada”) {
mmEntrada.ContenedorEntidades::main () {
self.entidades->forEach(e: mmEntrada.Entidad){
c.mapClase();
}
mmEntrada.Entidad::mapClase () {
file(self.parent.nombre+'/'+self.nombre+'.java');
“package ” self.parent.nombre ”;”
“class “ self.nombre “{“
“}”
}
}
RESULTADO:
El contenido del archivo /PA/PB/E1.java será:
package PA.PB;
class E1 {
…
}
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Formalismos de transformación
Declarativo
• Especifica los algoritmos como reglas que especifican lo que se
producirá, NO CÓMO SE HARÁ
• Principales ventajas:
• Aunque no se garantiza, puede ser reversible
• Muy bueno para transformaciones entre modelos
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Ejemplo ATL
-- @path mmEntrada=/NegocioGUI/MMEntrada.ecore
-- @path mmSalida=/NegocioGUI/Java.ecore
rule Negocio2AUI {
from e : mmEntrada!Entidad
to c : mmSalida!Clase(nombre<-e.nombre)
}
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Escenarios de transformaciones
• Verticales
• Refinamiento
• Abstracción
• Horizontales
• Representación
• Migración
• Mezcla
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de Refinamiento
• Hemos mostrado una transformación del modelo de análisis al
modelo de diseño que cambia el nivel de abstracción en el cual se
expresan las cosas, ya que el meta-modelo de diseño tiene
elementos adicionales del lenguaje.
• Una función de transformación de refinamiento puede crear todo lo
que se necesita del modelo destino , ya que el modelo fuente es
completo con respecto a la función de mapeo.
• No hay necesidad de examinar el modelo destino antes de
ejecutarlo, o mapearlo al siguiente nivel.
• Hay escenarios donde la función de mapeo es incompleta, y no se
puede construir todo lo que se necesita en el modelo destino.
Existen dos formas de solucionarlo:
• Rellenar los espacios en blanco del modelo destino
• Asociar un modelo adicional de entrada en el modelo fuente de
manera que no lo contamine.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de Abstracción
• Cuando no se puede ver el bosque por culpa de los árboles, es
útil abstraer lo que no agrega comprensión al modelo.
• Para asegurarnos que la vista abstracta está en sincronismo
con el modelo detallado de forma automática utilizamos
transformaciones de abstracción.
• Las vistas abstractas de los modelos son útiles también
cuando se mueve un modelo de una plataforma a otra
• Una transformación abstracta extrae los contenidos de un
modelo detallado en un modelo más abstracto que puede ser
mapeado a otro modelo detallado
• Tanto las transformaciones de refinamiento como de
abstracción son VERTICALES (cambian el nivel de abstracción)
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de
Representación
• A veces un meta-modelo no está totalmente soportado por
notaciones disponibles, otras veces se necesitan un conjunto
de meta-modelos que tienen sus propias notaciones.
• Por lo tanto, se puede definir una transformación a un meta-
modelo existente con notaciones y soporte de herramientas
existentes.
• Tales transformaciones permiten crear modelos en un meta-
modelo soportado por otro modelo en otro meta-modelo.
• Son más útiles cuando son reversibles
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de Migración
• En algunos casos, portar modelos existentes a otras
plataformas usando una transformación de abstracción y una
de refinamiento no es apropiado, ya que los cambios no son
substanciales.
• Por ejemplo, la migración de una versión de modelo de datos
a otra.
• Estas transformaciones reformatean y reagrupan información
existente para que sea manejable por otras transformaciones.
• De la misma manera que con las transformaciones de
representación, no cambian el nivel de abstracción.
• Tanto la transformación de representación como la de
migración son transformaciones HORIZONTALES.
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Transformaciones de Mezcla
• Combina de múltiples modelos fuente para combinarlos en un único
modelo destino.
• Crea enlaces entre elementos de modelos diferentes que no hacen
referencia explícita.
• Este concepto de entrelazado aparece en los lenguajes de programación
como «programación orientada a aspectos»
Modelo de
Seguridad
Modelo de
Banca
Información
de enlace
Transformación
mezcla
Modelo
mezclado
Figura basada en la presentada en [1].
Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha
[ricardo.tesoriero@uclm.es]
Referencias
1. Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA
Distilled: Principles of Model-Driven Architecture. Addison
Wesley. 2004.
2. Object Management Group. Unified Modeling Language:
Superstructure. Version 2.0, ptc/03-07-06, July 2003;
http://www.omg.org/cgi-bin/doc?ptc/2003-08-02.

Más contenido relacionado

La actualidad más candente

Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioSergio Sanchez
 
Procesos de software Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software  Unidad 2 - Software Enginnering - Ian sommervilleProcesos de software  Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software Unidad 2 - Software Enginnering - Ian sommervilleMatias Gonzalo Acosta
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Cuadro comparativo metodos
Cuadro comparativo metodosCuadro comparativo metodos
Cuadro comparativo metodosivansierra20
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del softwareyeltsintorres18
 
Analisis y diseño de Sistemas - Capitulo 4 (Resumen)
Analisis y diseño de Sistemas - Capitulo 4 (Resumen)Analisis y diseño de Sistemas - Capitulo 4 (Resumen)
Analisis y diseño de Sistemas - Capitulo 4 (Resumen)Alexis Cáceres Montes
 

La actualidad más candente (20)

11.interfaz de usuario
11.interfaz de usuario11.interfaz de usuario
11.interfaz de usuario
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Empresa Digital
Empresa DigitalEmpresa Digital
Empresa Digital
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Arquitecturas ti
Arquitecturas tiArquitecturas ti
Arquitecturas ti
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Metodologia kendall y Kendall
Metodologia kendall y KendallMetodologia kendall y Kendall
Metodologia kendall y Kendall
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Desarrollo Orientado a Objetos
Desarrollo Orientado a ObjetosDesarrollo Orientado a Objetos
Desarrollo Orientado a Objetos
 
Modelo Cascada!!
Modelo Cascada!!Modelo Cascada!!
Modelo Cascada!!
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Libro analisis de sistemas
Libro analisis de sistemasLibro analisis de sistemas
Libro analisis de sistemas
 
Procesos de software Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software  Unidad 2 - Software Enginnering - Ian sommervilleProcesos de software  Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software Unidad 2 - Software Enginnering - Ian sommerville
 
PROCESAMIENTO DE CONSULTAS
PROCESAMIENTO DE CONSULTASPROCESAMIENTO DE CONSULTAS
PROCESAMIENTO DE CONSULTAS
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Cuadro comparativo metodos
Cuadro comparativo metodosCuadro comparativo metodos
Cuadro comparativo metodos
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del software
 
Analisis y diseño de Sistemas - Capitulo 4 (Resumen)
Analisis y diseño de Sistemas - Capitulo 4 (Resumen)Analisis y diseño de Sistemas - Capitulo 4 (Resumen)
Analisis y diseño de Sistemas - Capitulo 4 (Resumen)
 

Similar a Transformaciones de modelos

Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Ricardo Tesoriero
 
Modelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosModelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.pptCristianFlasher1
 
Modelo entidad relación Rojas
Modelo entidad relación RojasModelo entidad relación Rojas
Modelo entidad relación RojasJoselineRojas
 
Analista de sistemas
Analista de sistemasAnalista de sistemas
Analista de sistemasLaloMalpika01
 
Inteligencia de negocio parte v - modelo multidimensional - cubos
Inteligencia de negocio   parte v -  modelo multidimensional - cubosInteligencia de negocio   parte v -  modelo multidimensional - cubos
Inteligencia de negocio parte v - modelo multidimensional - cubosWilfredo Rangel
 
Prototipado rapido de interfaces
Prototipado rapido de interfacesPrototipado rapido de interfaces
Prototipado rapido de interfacesGaby Fernandez
 
3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptx3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptxjarek35
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevidaclaudiappaez
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECmrojas_unitec
 
Formulario de implementación de componentes de software transaccional de amb...
Formulario de implementación de  componentes de software transaccional de amb...Formulario de implementación de  componentes de software transaccional de amb...
Formulario de implementación de componentes de software transaccional de amb...Victor Aravena
 
Cap. 2 comprensión y modelado
Cap. 2 comprensión y modeladoCap. 2 comprensión y modelado
Cap. 2 comprensión y modeladoMarmgimel Idiaquez
 
Modelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosModelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Terminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por ModelosTerminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 

Similar a Transformaciones de modelos (20)

Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)Transformaciones modelo a modelo: ATL (Parte I)
Transformaciones modelo a modelo: ATL (Parte I)
 
Modelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por ModelosModelos de Marcas en Arquitecturas dirigidas por Modelos
Modelos de Marcas en Arquitecturas dirigidas por Modelos
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de información
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.ppt
 
Modelo entidad relación Rojas
Modelo entidad relación RojasModelo entidad relación Rojas
Modelo entidad relación Rojas
 
Analista de sistemas
Analista de sistemasAnalista de sistemas
Analista de sistemas
 
Inteligencia de negocio parte v - modelo multidimensional - cubos
Inteligencia de negocio   parte v -  modelo multidimensional - cubosInteligencia de negocio   parte v -  modelo multidimensional - cubos
Inteligencia de negocio parte v - modelo multidimensional - cubos
 
Prototipado rapido de interfaces
Prototipado rapido de interfacesPrototipado rapido de interfaces
Prototipado rapido de interfaces
 
3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptx3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptx
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevida
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
Formulario de implementación de componentes de software transaccional de amb...
Formulario de implementación de  componentes de software transaccional de amb...Formulario de implementación de  componentes de software transaccional de amb...
Formulario de implementación de componentes de software transaccional de amb...
 
ALEXIS GARCIA
ALEXIS GARCIAALEXIS GARCIA
ALEXIS GARCIA
 
Cap. 2 comprensión y modelado
Cap. 2 comprensión y modeladoCap. 2 comprensión y modelado
Cap. 2 comprensión y modelado
 
Modelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por ModelosModelos en Arquitecturas dirigidas por Modelos
Modelos en Arquitecturas dirigidas por Modelos
 
Terminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por ModelosTerminología y conceptos en Arquitecturas dirigidas por Modelos
Terminología y conceptos en Arquitecturas dirigidas por Modelos
 

Más de Ricardo Tesoriero

Introdución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosIntrodución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosRicardo Tesoriero
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEORicardo Tesoriero
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Ricardo Tesoriero
 
Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominioRicardo Tesoriero
 
MOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosMOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
OCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosOCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosRicardo Tesoriero
 
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...Ricardo Tesoriero
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsRicardo Tesoriero
 
UsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsUsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsRicardo Tesoriero
 

Más de Ricardo Tesoriero (10)

Introdución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por ModelosIntrodución a las Arquitecturas Dirigidas por Modelos
Introdución a las Arquitecturas Dirigidas por Modelos
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEO
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)
 
Lenguajes específicos de dominio
Lenguajes específicos de dominioLenguajes específicos de dominio
Lenguajes específicos de dominio
 
MOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por ModelosMOF básico para Arquitecturas dirigidas por Modelos
MOF básico para Arquitecturas dirigidas por Modelos
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por Modelos
 
OCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por ModelosOCL en Arquitecturas dirigidas por Modelos
OCL en Arquitecturas dirigidas por Modelos
 
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
Distributing user interfaces. 4th Distributed User Interfaces Workshop on 14t...
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environments
 
UsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model EditorsUsiXML Eclipse-based Model Editors
UsiXML Eclipse-based Model Editors
 

Transformaciones de modelos

  • 1. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Métodos Avanzados de Desarrollo de Software Asignatura Optativa de 4º Año Grado en Informática Departamento de Sistemas Informáticos Universidad de Castilla-La Mancha Métodos avanzados de desarrollo de software Tema VII: Arquitecturas dirigidas por Modelos. Transformaciones de modelos
  • 2. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Índice • Repaso • Motivación • Definición • Ejemplo informal • Modelo de análisis • Modelo de diseño • Reglas de transformación • Funciones de transformación • Escenarios de transformación • Refinamiento • Abstracción • Representación • Migración • Mezcla
  • 3. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Repaso Capas de abstracción CIM PIM PSM ISM ABSTRACTO CONCRETO Transformación Transformación Transformación CIM PIM PSM
  • 4. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Repaso Transformación de modelos Figura basada en la presentada en [1].
  • 5. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] PIM a PSM PIM sin marcar PIM sin marcar Marcas para la Plataforma A Marcas para la Plataforma B PIM sin marcar Marcas para la Plataforma A Marcas para la Plataforma B PIM sin marcar Marcas para la Plataforma A Marcas para la Plataforma B PSM sin marcar para la Plataforma A PSM sin marcar para la Plataforma B Transformación Transformación Figura basada en la presentada en [1].
  • 6. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Motivación Ejemplo • Consideremos: • Un modelo independiente de la plataforma, modelado: • Sin referencia a la distribución de objetos • Ni al acceso remoto • Una tecnología que ofrece el acceso remoto a los objetos. • Asumamos que queremos que el diseño utilice el acceso remoto , por completo => todo acceso es remoto. • En una propuesta tradicional basada en código, modificaríamos el modelo independiente de la plataforma para mostrar el acceso a los objetos remotos
  • 7. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Motivación Consecuencias • Este modelo modificado sería tratado como un modelo de diseño. • El mismo modelo tiene información • del modelo de la aplicación • del modelo de la implementación • Algunos procesos tratan este modelo como una única expresión del sistema. • => Mezclan los detalles de implementación, con los de la aplicación • => la imposibilidad de cambiar la plataforma. • Otros retienen ambos modelos • => lo que puede llevar a divergencias entre ambos.
  • 8. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformación de modelos • Para evitar estos problemas, MDA mantiene una función de mapeo (o transformación) que transforma el modelo origen en el modelo destino • Es una solución a: • los problemas de mezcla de código • de divergencia de modelos • ¿Por qué? • El modelo destino no se modifica, se genera. • Las dos características principales del modelo de transformación son: • la construcción • la sincronización • Las transformaciones se usan para construir modelos destino, desde modelos fuente. • Las transformaciones son aplicaciones de funciones de transformación, definidos en términos de: • Las reglas de transformación representan decisiones de diseño repetibles.
  • 9. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Un ejemplo informal • Veamos la transición entre un modelo de análisis y un modelo de diseño • Asumamos también que el modelo de análisis contiene los elementos Banco, Cliente, Cuenta y Transferencia • Notemos que hay información de la aplicación que tiene que sobrepasar el tiempo de vida de la aplicación, mientras hay otras que no. • Los EJBs proveen dos formas de beans: • Entity Bean (POJO Persistente @Persist en JEE5/6 de la JPA) • Objeto accesible remotamente que guarda su estado en una base de datos • Stateful Session Bean • Objeto accesible remotamente que «vive» lo que «vive» un cliente (ej. sesión Web)
  • 10. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Información del modelo de análisis • Un Banco • Conoce sus Clientes y Cuentas • Puede establecer y romper las relaciones con sus Clientes • Un Cliente • Sabe su nombre • Puede abrir Cuentas • Puede cerrar una Cuenta que le pertenece • Conoce las Cuentas que le pertenecen • Puede hacer una Transferencia de una cantidad de dinero desde una Cuenta que le pertenece a otra Cuenta.
  • 11. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Información del modelo de análisis • Una Cuenta • Conoce su número de cuenta • Conoce su balance • Conoce el Cliente que le pertenece • Puede retirar un monto de dinero de su balance • Puede depositar un monto de dinero en su balance • Una Transferencia • Conoce el monto de dinero a transferir • Conoce las Cuentas fuente y destino • Ejecuta la retirada de un monto especificado de dinero de la Cuenta fuente y lo deposita en la cuenta destino
  • 12. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Información del modelo de análisis
  • 13. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Paso del análisis al diseño Respecto del tiempo de vida de estos elementos: • El Banco existe el mismo tiempo que existe el sistema • El Cliente existe desde el momento que establece una relación con el Banco hasta el momento que cierra todas sus cuentas y termina su relación con el Banco • Una cuenta existe desde el momento que se abre hasta el momento que se cierra • Una transferencia existe desde el momento que la ejecuta el Cliente hasta el momento que se ejecuta
  • 14. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Información del modelo de diseño • Un Banco • Es un Entity Bean con atributos persistentes apuntando a los Clientes y a las Cuentas • Tiene operaciones para establecer y cerrar relaciones con sus Clientes • Un Cliente • Es un Entity Bean con atributos persistentes que mantiene su nombre y apunta a sus Cuentas • Tiene operaciones para abrir y cerrar Cuentas y para ejecutar Transferencias • Una Cuenta • Es un Entity Bean con atributos persistentes que mantiene su número de cuenta y balance, además de apuntar al Cliente al que pertenece • Tiene operaciones para retirar y depositar montos de dinero • Una Transferencia • Es un Stateful Session Bean con atributos transient que mantienen la cantidad de dinero, las Cuentas fuente y destino. • Tiene una operación para ejecutar la transferencia
  • 15. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] ¿Cómo pasamos del análisis al diseño? Reglas de la función de transformación • Una clase cuyas instancias deben necesitar ser persistentes el tiempo que dure el sistema, se representan por un Entity Bean • Una clase cuyas instancias deben persistir un tiempo indeterminado – menos que el del sistema pero más que cualquier ejecución de una función - deben representarse con un Entity Bean • Una clase cuyas instancias existen solo por un período relativamente corto de tiempo, que lleva información relacionada con los Entity Beans, debe ser representado por un Stateful Session Bean • Todo Entity Bean y Stateful Session Bean tendrá los atributos necesarios que reflejen la información necesaria sobre las asociaciones en el modelo de análisis
  • 16. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Funciones de transformación • Estas reglas forman la función de transformación • La transformación particular del modelo de análisis del sistema bancario es la aplicación de la función de transformación • La diferencia entre este proceso y el dirigido por código es que el del código pierde la transformación una vez ejecutado. • Como consecuencia: • No puede repetirse sobre el mismo modelo • No puede ser aplicado en un modelo que requiere un modelo similar. • Así definimos, • Una «función de transformación» como una colección de reglas o algoritmos que definen cómo funciona un «transformación». • Una «transformación» es la aplicación o ejecución de una «función de transformación» para transformar un modelo en otro
  • 17. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Funciones de transformación • Las funciones de transformación se definen sobre los meta- modelos, pero operan sobre los modelos • Ejemplo: «Transforma cada clase con al menos un atributo persistente en un Entity Bean» • La reglas no se basan en elementos del modelo, se basa en los tipos de ese modelo • Las reglas no son específicas de un modelo, se aplican a todos los modelos que se crean a partir del meta-modelo, lo que las hace «reusables».
  • 18. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Formalismos de transformación Query, View and Transform (QVT) • Para cumplir con las dos características del mapeo de modelos: construcción y sincronización, las transformaciones deben ejecutase automáticamente • Lo que lleva a: acortar los plazos de arreglos, escalar a grandes modelos, evitar el trabajo manual => menos errores y mejora de la calidad general • Para que la máquina pueda llevar a cabo esto, se necesita un formalismo para expresar las reglas y expresar los modelos.
  • 19. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Formalismos de transformación 1. Imperativo 2. Basados en arquetipos 3. Declarativo MM de Entrada M de Entrada MMSalida Entidad parent Paquete nombre:String nombre:String PA PB E1 Clase nombre:String
  • 20. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Formalismos de transformación Imperativo • Implementación de todas las reglas y algoritmos en forma procedural • Expresa cómo se consulta la información en el meta-modelo, se transforma y se escribe • Principal ventaja: • es familiar • Principal desventaja: • No reversible => no se puede construir el modelo fuente del destino
  • 21. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Ejemplo Java … foreach (e:Entidad in entidades){ File dir = new File(e.parent.nombre); dir.mkdirs(); OutputStream os = new FileOutputStream( e.parent.nombre + ”/” + e.nombre+”.java”); os.println(“package ”+ e.parent.nombre +”;”); os.println(“private class ”+e.nombre+” {”); … os.println(“}”); os.close(); } … RESULTADO: El contenido del archivo /PA/PB/E1.java será: package PA.PB; private class E1 { … }
  • 22. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Formalismos de transformación Basado en arquetipos • Mezcla el un conjunto de plantillas con código, o reglas para generar el texto. • Puede ser implementado con un lenguaje de acceso a datos que selecciona los elementos apropiados del modelo fuente y el arquetipo (plantilla) que se usará. • Luego selecciona cómo hacer la transformación en algo que se incluye en el modelo destino. • Principal ventaja: • Muy bueno para transformar modelos en código
  • 23. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Ejemplo MOF Script texttransformation gui2java (in mmEntrada:“MMEntrada”) { mmEntrada.ContenedorEntidades::main () { self.entidades->forEach(e: mmEntrada.Entidad){ c.mapClase(); } mmEntrada.Entidad::mapClase () { file(self.parent.nombre+'/'+self.nombre+'.java'); “package ” self.parent.nombre ”;” “class “ self.nombre “{“ “}” } } RESULTADO: El contenido del archivo /PA/PB/E1.java será: package PA.PB; class E1 { … }
  • 24. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Formalismos de transformación Declarativo • Especifica los algoritmos como reglas que especifican lo que se producirá, NO CÓMO SE HARÁ • Principales ventajas: • Aunque no se garantiza, puede ser reversible • Muy bueno para transformaciones entre modelos
  • 25. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Ejemplo ATL -- @path mmEntrada=/NegocioGUI/MMEntrada.ecore -- @path mmSalida=/NegocioGUI/Java.ecore rule Negocio2AUI { from e : mmEntrada!Entidad to c : mmSalida!Clase(nombre<-e.nombre) }
  • 26. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Escenarios de transformaciones • Verticales • Refinamiento • Abstracción • Horizontales • Representación • Migración • Mezcla
  • 27. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de Refinamiento • Hemos mostrado una transformación del modelo de análisis al modelo de diseño que cambia el nivel de abstracción en el cual se expresan las cosas, ya que el meta-modelo de diseño tiene elementos adicionales del lenguaje. • Una función de transformación de refinamiento puede crear todo lo que se necesita del modelo destino , ya que el modelo fuente es completo con respecto a la función de mapeo. • No hay necesidad de examinar el modelo destino antes de ejecutarlo, o mapearlo al siguiente nivel. • Hay escenarios donde la función de mapeo es incompleta, y no se puede construir todo lo que se necesita en el modelo destino. Existen dos formas de solucionarlo: • Rellenar los espacios en blanco del modelo destino • Asociar un modelo adicional de entrada en el modelo fuente de manera que no lo contamine.
  • 28. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de Abstracción • Cuando no se puede ver el bosque por culpa de los árboles, es útil abstraer lo que no agrega comprensión al modelo. • Para asegurarnos que la vista abstracta está en sincronismo con el modelo detallado de forma automática utilizamos transformaciones de abstracción. • Las vistas abstractas de los modelos son útiles también cuando se mueve un modelo de una plataforma a otra • Una transformación abstracta extrae los contenidos de un modelo detallado en un modelo más abstracto que puede ser mapeado a otro modelo detallado • Tanto las transformaciones de refinamiento como de abstracción son VERTICALES (cambian el nivel de abstracción)
  • 29. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de Representación • A veces un meta-modelo no está totalmente soportado por notaciones disponibles, otras veces se necesitan un conjunto de meta-modelos que tienen sus propias notaciones. • Por lo tanto, se puede definir una transformación a un meta- modelo existente con notaciones y soporte de herramientas existentes. • Tales transformaciones permiten crear modelos en un meta- modelo soportado por otro modelo en otro meta-modelo. • Son más útiles cuando son reversibles
  • 30. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de Migración • En algunos casos, portar modelos existentes a otras plataformas usando una transformación de abstracción y una de refinamiento no es apropiado, ya que los cambios no son substanciales. • Por ejemplo, la migración de una versión de modelo de datos a otra. • Estas transformaciones reformatean y reagrupan información existente para que sea manejable por otras transformaciones. • De la misma manera que con las transformaciones de representación, no cambian el nivel de abstracción. • Tanto la transformación de representación como la de migración son transformaciones HORIZONTALES.
  • 31. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Transformaciones de Mezcla • Combina de múltiples modelos fuente para combinarlos en un único modelo destino. • Crea enlaces entre elementos de modelos diferentes que no hacen referencia explícita. • Este concepto de entrelazado aparece en los lenguajes de programación como «programación orientada a aspectos» Modelo de Seguridad Modelo de Banca Información de enlace Transformación mezcla Modelo mezclado Figura basada en la presentada en [1].
  • 32. Prof. Dr. Ricardo TESORIERO – Departamento de Sistemas Informáticos- Universidad de Castilla-La Mancha [ricardo.tesoriero@uclm.es] Referencias 1. Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA Distilled: Principles of Model-Driven Architecture. Addison Wesley. 2004. 2. Object Management Group. Unified Modeling Language: Superstructure. Version 2.0, ptc/03-07-06, July 2003; http://www.omg.org/cgi-bin/doc?ptc/2003-08-02.