You are on page 1of 22

Arquitectura de software

dirigida por modelos


(Model-Driven Architecture)
Liliana Favre
UNCPBA
2006
Model-Driven Architecture (MDA)
Es una evolucin de estndares definidos por OMG
(Object Management Group) para mejorar
procesos de desarrollo de sistemas de software dirigidos
por modelos.
Ideas centrales en MDA
Separar la especificacin de la funcionalidad del
sistema de su implementacin sobre una
plataforma en una tecnologa especfica.
Controlar la evolucin desde modelos abstractos a
implementaciones tendiendo a aumentar el grado
de automatizacin.
Plataforma en MDA
Plataforma
Es un conjunto de subsistemas y tecnologas que
proveen un conjunto coherente de funcionalidad
que puede ser usada en cualquier aplicacin sin
tener en cuenta detalles de cmo la funcionalidad
es implementada
Modelos y MDA
Distingue diferentes tipos de modelos:

CIM (Computation Independent Model)

PIM (Platform Independent Model)

PSM (Platform Specific Model)

ISM (Implementation Specific Model)

Modelos y MDA
Computation Independent Model (CIM)
Es una descripcin de la lgica del negocio desde una
perspectiva independiente de la computacin. Es un
modelo del dominio

Platform Independent Model
Es una descripcin de la funcionalidad del sistema en
forma independiente de las caractersticas de
plataformas de implementacin especficas.


Modelos y MDA
Platform Specific Model (PSM)
Es una descripcin del sistema en trminos de
una plataforma especfica

Implementation Specific Model
Es una descripcin (especificacin) del sistema a
nivel de cdigo
MDD (Model-Driven Development)
PIM
PIM
PSM
J2EE
PSM
REL
PSM
dotNET
CODE CODE
CODE
Transformaciones y MDA
La evolucin desde modelos CIM a ISM es alcanzada
por:
Refinamientos que permiten construir una
especificacin ms especfica a partir de una ms
abstracta (por ejemplo, PIM PSM, PSM ISM ) y
Refactorings que permiten transformar modelos en
un determinado nivel sin cambiar su funcionalidad,
pero mejorando algunos factores de calidad no
funcionales (por ejemplo PIM PIM, PSM PSM,
ISM ISM)
Metamodelos y MDA
En MDA es crucial
Mantener trazas y relaciones entre diferentes
modelos
Lograr interoperabilidad en diferentes niveles


Metamodelos
Modelos, Transformaciones y
Metamodelos
Estndares de OMG

UML/OCL Modelos

MOF Metamodelos
(Meta Object Facility)

QVT Transformaciones
(Query-View-Transformation)
Arquitectura de metamodelado
Arquitectura de metamodelado de 4 niveles:
Meta-metamodelo
(MOF) MOF
Metamodelo
(Metamodelo UML, SPEM) SPEM
Modelo
(UML, RUP) RUP
Objetos
es-una-instancia

MOF (Meta Object Facility)
MOF captura la diversidad de estndares de
modelamiento para integrar diferentes tipos de
modelos y metadatos e intercambiarlos entre
diferentes herramientas.


MOF (Meta Object Facility)
Se describen mediante:
Modelos estticos UML
Clases
Asociaciones binarias
Tipos de datos
Package

Especificaciones OCL
Metamodelo
Especificaciones OCL
Metamodelo
Especificaciones OCL
context Package context Package
self.class self.class - -> forAll (e1,e2 /e1.name = e2.name implies e1 = e2) > forAll (e1,e2 /e1.name = e2.name implies e1 = e2)
self.association self.association- ->forAll(a1,a2/a1.name=a2.name implies a1=a2) >forAll(a1,a2/a1.name=a2.name implies a1=a2)
self.nestedPackages self.nestedPackages- -> >
forAll(p1,p2 /p1.name = p2.name implies p1=p2) forAll(p1,p2 /p1.name = p2.name implies p1=p2)
context context AssociationEnd AssociationEnd
source = source = self.otherEnd.target self.otherEnd.target and target = and target = otherEnd.source otherEnd.source
Transformaciones y metamodelos

es-instancia-de
Refinamiento
PIM-PSM
Refinamiento PIM-PIMmetamodelo
PSM- PSMmetamodelo
es-instancia-de
PIM
PSM
Metamodelo
PIM
Metamodelo
PSM
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
slo un 10% soporta parcialmente MDA.
Limitaciones en procesos de:
ingeniera directa (forward engineering)
ingeniera reversa (reverse engineering)
transformaciones (refinamientos, refactoring)
anlisis de consistencia
No proveen asistencia en reenginera de sistemas legacy



MDA y Reingeniera
Curso: Arquitectura de software
dirigida por modelos
Los contenidos del curso se centran en:
Conceptos de modelado de software bajo
el enfoque propuesto por el estndar del Object
Management Group (OMG)denominado MDA
(Model Driven Architecture).
Anlisis de tcnicas bsicas para el desarrollo
de herramientas CASE basadas en MDA.

CONTENIDO
PARTE I

UML (Unified Modeling Language)
OCL (Object Constraint Language)
Metamodelado
MOF (Meta Object Facility)
Cmo construir metamodelos
Semntica de UML

CONTENIDO
PARTE II
MDA (Model-Driven Architecture)
CIM, PIM, PSM, ISM
Transformaciones de modelos y metamodelado
Refinamiento y refactoring
Evolucin de software y MDA
Herramientas CASE basadas en MDA
Tcnicas para el desarrollo de CASE basadas en
UML/MDA
Ingeniera directa, ingeniera reversa
Refactoring, patrones de reinmgeniera
wrapping,

You might also like