Arquitectura de software dirigida por modelos
Download
Report
Transcript Arquitectura de software dirigida por modelos
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
(Meta Object Facility)
Metamodelos
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
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,…