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,…