2011 blog mda navarra ezquiaga_gonzales erik_metropolis transfronteriza
Introduccion MDA
-
Upload
alejandro-bonilla -
Category
Documents
-
view
35 -
download
1
Transcript of Introduccion MDA
Arquitectura de software Arquitectura de software dirigida por modelosdirigida por modelos(Model-Driven Architecture)(Model-Driven Architecture)
Liliana FavreLiliana FavreUNCPBAUNCPBA
20062006
Model-Driven Architecture (MDA)Model-Driven Architecture (MDA)
Es una evolución de estándares definidos por OMGEs una evolución de estándares definidos por OMG((Object Management GroupObject Management Group) para mejorar) para mejorarprocesos de desarrollo de sistemas de software dirigidosprocesos de desarrollo de sistemas de software dirigidospor modelos. por modelos. Ideas centrales en MDA Ideas centrales en MDA
Separar la especificación de la funcionalidad del Separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma sistema de su implementación sobre una plataforma en una tecnología específica.en una tecnología específica.
Controlar la evolución desde modelos abstractos a Controlar la evolución desde modelos abstractos a implementaciones tendiendo a aumentar el grado de implementaciones tendiendo a aumentar el grado de automatización.automatización.
Plataforma en MDAPlataforma en MDA
Plataforma Plataforma
Es un conjunto de subsistemas y tecnologías queEs un conjunto de subsistemas y tecnologías que
proveen un conjunto coherente de funcionalidadproveen un conjunto coherente de funcionalidad
que puede ser usada en cualquier aplicación sinque puede ser usada en cualquier aplicación sin
tener en cuenta detalles de cómo la tener en cuenta detalles de cómo la funcionalidadfuncionalidad
es implementadaes implementada
Modelos y MDAModelos y MDA
Distingue diferentes tipos de modelos:Distingue diferentes tipos de modelos:
CIM (Computation Independent Model)CIM (Computation Independent Model)
PIM (Platform Independent Model)PIM (Platform Independent Model)
PSM (Platform Specific Model)PSM (Platform Specific Model)
ISM (Implementation Specific Model)ISM (Implementation Specific Model)
Modelos y MDAModelos y MDA
Computation Independent Model (CIM)Computation Independent Model (CIM) Es una descripción de la lógica del negocio desde una Es una descripción de la lógica del negocio desde una
perspectiva independiente de la computación. Es un perspectiva independiente de la computación. Es un modelo del dominio modelo del dominio
Platform Independent ModelPlatform Independent Model Es una descripción de la funcionalidad del sistema en Es una descripción de la funcionalidad del sistema en
forma independiente de las características de forma independiente de las características de plataformas de implementación específicas. plataformas de implementación específicas.
Modelos y MDAModelos y MDA
Platform Specific Model (PSM)Platform Specific Model (PSM)
Es una descripción del sistema en términos deEs una descripción del sistema en términos de
una plataforma específicauna plataforma específica
Implementation Specific ModelImplementation Specific Model
Es una descripción (especificación) del sistema aEs una descripción (especificación) del sistema a
nivel de códigonivel de código
MDD (Model-Driven Development)MDD (Model-Driven Development)
PIMPIM
PSM
J2EE
PSM
REL
PSM
dotNET
CODE CODE CODE
Transformaciones y MDATransformaciones y MDA
La evolución desde modelos CIM a ISM es alcanzadaLa evolución desde modelos CIM a ISM es alcanzadapor:por: RefinamientosRefinamientos que permiten construir una que permiten construir una
especificación más específica a partir de una más especificación más específica a partir de una más abstracta (por ejemplo, PIM PSM, PSM ISM ) yabstracta (por ejemplo, PIM PSM, PSM ISM ) y
RefactoringsRefactorings que permiten transformar modelos en que permiten transformar modelos en un determinado nivel sin cambiar su funcionalidad, un determinado nivel sin cambiar su funcionalidad, pero mejorando algunos factores de calidad no pero mejorando algunos factores de calidad no funcionales (por ejemplo PIM PIM, PSM PSM, funcionales (por ejemplo PIM PIM, PSM PSM, ISM ISM)ISM ISM)
Metamodelos y MDAMetamodelos y MDA
En MDA es crucialEn MDA es crucial Mantener trazas y relaciones entre diferentes Mantener trazas y relaciones entre diferentes
modelosmodelos Lograr interoperabilidad en diferentes nivelesLograr interoperabilidad en diferentes niveles
MetamodelosMetamodelos
Modelos, Transformaciones y Modelos, Transformaciones y MetamodelosMetamodelos
Estándares de OMGEstándares de OMG
UML/OCLUML/OCL ModelosModelos
MOFMOF MetamodelosMetamodelos(Meta Object Facility)(Meta Object Facility)
QVT QVT TransformacionesTransformaciones(Query-View-Transformation)(Query-View-Transformation)
Arquitectura de metamodeladoArquitectura de metamodelado
Arquitectura de metamodelado de 4 niveles:Arquitectura de metamodelado de 4 niveles: Meta-metamodelo Meta-metamodelo (MOF) MOF(MOF) MOF Metamodelo Metamodelo (Metamodelo UML, SPEM) SPEM(Metamodelo UML, SPEM) SPEM Modelo Modelo (UML, RUP) RUP(UML, RUP) RUP Objetos Objetos “ “es-una-instancia”es-una-instancia”
MOF (Meta Object MOF (Meta Object Facility)Facility)
MOF captura la diversidad de estándares deMOF captura la diversidad de estándares de
modelamiento para integrar diferentes tipos demodelamiento para integrar diferentes tipos de
modelos y metadatos e intercambiarlos entremodelos y metadatos e intercambiarlos entre
diferentes herramientas.diferentes herramientas.
MOF (Meta Object MOF (Meta Object Facility)Facility)
Se describen mediante:Se describen mediante: Modelos estáticos UMLModelos estáticos UML
ClasesClases Asociaciones binariasAsociaciones binarias Tipos de datosTipos de datos PackagePackage
Especificaciones OCLEspecificaciones OCL
MetamodeloMetamodeloEspecificaciones OCLEspecificaciones OCL
MetamodeloMetamodeloEspecificaciones OCLEspecificaciones OCL
context Packagecontext Packageself.class self.class --> forAll (e1,e2 / e1.name = e2.name implies e1 = e2)> forAll (e1,e2 / e1.name = e2.name implies e1 = e2)self.associationself.association-->forAll(a1,a2/ a1.name=a2.name implies a1=a2)>forAll(a1,a2/ a1.name=a2.name implies a1=a2)self.nestedPackagesself.nestedPackages-->>forAll(p1,p2 / p1.name = p2.name implies p1=p2)forAll(p1,p2 / p1.name = p2.name implies p1=p2)
context context AssociationEndAssociationEndsource = source = self.otherEnd.targetself.otherEnd.target and target = and target = otherEnd.sourceotherEnd.source
Transformaciones y Transformaciones y metamodelosmetamodelos
““es-instancia-de”es-instancia-de”
RefinamientoRefinamiento
PIM-PSMPIM-PSM
Refinamiento PIM-PIMmetamodeloRefinamiento PIM-PIMmetamodelo
PSM- PSMmetamodelo PSM- PSMmetamodelo
““es-instancia-de”es-instancia-de”PIMPIM
PSMPSM
MetamodeloMetamodelo
PIMPIM
MetamodeloMetamodelo
PSMPSM
HERRAMIENTAS CASE HERRAMIENTAS CASE
CASE-UMLCASE-UMLRational Rose, Argo/UML, Together, UModel,Rational Rose, Argo/UML, Together, UModel,MagicDraw, MetaEdit+, PoseidonMagicDraw, MetaEdit+, Poseidon
CASE-Tiempo Real CASE-Tiempo Real Rapsody, Rational Rose Real Time, RapidRMARapsody, Rational Rose Real Time, RapidRMA
CASE-MDACASE-MDAOptimalJ, AndroMDA, Ameos, Together Architect,OptimalJ, AndroMDA, Ameos, Together Architect,Codagen, ArcStyler, MDE Studio, ObjecteeringCodagen, ArcStyler, MDE Studio, Objecteering
Herramientas CASE-MDAHerramientas CASE-MDA
Unas 120 herramientas CASE se basan en UML Unas 120 herramientas CASE se basan en UML yy
sólo un 10% soporta parcialmente MDA.sólo un 10% soporta parcialmente MDA.
Limitaciones en procesos de:Limitaciones en procesos de: ingeniería directa (forward engineering)ingeniería directa (forward engineering) ingeniería reversa (reverse engineering)ingeniería reversa (reverse engineering) transformaciones (refinamientos, refactoring)transformaciones (refinamientos, refactoring) análisis de consistenciaanálisis de consistencia No proveen asistencia en reenginería de No proveen asistencia en reenginería de
sistemas legacysistemas legacy
MDA y ReingenieríaMDA y Reingeniería
Refactoring
CIM
Relationship
Class
Classifier
AssociationEnd
Target
AdapterAdaptee
TargetAdapter1..*
1
1..*
1
AssocEndAdapter1
1
1
1
AssocEndAdaptee
1
1
1
1
Adapter
1
1..*
1
1..*
0..*1 0..*1
Adaptee
0..*
1
0..*
1
AdapteeAdapter
0..*
1
0..*
1
1
0..*
1
0..*
Association
Generalization
{or}
Class
Generalization
Attribute
Target Adaptee
TargetAdapter
1..*
1
1..*
1
Adaptees
AdapteeAdapter
1
0..*
1
0..*
GetAdaptees
SetAdaptees
Adapter
1
1..*
1
1..*
0..*1 0..*1
0..*
1
0..*
1
11 11
1
1
1
1 Operation
<instance of> PIM <instance of>
Components
Rules
PIM Metamodel PIM Metamodel
PSM
Domain Model
Refactoring
Rules + Strategies
OCL Constraints
Patterns
ISM
DataType (Java_Library)
TypedElement
JavaParameter
Field
Member
isFinalisStatic
Method
isAbstractisNativeisSyncronizedisConstructor
**{ordered}
*
+localAtt
*
Interface+declaringInterface
**
JavaClass
isPublicisAbstractisFinal
**
* +client*
1..*
1
1..*
+javaExceptions
1
0..*
0..1
+declaredClass
0..*
+declaringClass
0..1
+declaringClass
+declaringInterface
Usage
Realization
OpaqueExpression(from Kernel)
Abstraction
0..10..10..10..1
DirectedRelationship(from Kernel)
DependencyNamedElement*1..* *
+supplier
1..*
*1..* *
+client
1..*
PSM Metamodel
Usage
Realization
Substitution Classifier
1*
+contract
1*
*
1
*
1
OpaqueExpression(from Kernel)
Abstraction0..1 0..1
+mapping
0..1 0..1
DependencyNamedElement*
1..**
+supplier
1..*
*1..* *
+client
1..*
OCL Constraints
OCL Constraints
<instance of>
PSM Metamodel
<instance of>
Rules + Strategies
Member
isFinalisStatic
Method
isAbstractisNativeisSyncronizedisConstructor
JavaClass
isPublicisAbstractisFinal
**
* +client*
0..*
0..1
+declaredClass
0..*
+declaringClass
0..1
Interface+declaredInterface
+declaringInterface
**
+declaringClass
+declaredClass
NewClass
ISM Metamodel
OCL Constraints
OCL Constraints
ISM Metamodel
<instance of> <instance of>
Refactoring
Rules + Strategies
OCL Constraints
Components
Rules
Curso: Arquitectura de software Curso: Arquitectura de software dirigida por modelosdirigida por modelos
Los contenidos del curso se centran Los contenidos del curso se centran en: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.
CONTENIDOCONTENIDOPARTE I PARTE I
UML (Unified Modeling Language)UML (Unified Modeling Language) OCL (Object Constraint Language)OCL (Object Constraint Language) MetamodeladoMetamodelado
MOF (Meta Object Facility)MOF (Meta Object Facility) Cómo construir metamodelosCómo construir metamodelos
Semántica de UMLSemántica de UML
CONTENIDOCONTENIDO
PARTE IIPARTE II MDA (Model-Driven Architecture)MDA (Model-Driven Architecture)
CIM, PIM, PSM, ISMCIM, PIM, PSM, ISM Transformaciones de modelos y metamodeladoTransformaciones de modelos y metamodelado Refinamiento y refactoringRefinamiento y refactoring Evolución de software y MDAEvolución de software y MDA
Herramientas CASE basadas en MDAHerramientas CASE basadas en MDA Técnicas para el desarrollo de CASE basadas en Técnicas para el desarrollo de CASE basadas en
UML/MDAUML/MDA Ingeniería directa, ingeniería reversa Ingeniería directa, ingeniería reversa Refactoring, patrones de reinmgeniería wrapping,…Refactoring, patrones de reinmgeniería wrapping,…