Title: Arquitectura de software dirigida por modelos (Model-Driven Architecture)
1Arquitectura de software dirigida por
modelos(Model-Driven Architecture)
- Liliana Favre
- UNCPBA
- 2006
2HERRAMIENTAS 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
3Herramientas 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
4MDA y Reingeniería
5Herramientas 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)
6Herramientas 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 meta- - modelos 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.
7Herramientas 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.
8CASE basadas en MDAOptimalJ
- 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
9CASE basadas en MDAOptimalJ
- 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
10CASE basadas en MDAOptimalJ
- 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.
11CASE basadas en MDAArcStyler
- 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.
12CASE basadas en MDAArcStyler
- 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
13CASE basadas en MDAArcStyler
- 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
14CASE basadas en MDAArcStyler
- 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.
15CASE basadas en UML/MDALimitaciones
- 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.
16CASE basadas en UML/MDALimitaciones
- 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.