Está en la página 1de 22

Arquitectura de software

dirigida por modelos


(Model-Driven Architecture)
Liliana Favre
UNCPBA
2006
Model-Driven Architecture (MDA)
Es una evolución de estándares definidos por OMG
(Object Management Group) para mejorar
procesos de desarrollo de sistemas de software dirigidos
por modelos.
Ideas centrales en MDA
 Separar la especificación de la funcionalidad del
sistema de su implementación sobre una plataforma en
una tecnología específica.
 Controlar la evolución desde modelos abstractos a
implementaciones tendiendo a aumentar el grado de
automatización.
Plataforma en MDA
Plataforma
Es un conjunto de subsistemas y tecnologías que
proveen un conjunto coherente de funcionalidad
que puede ser usada en cualquier aplicación sin
tener en cuenta detalles de cómo 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 descripción de la lógica del negocio desde una
perspectiva independiente de la computación. Es un
modelo del dominio

Platform Independent Model


 Es una descripción de la funcionalidad del sistema en
forma independiente de las características de
plataformas de implementación específicas.
Modelos y MDA
Platform Specific Model (PSM)
Es una descripción del sistema en términos de
una plataforma específica

Implementation Specific Model


Es una descripción (especificación) del sistema a
nivel de código
MDD (Model-Driven Development)

PIM
PIM

PSM PSM PSM


J2EE REL dotNET

CODE CODE CODE


Transformaciones y MDA
La evolución desde modelos CIM a ISM es alcanzada
por:
 Refinamientos que permiten construir una
especificación más específica a partir de una más
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
Estándares 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 estándares de
modelamiento para integrar diferentes tipos de
modelos y metadatos e intercambiarlos entre
diferentes herramientas.
MOF (Meta Object Facility)
Se describen mediante:
 Modelos estáticos UML
 Clases
 Asociaciones binarias
 Tipos de datos
 Package

 Especificaciones OCL
Metamodelo
Especificaciones OCL
Metamodelo
Especificaciones OCL

context Package
self.class -> forAll (e1,e2 /e1.name = e2.name implies e1 = e2)
self.association->forAll(a1,a2/a1.name=a2.name implies a1=a2)
self.nestedPackages->
forAll(p1,p2 /p1.name = p2.name implies p1=p2)

context AssociationEnd
source = self.otherEnd.target and target = otherEnd.source
Transformaciones y
metamodelos

Metamodelo
PIM
“es-instancia-de” PIM

Refinamiento Refinamiento PIM-PIMmetamodelo


PIM-PSM PSM- PSMmetamodelo

Metamodelo
PSM PSM

“es-instancia-de”
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
Domain Model

CIM

PIM Metamodel PIM Metamodel


Classifi er Associati on Class

Relations hip Generalizat ion


Generalization
Adaptee
Target 1

Target

1
1
Adaptee

1
OCL 1

1..* 0..* OCL


Constraints Constraints
0.. * AdapteeAdapter
T
argetAdapter
Assoc EndAdaptee
1..* Attribute
TargetAdapter 0..* 1 1..* 0..*
AdapteeAdapter 1
1 1
1..* AdapterAdaptee
0..* Adapter
1 0..*
1 1 Adaptees
1
Adapter 1
1 {or} 0.. * AssocEndAdapter 1 1
GetAdaptees
1
Operat ion

Class AssociationEnd 1
SetAdaptees

<instance of> <instance of>


PIM
Refactoring

Patterns

Rules + Strategies

Components
PSM Metamodel PSM Metamodel
+sup
plier DirectedRelationship

Rules
NamedEle
ment Depende
ncy (from Kernel )
1..*
*
+client

1..* * +supplier
NamedElement Dependency

OCL OCL
1.. * *
Op
aq ueExpression Abstractio
n +clien
t
(fro
m Kernel) 0..1 0..1 Usa
ge
1.. * *

Constraints Constraints
+mapping

0..1 0.. 1
OpaqueExpression
Realiza
tio
n Abstraction Usage
(from Ker nel)

Realization
Su
bstitutio
n * +contra
ct Classifier
1
* 1

<instance of> <instance of> PSM


Refactoring

Rules + Strategies

Components
ISM Metamodel ISM Metamodel
Rules
+declari ngClass
0..1
+declari ngInterface 0..*
Interface JavaClass
+declarin gClass

OCL OCL
+declaredClass isPublic DataType
(Jav
a_Li br ary) 0..1
isAbstract +decl aringInterface
0..* JavaClass
isFi nal Interfac e
+ declaredInte rface +declaredCl ass isPubli c
+declaringClass isAbstract

Constraints Constraints
isFinal
+declaringClass
+declaringInterface
TypedElement
+client +declaredClass
1 *
* +client

+jav
aExceptions * *
Member
Member
isFinal
isFi nal * isStatic
* isStatic
NewClass
Method
isAbstract
1..*
isNative
+localAtt Fi eld isSyncronized
Method
isConstructor
i sAbstract *
i sNative JavaParameter
*
i sSyncronized {ordered}
i sConstr uctor

<instance of> <instance of>


ISM

Refactoring

Rules + Strategies
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 estándar del Object


Management Group (OMG)denominado MDA
(Model Driven Architecture).
 Análisis de técnicas básicas 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)
 Cómo construir metamodelos
 Semántica de UML
CONTENIDO
PARTE II
 MDA (Model-Driven Architecture)
 CIM, PIM, PSM, ISM
 Transformaciones de modelos y metamodelado
 Refinamiento y refactoring
 Evolución de software y MDA
 Herramientas CASE basadas en MDA
 Técnicas para el desarrollo de CASE basadas en
UML/MDA
 Ingeniería directa, ingeniería reversa
 Refactoring, patrones de reinmgeniería wrapping,…

También podría gustarte