Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sem05 MDA Arquitectura Dirigida Por Modelos
Sem05 MDA Arquitectura Dirigida Por Modelos
3
MDA es el estándar OMG que busca resolver los
problemas de integración de sistemas
Misión de OMG (Open Management Group)
Ayudar a los usuarios de computadores a resolver problemas de
integración, mediante especificaciones abiertas y neutrales respecto a
proveedores
Estándares definidos por la OMG desde 1990:
1991: CORBA: (Common Object Request Broker Architecture)
1997: Unified Modeling Language™ (UML™)
1997: Meta Object Facility™ (MOF™)
1997: XML Metadata interchange (XMI™)
1997:Common Warehouse Metamodel (CWM™).
2001: MDA
2006: BPMN
5
MDA busca mayor abstracción, reutilización e
integración en el desarrollo de sistemas
Elevando el nivel de abstracción hay mayores posibilidades
de reutilización
El desarrollo basado en modelos construye modelos que son
independientes de plataformas de software
Los modelos se reutilizan para generar sistemas para múltiples
plataformas
Plataformas tecnológicas
Especificación de mercados
verticales a través de DTFs
(Domain Task Forces)
8
Conceptos básicos de MDA
Modelos
un Modelo consiste de un conjunto de elementos que describen
alguna realidad física o hipotética (siendo una simplificación de esa
realidad)
MDA trata de crear diferentes modelos a diferentes niveles de
abstracción y luego los integra para formar una implementación
típicamente un modelo se presenta combinando gráficos y texto
ejs de modelos: código fuente, interfaces IDL, diagramas UML
Abstracción
ignorar información que no es de interés en un contexto particular
Clasificación
agrupar información en base a propiedades comunes
Lenguajes de modelado:
Sintaxis (gráfica o textual) y semántica (significado) de los
elementos usados para expresar un modelo
por ejemplo: UML y DSLs (lenguajes de dominios específicos)
9
Metamodelos y plataformas
Metamodelo
es un modelo de un lenguaje de modelado: define la estructura,
semántica y restricciones de una familia de modelos
Plataforma
especificación de un ambiente de ejecución para un conjunto de
modelos (ej: CORBA, .NET, JEE)
10
Mapping: Transformación entre modelos
Un mapping o transformación toma uno o más modelos de
entrada y produce un modelo de salida
ej: transformar un modelo UML de una aplicación a su correspondiente
modelo de código Java
las reglas se especifican a nivel del metamodelo para que puedan aplicarse a
cualquier modelo asociado
12
Características de un buen Modelo
Un buen modelo omite información
para facilitar la comprensión del objeto modelado
13
Abstracción, Clasificación y Generalización
Un modelador típicamente combina las acciones de
clasificación, abstracción y generalización
Se necesitan múltiples
proyecciones del sistema para
que al mezclarlas formen el
modelo del sistema completo
16
A medida que se progresa del análisis hacia el diseño de un
sistema, el dominio del problema y el lenguaje de modelaje
se vuelven menos abstractos:
20
Qué es un metamodelo y para qué sirve?
Un metamodelo es un modelo de un lenguaje de modelado.
Especifica los conceptos del lenguaje de modelado
23
Los elementos de un modelo son instancias de los
conceptos del metamodelo
modelo de modelo de
clases objetos
M1: modelo(s) de la
aplicación
ej: modelo de clases UML
26
Construyendo Transformaciones
27
Qué es una transformación entre modelos
Una transformación (mapping) entre modelos está definida
por una función de transformación compuesta de muchas
reglas de transformación
Mapping rules
A class whose instances need to persist over the lifetime of the software system
shall be represented as an entity bean.
A class whose instances exist only for a relatively brief period of time, and that
carry information relating to entity beans, shall be represented as a stateful
session bean.
Every entity bean and stateful session bean shall have attributes that reflect
necessary information about associations in the analysis model.
Las reglas de transformación se definen en términos del metamodelo pero operan sobre modelos 30
Esquema general de transformaciones entre modelos
31
Transformaciones entre modelos PIM y PSM:
PIM => PIM : refinar un modelo PIM generando otro modelo PIM
el refinamiento no requiere información de plataforma (ej: transformar
un modelo de análisis en un modelo de diseño)
Transformación de abstracción
transforma un modelo detallado hacia otro de mayor nivel de
abstracción
permite portar un modelo detallado para una plataforma a otra
plataforma (transformando inicialmente hacia el modelo abstracto)
Transformación de representación
transforma cambios en un modelo en cambios en su representación y
viceversa (ej: cambiar nombre de una clase en un modelo de clases
UML implica cambio en el repositorio del modelo, lo cual implica
cambio en el modelo de secuencia, etc.)
35
Transformación de migración
transforma un modelo directamente a otro del mismo nivel de
abstracción (transformación horizontal)
ej: para cambiar la versión de modelo de datos, para optimizar, para
hacer refactory, etc.
Transformación de combinación
toma varios modelos fuentes y los combina en un solo modelo
destino
36
Enumeraciones en una función de transformación
Son adicionales a las reglas de transformación
37
Construyendo modelos de Marcas
38
Qué son las marcas y su modelo
Las marcas son extensiones a un modelo fuente que permiten
que una transformación genere un modelo destino más
completo
Cardinalidad de un elemento
ejemplo de declaración de la marca :
InstanceQuantity: Int = 50000;
41
Por qué construir un lenguaje de modelado
No siempre se construye explícitamente un lenguaje de
modelado
al utilizar un subconjunto de UML para expresar un modelo de análisis
y otro de diseño, implícitamente se están definiendo 2 nuevos lenguajes
al extender UML (con nuevos artefactos) implícitamente se está
definiendo un nuevo lenguaje
43
Extensión o restricción mediante perfiles: adaptar
un metamodelo existente a un dominio particular
mediante estereotipos: extienden el vocabulario de
UML (ejemplo: añadir el estereotipo <<persistent>>
para indicar si una Clase es persistente)
mediante restricciones: definen cuáles elementos del
metamodelo pueden ir juntos o que condiciones deben
cumplir
OCL (Object Constraint Language) : indica
precondiciones, invariantes y postcondiciones que deben
cumplir los elementos del sistema
45
Qué es "elaboración de un modelo"
La elaboración de un modelo se refiere a la posibilidad de
modificar un modelo después de haber sido generado
por ej. añadir código, editar o hacer refactory del modelo generado
requiere entender el metamodelo y la función de transformación
46
Problema de la regeneración cuando hay
elaboración del modelo destino
Cómo preservar los cambios introducidos por la elaboración
cuando se modifica el modelo fuente y se vuelve a regenerar el
modelo destino?
47
Problema de la reversibilidad de la transformación
Utilidad de reversar para ir de un modelo destino hacia su
modelo fuente
49
Construyendo modelos Ejecutables
50
Qué es un modelo ejecutable ?
Es un modelo completo respecto a la funcionalidad deseada en
por lo menos un dominio de problema
ejemplo: un modelo ejecutable de un banco tiene la funcionalidad
mínima para poder hacer transferencias así no tenga interfaz de usuario
ni seguridad ni persistencia (que serían otros dominios)