Arquitectura de software dirigida por modelos

Download Report

Transcript Arquitectura de software dirigida por modelos

Arquitectura de software
dirigida por modelos
(Model-Driven Architecture)
Liliana Favre
UNCPBA
2006
HERRAMIENTAS CASE
CASE-UML
Rational Rose, Argo/UML, Together, UModel,
MagicDraw, MetaEdit+, Poseidon
CASE-Tiempo Real
Rapsody, Rational Rose Real Time, RapidRMA
CASE-MDA
OptimalJ, AndroMDA, Ameos, Together Architect,
Codagen, ArcStyler, MDE Studio, Objecteering
Herramientas CASE-MDA
Unas 120 herramientas CASE se basan en UML y
sólo un 10% soporta parcialmente MDA.
Limitaciones en procesos de:
 ingeniería directa (forward engineering)
 ingeniería reversa (reverse engineering)
 transformaciones (refinamientos, refactoring)
 análisis de consistencia
 No proveen asistencia en reenginería de sistemas legacy
MDA y Reingeniería
Herramientas CASE y tecnologías
MDA
Tecnologías MDA

UML (Unified Modeling Language)

UML Profiles

MOF (Meta Object Facility)

XMI ( XML Metadata Interchange)

CWM (Common Warehouse Model)
Herramientas CASE y tecnologías
MDA
XMI
Es un estándar de OMG para intercambio de modelos
UML. Es usado para mapear MOF a XML (eXtensible
Markup Language). Especifica cómo los modelos MOF
pueden ser representados en la forma de XML tags; los metamodelos MOF se traducen a XML Document Type Definition
(DTD) y los modelos se traducen a XML documentos que se
corresponden con los DTDs.
Este XML basado en XMI permite el intercambio entre
varias herramientas y repositorios: UML, software(Java, C#)
tecnologías de components (EJB, IDL) y bases de datos.
Herramientas CASE y tecnologías
MDA
CWM
Define un formato común de intercambio para
metadatos en data warehouse. Provee un lenguaje
común y definiciones de metamodelos para datos en
datawarehouse. El metamodelo tiene mucho en
común con el metamodelo UML y agrega metaclases,
por ejemplo, para modelar bases de datos
relacionales. En el contexto de MDA, la
especificación CWM es útil para la integración
legacy.
CASE basadas en MDA
OptimalJ
OptimalJ (Compuware) es una herramienta que soporta
MDD a nivel de PIM para dos plataformas J2EE y.NET.
Modelos



Modelo de dominio
 Modelo de clases
 Modelo de servicio
Modelo de la aplicación
 Modelo de presentación
 Modelo de negocio
 DBMS
Modelo de código
CASE basadas en MDA
OptimalJ
Transformaciones
Basadas en TPL ( Template Pattern Language)
Patrones de tecnología
 Transformación de modelos de dominio a
modelos de aplicación
Patrones de implementación
 Transformación de modelo de aplicación a
código
CASE basadas en MDA
OptimalJ
Proceso de desarrollo
 Generación automática a partir del PIM de
los modelos PSM de la capa de presentación
(web), capa de negocio (EJB) y bases de datos
 Distinción entre bloques libres y protegidos en
el código para impedir la modificación del
código generado.
 La interfaz web generada proporciona una
navegación por defecto para cada objeto de
negocio.
CASE basadas en MDA
ArcStyler
ArcStyler( Interactive Objects) soporta UML
1.4, OCL y diseño centrado en modelos.
Modelos
Un PIM es representado en términos de modelos de
clase. No distingue entre PIM y PSM. El modelo
de código es representado como un subsistema donde
diferentes paquetes de código son representados como
componentes.
CASE basadas en MDA
ArcStyler
Transformaciones
Es un sistema basado en uso de cartuchos
(cartridges) para descripción de transformaciones
que permite generar aplicaciones de n capas
codificadas en java/J2EE y C#/.NET a partir de
diagramas UML y la especificación de los
procesos de negocio
CASE basadas en MDA
ArcStyler
Transformaciones
Integra herramientas de modelado (UML) y
desarrollo (ingeniería directa, inversa,
construcción y despliegue de modelos basados
en MOF) con la arquitectura CARAT que
permite la creación, edición y mantenimiento de
cartuchos MDA que definen transformaciones
CASE basadas en MDA
ArcStyler
Transformaciones
Arquitectura CARAT
Un cartucho contiene un conjunto de reglas de
transformación. Existen numerosos cartuchos
para numerosas plataformasJ2EE, .NET, web,..
Utilizan Profiles UML para incluir en los
modelos aspectos específicos de una plataforma.
Una propiedad es la herencia que permite definir
un cartucho a partir de otro existente.
CASE basadas en UML/MDA
Limitaciones




En general, representan extensiones de CASE
UML, muchas están basadas en UML 1.X que
no están alineadas on MOF.
Limitada o inexistente integración de niveles
de CIM y PIM.
Los procesos de ingeniería directa( forward
engineering) no integran especificaciones
OCL. Generan esqueletos de código.
Escaso o nulo soporte para la validación de
modelos y transformaciones.
CASE basadas en UML/MDA
Limitaciones





No existen rigorosos fundamentos para definir
transformaciones entre modelos.
Escasa trazabilidad
Escaso soporte de ingeniería inversa y en
general de round-trip ingeniería.
Soporte nulo para la reingeniería de sistemas
legacy.
No integran técnicas de refactoring en distintos
niveles.