• No se han encontrado resultados

MDA: Arquitectura Dirigida por Modelos

N/A
N/A
Protected

Academic year: 2021

Share "MDA: Arquitectura Dirigida por Modelos"

Copied!
52
0
0

Texto completo

(1)

MDA: Arquitectura Dirigida por Modelos

1

María Consuelo Franky

lfranky@javeriana.edu.co

Dpto. Ingeniería de Sistemas Universidad Javeriana

Bogotá - 2010

(2)

Temario

Objetivos de MDA (Model Driven Architecture)

Términos y Conceptos base MDA

Construyendo Modelos

Construyendo Meta-modelos

Construyendo Transformaciones

Construyendo modelos de Marcas

2

Construyendo modelos de Marcas

Construyendo Lenguajes de modelado

Elaborando Modelos

Construyendo modelos Ejecutables

Referencia: “MDA Distilled, Principles of Model Driven Architecture”, Stephen Mellor, Kendall Scott, Axel Uhl, Dirk Weise, Addison-Wesley Professional, 2004

Referencia OMG : “Model Driven Architecture (MDA)”,

(3)

Objetivos de MDA

(Model Driven Architecture)

3 3

(4)



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™)

MDA es el estándar OMG que busca resolver los

problemas de integración de sistemas

4

 1997: Meta Object Facility™ (MOF™)  1997: XML Metadata interchange (XMI™)

 1997:Common Warehouse Metamodel (CWM™).  2001: MDA

 2006: BPMN



MDA (Model Driven Architecture) - 2001

 objetivo principal: soportar interoperabilidad mediante estándares de

integración para las distintas etapas del ciclo de vida de los sistemas:

 del modelaje de negocio al diseño del sistema  construcción de componentes

 ensamblaje de componentes

(5)



MDA propone una estrategia (que debe ser soportada por

herramientas) para:

 especificar un sistema independiente de la plataforma tecnológica  especificar plataformas

 escoger una plataforma para un sistema

 transformar la especificación del sistema para una plataforma

particular

5



Tres objetivos de MDA: portabilidad, interoperabilidad, y

reutilización



MDA es dirigido por modelos (model-driven)

(6)



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

MDA busca mayor abstracción, reutilización e

integración en el desarrollo de sistemas

6



Es más fácil resolver la interoperabilidad de sistemas a un

nivel de diseño y no de implementación

(7)

Los estándares OMG se enmarcan en MDA

Estándares para expresar modelos: UML, MOF y CWM (tecnologías usadas para describir PIMs: modelos independientes de plataforma).

Plataformas tecnológicas

7

Servicios generales para toda aplicación (definidos como modelos PIM en UML para permitir integración entre sistemas)

Especificación de mercados verticales a través de DTFs

(Domain Task Forces)

(8)

Términos y Conceptos de MDA

8 8

(9)



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

Conceptos básicos de MDA

9

 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

(10)



Metamodelo

 es un modelo de un lenguaje de modelado: define la estructura,

semántica y restricciones de una familia de modelos

 ejemplo: UML tiene un metamodelo que describe aspectos de

estructura y de comportamiento de cualquier modelo UML

 NOTA: el metamodelo de UML se expresa en MOF

Metamodelos y plataformas

10



Plataforma

 especificación de un ambiente de ejecución para un conjunto de

modelos (ej: CORBA, .NET, JEE)

 relación entre modelos, metamodelos y plataformas:

(11)



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 de transformación (mapping rules) describen

cómo hacer la transformación

 la transformación completa se considera una función de transformación con

muchas reglas de transformación (ej: una clase en UML se convierte en una

Mapping: Transformación entre modelos

11

muchas reglas de transformación (ej: una clase en UML se convierte en una clase Java con el mismo nombre)

 las reglas se especifican a nivel del metamodelo para que puedan aplicarse a

cualquier modelo asociado

tomado de: “MDA Distilled, Principles of Model Driven Architecture”

(12)

Construyendo Modelos

12 12

(13)



Un buen modelo omite información

 para facilitar la comprensión del objeto modelado



Un buen modelo refleja correctamente una realidad real o

hipotética



Un buen modelo debe ser más económico de construir que la

realidad modelada

Características de un buen Modelo

13

realidad modelada



Un buen modelo sirve como medio de comunicación entre

(14)



Un modelador típicamente combina las acciones de

clasificación, abstracción y generalización

Abstracción, Clasificación y Generalización

14

(15)



“Zooming in y zooming out”

 MDA permite hacer modelos a un mayor

o menor nivel de detalle

 ”Zooming out” de los objetos de un

modelo: agrupa muchos objetos en

pocos objetos de granularidad más gruesa (zooming in: ver los detalles de

15

gruesa (zooming in: ver los detalles de un objeto grueso)

 ”Zooming out” de las interacciones de

los objetos de un modelo : reúne las

interacciones en una sola interacción abstracta

(16)

 Un dominio de problema es un

tema que puede entenderse independiente de otros temas

 Ejemplo: modelos de un sistema

bancario

 diagrama de clases del

dominio del negocio bancario

Modelos para diferentes temas de un mismo sistema

16

 diagrama de clases del

dominio de seguridad (general para cualquier sistema)

 Se necesitan múltiples

proyecciones del sistema para que al mezclarlas formen el modelo del sistema completo

(17)



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:

17

(18)



Dos clases de modelos en

relación a la independencia

de plataformas

 PIM (Platform Independent

Model): es un modelo centrado en un dominio de problema, independiente de cualquier plataforma en que

Modelos y plataformas

18

problema, independiente de cualquier plataforma en que se vaya a implantar

 PSM (Platform Specific

Model): es un modelo de menor nivel de abstracción con detalles de la plataforma en que se va a implantar (persistencia, seguridad, red, etc.), por ej:

(19)



Beneficios de la separación entre modelos PIM y PSM

 Facilita validar correctitud del sistema en el modelo PIM al estar

desligado de aspectos de plataforma tecnológica

 Facilita producir implementaciones del mismo sistema en diferentes

plataformas tecnológicas, cumpliendo los objetivos de negocio planteados en el modelo PIM

La integración e interoperabilidad entre varios sistemas se puede

19

 La integración e interoperabilidad entre varios sistemas se puede

definir de manera más clara en los modelos PIM, y luego se puede transformar a mecanismos específicos de plataforma (modelos PSM)

tomado de: “Model Driven Architecture (MDA”

Modelo CIM: es modelo del dominio que no muestra estructura del sistema

(20)

Construyendo Metamodelos

20 20

(21)



Un metamodelo es un modelo de un lenguaje de modelado.

 Especifica los conceptos del lenguaje de modelado



Especifica exactamente qué significa un modelo



Simplifica la comunicación entre los interesados en un

modelo

 ejemplo: en lugar de explicar “En el modelo un Cliente es algo que

Qué es un metamodelo y para qué sirve?

21

 ejemplo: en lugar de explicar “En el modelo un Cliente es algo que

tiene atributos y operaciones y que persiste tanto como el sistema viva”, se puede decir “En el modelo un Cliente en una Entidad” siempre y cuando el concepto Entidad esté definido en el

Metamodelo.



En base a conceptos de metamodelos se puede establecer de

forma concreta las funciones de transformación de un

modelo a otro.

 ejemplo: cada Class de un modelo 1 se transformará a un Entidad del

(22)



Subconjunto del metamodelo del lenguaje UML:

 indica el concepto Class que tiene múltiples Property y Operation

y que es subclase de Classifier (Interface es otra subclase)

Ejemplo de un metamodelo

22

(23)

Un metamodelo constituye un mayor grado de

abstracción respecto a los modelos de un sistema

23

tomado de: “MDA Distilled, Principles of Model Driven Architecture”

(24)

Los elementos de un modelo son instancias de los

conceptos del metamodelo

24

(25)

Arquitectura MDA de 4 niveles

 M0: datos de la aplicación

 M1: modelo(s) de la

aplicación

 ej: modelo de clases UML modelo de

clases

modelo de objetos

25

tomado de: “MDA Distilled, Principles of Model Driven Architecture”

 M2: metamodelo asociado al

modelo de la aplicación

 ej: metamodelo de UML

 M3: metamodelo del

metamodelo

 ej: MOF como metamodelo del

metamodelo de UML

 indica propiedades del

metamodelo M2, que son

requeridas por las herramientas de intercambio

(26)



Papel que juega XMI (XML Metadata Interchange)

 XMI es un mecanismo estándar de intercambio entre varias

herramientas o repositorios

 XMI puede ser usuado para producir automáticamente XML DTDs

de modelos UML y MOF, con el fin de lograr una representación serializada

(27)

Construyendo Transformaciones

27 27

(28)



Una transformación (mapping) entre modelos está definida

por una función de transformación compuesta de muchas

reglas de transformación



Objetivo: transformación automática de un modelo (más

abstracto) a otro (más concreto)

 mayor portabilidad

 mayor eficiencia de desarrollo

Qué es una transformación entre modelos

28

 mayor eficiencia de desarrollo  mayor calidad del software  menor tiempo de desarrollo  menor costo



Los detalles de transformación se separan de los modelos

fuente y destino

 la transformación debería ser repetible para regenerar el modelo

destino cuando cambia el modelo fuente

 el modelo destino por definición está sincronizado con el modelo

(29)

Analysis Model Information

 An Account

- knows its account number - knows its balance

- can withdraw an amount of money from its balance - can deposit an amount of money to its balance

 A Transfer

- knows the amount of money to transfer

Ejemplo informal de transformación

29

- knows the amount of money to transfer - knows its source and target Accounts

- executes by withdrawing the specified amount of money from its source Account and depositing it to its target Account

 With regard to the lifetime of Accounts, and Transfers, the analysis model

states the following:

 An Account exists from the moment it has been opened until the moment it

has been closed.

 A Transfer exists from the moment it has been commanded by a Customer

until the moment it has been executed.

(30)

Design Model Information

 An Account

- is an entity bean with persistent attributes holding its account number and

balance

- has operations for withdrawing and depositing amounts of money

 A Transfer

- is a stateful session bean with transient attributes holding the amount of money and pointing to the source and target Accounts

30

money and pointing to the source and target Accounts

- has an operation for executing the transfer

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.

(31)

Esquema general de transformaciones entre modelos

31

(32)



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)

 PIM => PSM : cuando un modelo PIM es suficientemente refinado

se proyecta a un modelo PSM en términos de la infraestructura de ejecución

 es relativamente sencillo transformar los elementos estructurales pero

32

 es relativamente sencillo transformar los elementos estructurales pero no lo es para los aspectos de comportamiento (operaciones)

 ej: transformar de un modelo lógico de componentes a un modelo de components EJB o DCOM

 PSM => PSM : refinar un modelo PSM para añadir detalles de

implantación

 ej: detalles de configuración y publicación en un tipo de servidor

 PSM => PIM : abstraer un modelo relativo a una plataforma

específica en otro modelo independiente de cualquier plataforma

 Es difícil lograrlo totalmente de manera automática

 idealmente después de una transformación PIM=>PSM, la

transformación reversa debería regresar al modelo PIM de partida .

(33)



Cómo se refinan típicamente los modelos:

33

(34)



Imperativo: las reglas de transformación se expresan

mediante algoritmos en un lenguaje de programación

 la tranformación no es reversible (no se puede construir el modelo

fuente a partir del modelo destino, por ejemplo para entender este último)



Arquetipo: conjunto de plantillas que mezclan código y

Alternativas para expresar una

función de transformación

34



Arquetipo: conjunto de plantillas que mezclan código y

reglas para generar texto destino a partir de metamodelos

 tampoco es reversible



Declarativo: reglas que indican qué se quiere producir pero

no cómo hacerlo

 facilita reversibilidad



Enfoque dirigido por modelos: la transformación se

especifica en un modelo respaldado por un metamodelo

(35)



Transformación de refinamiento

 transforma un modelo hacia otro de menor nivel de abstracción (por

ej; pasar del modelo de análisis al modelo de diseño)

 el modelo generado podría requerir ser completado



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

Escenarios de transformación de modelos

35

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

(36)



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

destino

tomado de: “MDA Distilled, Principles of Model Driven Architecture”

(37)



Son adicionales a las reglas de transformación



Indican cómo transformar uno a uno elementos del modelo

fuente en elementos del modelo destino

 ejemplo:

Enumeraciones en una función de transformación

37



La asociación se expresa en elementos de cada metamodelo

 ej: cada Atrribute (metamodelo de UML) es transformado en un

(38)

Construyendo modelos de Marcas

38 38

(39)



Las marcas son extensiones a un modelo fuente que permiten

que una transformación genere un modelo destino más

completo

 como las transformaciones, las marcas están separadas tanto del

modelo fuente como del modelo destino

 permiten probar múltiples posibles transformaciones de un mismo

Qué son las marcas y su modelo

39

 permiten probar múltiples posibles transformaciones de un mismo

modelo fuente (por ejemplo las marcas pueden indicar características de distribución entre múltiples procesadores)



Un modelo de marcas indica nombre, tipo y valor por defecto

para cada marca



Una función de transformación podría generar marcas para el

modelo destino con el fin de que sean usadas para una nueva

trasnformación a partir del modelo destino

(40)



Tipo de acceso de cada elemento del modelo fuente

 ejemplo de declaración de la marca:

enum AccessorType [ isRemote, isLocal] = isLocal

dependiendo del valor de esta marca para un elemento, la función de transformación genera un componente habilitado para acceso

remoto o local

Cardinalidad de un elemento

Marcas comunes

40



Cardinalidad de un elemento

 ejemplo de declaración de la marca :

InstanceQuantity: Int = 50000;

dependiendo del valor de la marca para un elemento , la función de transformación genera una tabla con un tamaño adecuado



Otros ejemplos de marcas

 para indicar si un elemento es

 stateful o stateless,  transiente o persistente  de acceso remoto o local

(41)

Construyendo lenguajes de modelado

41 41

(42)



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



Razones para definir (explícita o implícitamente) un nuevo

lenguaje de modelado

Por qué construir un lenguaje de modelado

42

lenguaje de modelado

 comunicación entre los miembros del equipo :

 ej: que todos usen una misma anotación {persistent} en los elementos persistentes y que todos entiendan el mismo significado)

 comunicación con las máquinas:

 permitir transformación automática entre modelos expresados en lenguajes de modelado



Definición de un lenguaje de modelado:

 sintaxis abstracta que describe estructura del lenguaje independiente

de sus símbolos de notación

 ej: metamodelo de UML define sintaxis de elementos sin indicar

(43)



MOF es un metamodelo con un conjunto de conceptos simples

pero suficientes para expresar estructura estática de un modelo

 tipos, generalización, atributos, asociaciones, operaciones

 también define interfaces programáticas para manipular modelos



Sobre MOF se puede defnir la sintaxis abstracta de cualquier

lenguaje de modelado

 metamodelo UML es un superconjunto del metamodelo MOF 2.0

Construyendo un lenguaje a partir de MOF

43

 metamodelo UML es un superconjunto del metamodelo MOF 2.0



Se pueden construir lenguajes para dominios específicos

(44)



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

44

cumplir

 OCL (Object Constraint Language) : indica

precondiciones, invariantes y postcondiciones que deben cumplir los elementos del sistema



Los perfiles (profiles) de UML permiten definir el

lenguaje de un modelo PSM, el cual debe indicar

elementos de una plataforma específica

 ej: un estereotipo UML puede indicar si una Clase

representa una interfaz CORBA y adicionalmente se pueden indicar invariantes en OCL

(45)

Elaborando Modelos

45 45

(46)



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



Por qué se requiere la elaboración de un modelo?

Qué es "elaboración de un modelo"

46

 para completar la implementación del modelo generado proveniente de

una transformación de un modelo fuente incompleto

 por ej: el modelo fuente solo indica signaturas de métodos, por lo que en el modelo destino debe completarse su implementación

(47)



Cómo preservar los cambios introducidos por la elaboración

cuando se modifica el modelo fuente y se vuelve a regenerar el

modelo destino?

 una solución es definir áreas protegidas en el modelo fuente para que

la función de transformación preserve la versión del área protegida asociada en el modelo destino (ej: implementación de un método)

Problema de la regeneración cuando hay

elaboración del modelo destino

47

 otra solución es marcar elementos añadidos al modelo destino que no

tienem relación con elementos del modelo fuente, para preservarlos en caso de regeneración

 una mejor solución es encontrar las diferencias entre el modelo

regenerado y el modelo modificado previo y resolver los conflictos (solución "diff-and-merge")

(48)



Utilidad de reversar para ir de un modelo destino hacia su

modelo fuente

 en sistemas de legado es importante poder partir de un modelo y

reversarlo para encontrar un modelo más abstracto que ayude a entender el sistema

 la reversibilidad también permite mover un modelo asociado a una

plataforma hacia otra plataforma, pasando por un modelo abstracto

Problema de la reversibilidad de la transformación

48

plataforma hacia otra plataforma, pasando por un modelo abstracto intermedio

(49)



Cómo asegurar la sincronización bidireccional entre un

modelos fuente y destino (más cuando hay modificaciones en

el modelo destino) ?

 problema: múltiples elementos en el modelo destino están asociados a

un mismo elemento en el modelo fuente

49

 ejemplo: el tipo de un atributo en el modelo fuente puede derivarse de su declaración en la clase implementadora en el modelo destino, o también de la columna de una tabla, o de un descriptor, etc.

 solución: enriquecer con información adicional la función de

(50)

Construyendo modelos Ejecutables

50 50

(51)



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)



Beneficios de trabajar con modelos ejecutables

 Permiten hacer entregas incrementales (y verificación temprana) del

sistema

Qué es un modelo ejecutable ?

51

sistema

 en cada incremento se agrega al modelo ejecutable funcionalidad de más dominios de problemas (mediante funciones de transformación que

mezclan los modelos de varios dominios de problema)

 es la base para definir "proceso MDA ágil"

 el modelo ejecutable es independiente de plataformas por lo cual

facilita la comunicación con el cliente

 para su ejecución requiere transformación ("compilador del modelo ejecutable) a modelo de plataforma (código)

 permiten integración de sistemas o componentes implantados en

(52)



Es un subconjunto de UML computacionalmente completo



permite definir modelos ejecutables

(independientes de plataforma)

UML ejecutable

• diagrama de máquina de estados para cada Clase

(conjunto de procedimientos)

• las máquinas son concurrentes y se sincronizan por

eventos

c/ procedimiento tiene conjunto de acciones asociadas (con sintaxis exacta)

52

Referencias

Documento similar

– A graphical modelling tool, based on the previously defined meta-model, has been implemented in order to help designers to build new state-machine models.. This tool, together with

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Polígon industrial Torrent d'en Puig. Polígonindustrial de Can

Y esto se debe principalmente a que las compañías que se vieron ensombrecidas por las firmas tecnológicas hace diez años parecen posicionadas para beneficiarse de las

Estudios en psicología positiva han arrojado tres motivos básicos para la desmoralización existente entre los abogados: (a) pesimismo, (b) escaso poder de decisión, y (c) naturaleza

• Para ello, la actualización del estudio del aceite de oliva analiza las configuraciones principales de la cadena de valor identificadas en el estudio de la campaña 2007-2008

deterioro de los

Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el