MDA • Viewpoints de MDA

60
TÓPICOS AVANZADOS EN INGENIERÍA DE SOFTWARE Desarrollo Dirigido por Modelos y Transformación de Modelos Eduardo Jara G.

Transcript of MDA • Viewpoints de MDA

TÓPICOS AVANZADOS

EN INGENIERÍA DE SOFTWARE

Desarrollo Dirigido por Modelos y

Transformación de Modelos

Eduardo Jara G.

Objetivos

• Comprender los conceptos del

Desarrollo de SW Dirigido por Modelos

• Conocer el estándar MDA de OMG

• Conocer y aplicar la implementación de MDA

en Enterprise Architect

2 Eduardo Jara G. / 2003

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

3 Eduardo Jara G. / 2003

El Diseño

Todas las metodología de desarrollo de software consideran la fase de diseño

Pero los “productos” del diseño (modelos, diagramas, …) no son la Aplicación que usará el Cliente

¿Para qué sirve el Diseño?

4 Eduardo Jara G. / 2003

Necesidad de un Diseño

Contar con el Diseño previo de una Aplicación de Software facilita su desarrollo, integración y mantención.

5 Eduardo Jara G. / 2003

DISEÑO Construcción

y Pruebas

Problemas en el uso del Diseño (1/2)

El Diseño no siempre es realizado correctamente y sus productos no siempre reflejan el producto real

6 Eduardo Jara G. / 2003

DISEÑO Construcción

y Pruebas

Interpretación/ Traducción

Sincronización Modelo/Código

Calidad

Problemas en el uso del Diseño (2/2)

Asumiendo:

• Un correcto entendimiento del Negocio y los Requisitos

• Capacidad técnica de los implementadores en la plataforma objetivo

Problemas:

• Debilidad técnica de los diseñadores

– El Diseño no satisface los Requisitos (validación)

– El Diseño no representa una correcta solución para la plataforma objetivo

– Errores sintácticos en el Diseño (modelos incorrectos)

• QA actúa como un notario, no revisa y asegura la calidad del Diseño

• Los implementadores no consideran el Diseño como input

• Los implementadores no entienden el Diseño

• El Diseño y el Código “evolucionan” independientemente

7 Eduardo Jara G. / 2003

Cómo hacer más efectivo el Diseño

Identifique estrategias (técnicas, administrativas, herramientas, etc.) para administrar los riegos asociados al Diseño de SW

• Evitar la ocurrencia del riego

• Monitorear la posible ocurrencia del riesgo

• Mitigar los efectos del riesgo (en caso de que se materialice)

8 Eduardo Jara G. / 2003

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

9 Eduardo Jara G. / 2003

Abstracción en Niveles de Lenguajes (1/2)

El Código en un Lenguaje 3G es un Diseño (una abstracción) de la solución real dependiente de la Plataforma

10 Eduardo Jara G. / 2003

cmp (ram1), (ram2)

bgt $label

mov (ram5), r0

sub (ram4), r0

jmp $label2

label mov (ram5), r0

add (ram4), r0

label2 mov r0, (ram3)

Programa Assembler

La sintaxis depende

del procesador

if (a > b)

c = d + e;

else

c = d – e;

Programa C

“Diseño” cercano al

lenguaje natural

Compilación

Los “Diseños 3GL” son ampliamente usados

porque existen compiladores eficientes

que hacen innecesario conocer el código assembler

Abstracción en Niveles de Lenguajes (2/2)

El Código-Diseño 3GL puede “absorber” los cambios tecnológicos de la plataforma objetivo

11 Eduardo Jara G. / 2003

Compilador 1

Compilador 2

Compilador 3

Compilador n

if (a > b)

c = d + e;

else

c = d – e;

Desarrollo Dirigido por Modelos

• En Round-Trip Engineering el Modelo y el Código están sincronizados al mismo nivel de abstracción

– (code generation + reverse engineering)

• En Model Driven Software Development (MDSD) el Modelo es más abstracto que el Código

• En Model Driven Engineering (MDE) los Modelos son entendibles por los usuarios del dominio y sirven como base para implementar el software

• Una iniciativa MDE es Model Driven Architecture (MDA) adoptada por Object Management Group (OMG)

12 Eduardo Jara G. / 2003

Modelo

Código

Modelo

Código

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

13 Eduardo Jara G. / 2003

Model Driven Architecture (MDA)

• MDA permite

– especificar un sistema independientemente de la plataforma que lo soporta

– especificar plataformas

– elegir una plataforma particular

– transformar la especificación en una plataforma particular

• Objetivos de MDA

– Portabilidad

– Interoperabilidad

– Reusabilidad

A través de la separación de intereses (separation of concerns)

14 Eduardo Jara G. / 2003

Conceptos de MDA

• Sistema

• Modelo

• Dirigido por Modelos

• Arquitectura

• Punto de Vista (Viewpoint)

• Viewpoints de MDA

• Plataforma

• Aplicación

• Independencia de la Plataforma

15 Eduardo Jara G. / 2003

Sistema

• Un Sistema – actual o futuro - incluye …

– programas

– un sistema computacional

– una combinación de diferentes sistemas

– personas

– una organización

– otros

• Se pone énfasis en el software dentro del sistema

16 Eduardo Jara G. / 2003

Modelo (1/3)

• Un Modelo de un sistema es una descripción del sistema y su entorno con un determinado propósito

• Usualmente un Modelo es una combinación de texto y dibujos

– El texto puede estar en un lenguaje de modelado o en lenguaje natural

17 Eduardo Jara G. / 2003

Modelo (2/3)

• Un especificación es formal si está basada en un lenguaje que tiene sintaxis y semántica bien definidas, y – posiblemente – reglas para el análisis e inferencia sobre sus elementos

• En MDA una especificación es un Modelo sólo si es formal en el sentido anterior

• Ejemplos:

– El Código Fuente es un Modelo que puede ser ejecutado en un procesador

– Una especificación en UML es un Modelo cuyas propiedades pueden ser expresadas gráficamente por medio de diagramas o textualmente con XML

18 Eduardo Jara G. / 2003

Modelo (3/3)

• La abstracción es la eliminación de detalles irrelevantes, no es una excusa para ser vago e impreciso

– Un Modelo puede obviar detalles, pero debe ser preciso

• Un creciente porcentaje del trabajo en TI está dedicado al modelado del negocio

• ¡Antes de codificar DISEÑE! ¡Antes de diseñar REALICE LA ARQUITECTURA!

• Al igual que en la economía, en TI hay ciclos:

– Se está revalorando la arquitectura y el diseño

• Son las propiedades del modelo las que importan, no los diagramas usados para visualizarlos, ni su codificación en algún lenguaje (p.e. XML)

19 Eduardo Jara G. / 2003

Dirigido por Modelos

• MDA es “dirigido por Modelos” define el uso de modelos para encauzar

– Entendimiento

– Diseño

– Construcción

– Despliegue

– Operación

– Mantención

– Modificación

20 Eduardo Jara G. / 2003

Arquitectura

• La Arquitectura de un Sistema es una especificación de sus partes y conexiones, y la forma en que las partes interactúan a través de las conexiones

• MDA prescribe el uso de ciertos tipos de Modelos, cómo prepararlos y sus relaciones

21 Eduardo Jara G. / 2003

Punto de Vista (Viewpoint)

• Un Punto de Vista es una técnica de abstracción que, usando un conjunto de conceptos y reglas, se centra en determinados aspectos del sistema

• Una Vista (View) de un Sistema es su representación desde la perspectiva de un Punto de Vista

22 Eduardo Jara G. / 2003

Reference Model of Open Distributed Processing

Viewpoints de MDA

• Computation Independent (Independiente de la Computación)

– Se centra en el entorno del Sistema y sus requisitos

– No hay detalles de la estructura y procesamiento

• Platform Independent (Independiente de la Plataforma)

– Se centra en la operación del Sistema abstrayendo detalles de Plataformas específicas

– Muestra lo que no varía entre una Plataforma u otra

– Puede usar un lenguaje de modelado genérico o uno específico para el dominio

• Platform Specific (Específico de la Plataforma)

– Agrega datos sobre el uso de una Plataforma específica

23 Eduardo Jara G. / 2003

Plataforma

• Una Plataforma es un conjunto de subsistemas y tecnologías que proveen un conjunto coherente de funcionalidades a través de interfaces y patrones de uso

– cualquier aplicación puede usar la Plataforma sin preocuparse de cómo la funcionalidad está implementada

24 Eduardo Jara G. / 2003

Common Object Request Broker Architecture Java Enterprise Edition Microsoft .NET

Aplicación

• La Aplicación se refiere a la funcionalidad a desarrollar

• Un Sistema es descrito en términos de una o más Aplicaciones soportadas por una o más Plataformas

25 Eduardo Jara G. / 2003

Independencia de Plataforma

• La Independencia de Plataforma es una cualidad que un Modelo puede exhibir

• Un Modelo con esta cualidad es independiente de las características de una Plataforma

• La Independencia de Plataforma es una asunto de grado

– Un Modelo puede ser totalmente independiente de cualquier Plataforma

– En el otro extremo, un Modelo puede contener atributos específicos de una Plataforma particular

26 Eduardo Jara G. / 2003

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

27 Eduardo Jara G. / 2003

Viewpoints de MDA

28 Eduardo Jara G. / 2003

Computation Independent

Model (CIM)

Platform Independent

Model (PIM)

Platform Specific Model

(PSM)

Código

Analista de Negocio

Arquitecto/ Diseñador

Desarrollador/ Probador

CIM >> PIM

PIM >> PSM

PSM>> Código

Taxonomía de Modelos

29 Eduardo Jara G. / 2003

Modelo

Modelo de SistenasModelo de Negocio

(Modelo de Dominio)

Modelo Lógico Modelo Físico

(Despliegue)

Modelo

Computacional

PIM PSM

Modelo de

Requerimientos

Computation Independent Model (CIM)

• Un Modelo Independiente de la Computación es una Vista del Sistema desde el Punto de Vista Independiente de la Computación

• El CIM a veces es llamado Modelo de Dominio

• Se usa el vocabulario de los expertos del dominio

• El CIM es el puente entre

– los expertos del Dominio y sus requerimientos

– y los expertos en el diseño y construcción del software

30 Eduardo Jara G. / 2003

Platform Independent Model (PIM)

• Un Modelo Independiente de la Plataforma es una Vista del Sistema desde el Punto de Vista Independiente de la Plataforma

• El PIM tiene un grado suficiente de independencia para ser útil con un grupo de Plataformas de un cierto tipo

31 Eduardo Jara G. / 2003

ESPECIFICACION DOMINIO

UML Profile for Advanced and Integrated Telecommunication Services telecommunications

UML Profile for Enterprise Application Integration domain, modeling

UML Profile for Enterprise Distributed Object Computing domain, modeling

UML Profile for Modeling and Analysis of Real-time and Embedded Systems real-time, middleware

UML Profile for QoS and Fault Tolerance real-time, middleware, modeling

UML Profile for Schedulability, Performance and Time real-time, middleware, modeling

UML Profile for System on a Chip real-time, middleware, modeling

UML Profile for Software Radio software-based communications

UML Profile for Voice telecommunications

UML Testing Profile modeling

Platform Specific Model (PSM)

• Un Modelo Específico de la Plataforma es una Vista del Sistema desde el Punto de Vista Específico de la Plataforma

• El PSM combina las especificaciones del PIM con los detalles que especifican cómo el Sistema usa un tipo particular de Plataforma

32 Eduardo Jara G. / 2003

Modelo de la Plataforma

• El Modelo de la Plataforma es un conjunto de conceptos técnicos que representan las partes que forman la Plataforma y los servicios que provee

• Provee conceptos para representar los elementos que serán usados – en el PSM - para especificar cómo la Aplicación usará la Plataforma

33 Eduardo Jara G. / 2003

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

34 Eduardo Jara G. / 2003

Transformación de Modelos

• La Transformación de Modelos es el proceso que convierte un Modelo en otro del mismo Sistema

35 Eduardo Jara G. / 2003

PSM

Transfor-

mación

PIM Otra

Información

Refinamiento

Abstracción

Realización

“Zooming”

• Al hacer “zoom in” sobre un Modelo se tendrán los detalles del nivel más refinado

• Para un Modelo abstracto habrá uno o más Refinamientos

• Dentro de un Refinamiento, por cada elemento abstracto habrá >1 elementos específicos

36 Eduardo Jara G. / 2003

Beneficios del binomio PIM-PSM

• Facilita la validación de corrección del PIM al estar libre los detalles específicos de la Plataforma

– excepciones, tipos de datos, constructores, etc.

• Facilita la creación de diferentes implementaciones

• Facilita la EAI (Enterprise Application Integration)

37 Eduardo Jara G. / 2003

PIMs en UML

• Los Modelos UML son declarativos

• UML ha sido definido usando conceptos UML

• Los Modelos UML pueden se expresados textual y gráficamente

• Los Modelos UML son semánticamente expresivos

– Invariantes

– Pre y postcondiciones

– Si un atributo es o no nulo

– Si lo subtipos son disjuntos

– OCL (Object Constraint Language) permite “Diseño por Contratos”

– Otros

38 Eduardo Jara G. / 2003

UML permite definir especificaciones formales

– Modelos MDA

Restricciones (Constraints)

• Las Restricciones formales reducen la ambigüedad del lenguaje natural

– Le da al programador instrucciones más precisas

– Provee una base para establecer pruebas de conformidad para diferentes implementaciones

39 Eduardo Jara G. / 2003

La Interfaz CORBA (IDL) es semánticamente limitada

La especificación UML tiene más información

• UML es independiente de cualquier midleware, esto lo hace – en principio – no adecuado para describir PSMs

• Se requiere utilizar los mecanismos de extensión de UML

– Profiles

– Stereotypes

– Tagged Values

PSMs en UML

40 Eduardo Jara G. / 2003

«Sesion Bean»

ConverterBean

- dollarToYenRate :BigDecimal

- yenToEuroRate :BigDecimal

+ dollarToYen(dollars :BigDecimal) :BigDecimal

+ yenToEuro(yens :BigDecimal) :BigDecimal

tags

Logged = No

Testeable = yes

Type = stateless

Valores Etiquetados

Estereotipo

PIM Mapping

Techniques

PIMMetamodel

PSM Mapping

Techniques

PSM

UML

MOF

Other

Languages

Infrastructure

«based on»

1..*

«described

with»1..*

«described

with»

1..*

«based on»

1..*

«expressed

with»0..1

«expressed

with»0..1

«expressed

with»

0..1

«mapping»

1..*

«mapping»

1..*

«mapping»

1..*

«refactoring»

«depends on»

Mapeos

Un Mapeo es un conjunto de reglas usadas para obtener un Modelo a partir de otro

41 Eduardo Jara G. / 2003

Mapeo de PIM a PIM

• Para mejorar, filtrar o especializar los Modelos sin necesitar información sobre la Plataforma

• Ejemplo

– De Análisis a Diseño Lógico

42 Eduardo Jara G. / 2003

PIM Mapping

Techniques

PIM

PSM Mapping

Techniques

PSM

«mapping»

1..*

«mapping»

1..*

«mapping»

1..*

«refactoring»

Mapeo de PIM a PSM

• Cuando el PIM está lo suficientemente refinado para proyectarlo hacia la infraestructura donde se ejecutará

• Ejemplo

– De PIM a EJB

– De PIM a DDL

– De PIM a Java

43 Eduardo Jara G. / 2003

PIM Mapping

Techniques

PIM

PSM Mapping

Techniques

PSM

«mapping»

1..*

«mapping»

1..*

«mapping»

1..*

«refactoring»

Mapeo de PSM a PSM

• Para la creación y empaquetado de componentes y su despliegue

• Despliegue de Componentes en diferentes máquinas y servidores

• Ejemplo

– PSM-EJB a GlassFish + MySQL

– PSM-EJB a WebLogic + Oracle

44 Eduardo Jara G. / 2003

PIM Mapping

Techniques

PIM

PSM Mapping

Techniques

PSM

«mapping»

1..*

«mapping»

1..*

«mapping»

1..*

«refactoring»

Mapeo de PSM a PIM

• Para abstraer Modelos de implementaciones existentes en una tecnología particular hacia un Modelo independiente de ella

• Es un proceso de “minería” difícil de automatizar

45 Eduardo Jara G. / 2003

PIM Mapping

Techniques

PIM

PSM Mapping

Techniques

PSM

«mapping»

1..*

«mapping»

1..*

«mapping»

1..*

«refactoring»

Transformación PIM-PSM

• Estrategias de Transformación

– Estudiar el PIM y realizar una Transformación manual “única”

– Estudiar el PIM y realizar una Transformación manual usando patrones de refinamiento

– Crear automáticamente un esqueleto del PSM, el que es completado manualmente

– Transformación totalmente automática

46 Eduardo Jara G. / 2003

Transformación Automática PIM-PSM

• La Transformación automática es posible bajo ciertas condiciones

– No hay sistemas legados

– En Modelo de inicio es semánticamente rico

– Algoritmos de transformación de alta calidad

• Es más fácil generar código a partir de la estructura que del comportamiento

• La transformación automática es más factible si está parametrizada con opciones (predefinidas) elegidas por una persona

47 Eduardo Jara G. / 2003

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

48 Eduardo Jara G. / 2003

MDA y Estándares de OMG

• El núcleo de la Arquitectura está basada en los estándares:

– UML: Unified Modeling Language

– MOF: Meta Object Facility

– CWM: Common Warehouse Metamodel

• Unos pocos Perfiles UML genéricos

– Enterprise Computing

– Real-Time computing

– otros

• Perfiles UML para representar las tecnologías específicas

– CORBA

– Java

– etc.

49 Eduardo Jara G. / 2003

Servicios Generales (Pervasive Services)

• Independiente de su ámbito, todas las aplicaciones utilizan ciertos servicios generales:

– Persistencia

– Seguridad

– Transacciones

– Manejo de Eventos

– Mensajería

– Servicios de directorios

– otros

• Los detalles de estos servicios son dependientes de la tecnología

50 Eduardo Jara G. / 2003

Ciclo de Vida del Sistema

• Crear el PIM usando un Perfil UML genérico Refinar el PIM (varios PIMs)

– Se definen los requerimientos de Servicios Generales

• Transformar el PIM al PSM usando un Perfil UML específico

• Refinar el PSM (varios PSMs)

– Incluyendo los Servicios Generales adaptados a la tecnología

• Generar Código

51 Eduardo Jara G. / 2003

Unified Modeling Language

• Para el modelado de

– Arquitectura

– Objetos y Clases

– Interacciones

– Componentes y su despliegue

• Para representar CIM, PIM y PSM

• Para representar restricciones

• Los Modelos UML pueden ser intercambiados con XMI

52 Eduardo Jara G. / 2003

XMI (XML Metadata Interchange)

• Estándar para intercambio de modelos

• Para generer DTDs y Schemas desde modelos MOF y UML

• Une varios mundos

– Metadatos (MOF y XML)

– Modelado con UML

– Middleware Perfiles UML para Java, IDL, etc.

53 Eduardo Jara G. / 2003

MOF (Meta Object Facility)

• “Subconjunto” de UML

• Provee constructos estándares para el modelado e intercambios usados en MDA

• Los estándares de OMG (entre ellos UML) están definidos en MOF

54 Eduardo Jara G. / 2003

Meta-Niveles MOF

55 Eduardo Jara G. / 2003

META NIVEL DESCRIPCIÓN ELEMENTOS

M3 MOF: el conjunto de constructores

usados para definir metamodelos

Clase MOF,

Atributo MOF,

Asociación MOF, etc.

M2 Metomodelos formados por instancias

de constructores MOF

Clase UML, Atributo UML, Asociación UML,

Estado UML, etc.

Tabla CWM, Columna CWM, etc.

Tarea BPMN, Participante BPMN, etc.

M1 Modelos formados por instancias de

los constructores de metamodelos M2

Clase “Cliente”, Clase “Factura”, etc.

Tabla “Empleado”, Tabla “Vendedor”, etc.

M0 Objetos y datos, es decir, instancias

de los constructores de modelos M1

Cliente “Jaime Pérez”, Cliente “Marcela

Ordoñez”, Factura “22345”, etc.

Repositorio MOF

• Es el estándar de OMG para Warehouse

• Cubre todo el ciclo de vida de una aplicación Warehouse

• Contiene metamodelos para describir reglas de

– OLAP (Online Analytical Processing)

– Minería de Datos (Data Mining)

– Transformación de Datos

CWM (Common Warehouse Metamodel)

56 Eduardo Jara G. / 2003

Modelo de

Entrada

(M1)

Modelo de

Salida

(M1)

Transformador

Genérico

Metamodelos de

Entrada y Salida (M2)

Reglas de

Transformación (M1)

Agenda

• Diseño

• Desarrollo Dirigido por Modelos

• MDA

• Viewpoints de MDA

• Transformación de Modelos

• MDA y Estándares de OMG

• Conclusión

57 Eduardo Jara G. / 2003

MDA – Múltiples Disciplinas

Teach Yourself C++ in 14 Easy Lessons

Java for Morons

CORBA for Dummies

Complete Idiot’s Guide to Win32

58 Eduardo Jara G. / 2003

Brain Surgery in 14 Easy Lessons

Air Traffic Control for Morons

Bridge Design for Dummies

Complete Idiot’s Guide to Contract Law

M. Henning

• El Desarrollo Dirigido por Modelos es un trabajo serio que requiere disciplina, profesionalismo y conocimientos

Temas de Análisis

• Barreras para el uso de MDA

• MDA y Metodologías Ágiles (p.e. eXtreme Programming -XP)

• Cómo incorporar en el PIM la lógica de ejecución (los algoritmos de los métodos)

– ¿Diagramas o Código?

59 Eduardo Jara G. / 2003

CONSULTAS

60 Eduardo Jara G. / 2003