Introduccion MDA
Introduccion MDA
Introduccion MDA
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:
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
PSM
PSM
J2EE
REL
dotNE
T
CODE
CODE
COD
E
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
(Meta Object Facility)
Metamodelos
QVT
(Query-View-Transformation)
Transformaciones
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
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
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
Domain Model
CIM
PIM Metamodel
Classifier
PIM Metamodel
Associati on
Relations hip
Cl ass
Generalizat ion
Generalization
0.. *
Assoc EndAdaptee
1..*
TargetAdapter
0..*
AdapteeAdapter
Target
OCL
Constraints
Adaptee
Target
Adapter
{or}
0.. *
Attribute
0..*
1
1
1
Assoc EndAdapter
0..*
Adaptees
GetAdaptees
1
Class
O
peration
1
AssociationEnd
<instance of>
OCL
Constraints
AdapteeAdapter
1..*
1
Adapter
0..*
1
0..*
1..*
T
argetAdapter
1
AdapterAdaptee
1..*
Adaptee
SetAdaptees
<instance of>
PIM
Refactoring
Patterns
Rules + Strategies
Components
PSM Metamodel
Nam
edEle
ment
+sup
plier
1..*
+client
1..*
Op
aq
ueExpression
0..1
(fro
m Kernel)
DirectedRelationship
Depende
ncy
+supplier
Abstractio
n
NamedElement
OCL
Constraints
U
sa
ge
+m
apping
1.. *
1.. *
0..1 0..1
OpaqueExpression
(from Kernel)
ct
* +contra
Dependency
OCL
Constraints
+client
Realiza
tio
n
Su
bstitutio
n
Rules
(from Kernel )
*
*
0..1
PSM Metamodel
*
Abstraction
Usage
Realization
Classifier
1
1
<instance of>
<instance of>
PSM
Refactoring
Rules + Strategies
Components
ISM Metamodel
ISM Metamodel
Rules
+declari ngClass
0..1
Interface
+declari ngInterface
0..*
+declaredClass
JavaClass
isPublic
isAbstract
isFi nal
+jav
aExceptions
TypedElement
+client
+declarin gClass
OCL
Constraints
DataType
(Jav
a_Li br ary)
+declaringClass
+declaringInterface
Interface
0..*
+declare dClass
JavaClass
isPubli c
isAbstract
isFinal
+declaringClass
+declaredClass
*
*
NewClass
+localAtt
OCL
Constraints
+client
*
Member
*
Member
isFi nal
isStatic
1..*
Method
i sAbst ract
i sNative
i sSyncronized
i sConstr uctor
0..1
+declaringInterface
+ declaredInte rface
Field
*
{ordered}
isFinal
isStatic
Method
isAbstract
isNative
isSyncronized
isConstructor
JavaParameter
<instance of>
<instance of>
Refactoring
Rules + Strategies
ISM
CONTENIDO
PARTE I
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,