Вы находитесь на странице: 1из 56

Arquitectura de software

dirigida por modelos


(Model-Driven Architecture)
Liliana Favre
UNCPBA
2006
METAMODELADO
Bibliografía
Las gráficas y especificaciones fueron extraídas de la siguiente
bibliografía:
1. MDA: The Model Driven Architecture www.omg.org/mda, 2006
MOF: Meta Object facility (MOF ™) 1.4. formal/2002-04-03
www.omg-org/mof
2. OCL: OCL Specification. Version 2.0. Formal document: ptc/03-10-14
www.omg.org
3. UML: UML 2.0 Superstructure Specification. OMG formal/05-07-04
www.omg.org
4. UML: UML 2.0 Infrastructure Specification. OMG formal/05-07-04
www.omg.org
5. Warmer, J., Kleppe, A. The Object-Constraint Language. (Second
Edition). Addison Wesley (2003)
6. Warmer, J., Kleppe,A., Bast, W. MDA Explained: The Model Driven
Architecture™: Practice and Promise Addison Wesley (2003)
METAMODELOS
 Los lenguajes de programación basados en
texto se describen por gramáticas (BNF).
 Los lenguajes de modelamiento como UML
tienen, en general, una sintaxis gráfica que
requiere otro tipo de descripción

Metamodelado
Modelos, Lenguajes, Metamodelos y
Metalenguajes
Un metamodelo es un modelo que define el lenguaje
para expresar un modelo.

Un modelo se expresa en un lenguaje.

Un lenguaje se define por un metamodelo.

Un metamodelo se expresa en un metalenguaje.

¿BNF es un metalenguaje?
Modelos, Lenguajes, Metamodelos y
Metalenguajes
El metamodelo de un lenguaje es una descripción de
todos los conceptos que pueden usarse en el mismo.
Por ejemplo,
 los conceptos de package, clase , atributo y operaciones
aparecen en UML;
 los conceptos de métodos, constructores e interfaces en JAVA;
 los conceptos de tabla, columna, clave son parte de SQL
Cada elemento de un modelo es una instancia de una metaclase
en el metamodelo.
Una clase define a sus objetos y una metaclase define a los
elementos del modelo
Modelos, Lenguajes, Metamodelos y
Metalenguajes
Metamodelos basados en
 Entidades
 Relaciones
 Sistemas

 Modelos estáticos UML


Clases
Asociaciones binarias
Tipos de datos
Package

 Especificaciones OCL
Un ejemplo de metamodelo UML
Un ejemplo de metamodelo UML

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
Ejemplo- Metamodelo SQL
simplificado
Modelos, Lenguajes, Metamodelos y
Metalenguajes
Un metalenguaje es un lenguaje y puede ser
definido por un metamodelo
Metalenguaje Meta-metamodelo
Meta-meta lenguaje Meta-meta- metamodelo
…………………… …………………….......
(meta)i metalenguaje (meta)i metamodelo

El estándar definido por OMG usa 4 niveles


Arquitectura de 4 niveles
OMG usa una arquitectura de 4 niveles para sus
estándares:

MO: Modelo de instancias


M1: Modelo del sistema
M2: Metamodelo
M3: Meta-metamodelo
Arquitectura de 4 niveles
Arquitectura de 4 niveles
Arquitectura de 4 niveles
Arquitectura de 4 niveles
Meta Object facility (MOF)
MOF captura la diversidad de estándares de
modelamiento para integrar diferentes tipos de
modelos y metadatos e intercambiarlos entre
diferentes herramientas.
.
MOF

MOF usa un framework de modelamiento que es


un subconjunto del núcleo de UML. Los 4
construcciones de modelamiento son:

 Clases, que modelan metaobjetos MOF.


 Asociaciones que modelan relaciones binarias entre
metaobjetos.
 Tipos de datos, que modelan otros datos (por ejemplo
tipos primitivos, tipos externos, etc).
 Packages, que modularizan los modelos.
MOF
(Meta Object Facility)
Construcciones en MOF
Asociaciones
Association-end
Multiplicidades
Agregación
Agregación asociación
Agregación atributo
MOF
(Meta Object Facility)
MOF soporta dos tipos de agregaciones:
Non-aggregate
 No impone restricciones sobre las

multiplicidades de las relaciones.


 No impone restriccciones sobre el origen de las

instancias en la relación.
 La relación no impacta sobre el ciclo de vida

de las instancias.
MOF
(Meta Object Facility)
Composite
 Es asimétrica, identifica a un “todo” y sus “partes”.
 Una instancia no puede ser componente de más de un
“composite” a la vez.
 Una instancia no puede ser componente de sí misma, sus
componentes, las componentes de sus componentes.
 Cuando un “composite” es eliminado, todos sus componentes
y las componentes de sus componentes son también
eliminadas.
 El “composite” y las partes, junto con los links que forman la
composición, deben pertenecer al mismo package más externo
MOF
(Meta Object Facility)
Construcciones en MOF
Tipos de datos
Tipos primitivos
Tipos constructores
Packages
Generalización de packages
Anidamiento de packages
Importación de packages
Clustering
MOF
(Meta Object Facility)
Constraints y consistencia
El modelo MOF define un elemento llamado
Constraint que puede ser usado para adjuntar
reglas de consistencia a componentes del
Metamodelo.
En MOF son expresados en OCL.
Arquitectura de 4 niveles y UML 1.x

El metamodelo UML 1.x era compatible pero no


se alineaba estrictamente a la arquitectura de 4
niveles en la que cada metamodelo es una
instancia de un meta-metamodelo.
UML 2.0 está alineado con MOF, es una
instancia de MOF. El núcleo de UML y de MOF
comparten los elementos de metamodelado.
Especificación de UML 2.0
La especificación de UML 2.0 está organizada en
dos documentos:
UML 2.0 Infrastructure
Define las construcciones de lenguaje fundacionales
requeridas por UML 2.0. Es un núcleo de metalenguaje
que puede ser reusado para definir otros metamodelos y
mecanismos de extensión para UML
UML 2.0 Superstructure
Complementa a UML 2.0 Infrastructure. Define construcciones a
nivel de usuario requeridas por UML 2.0
Especificación de UML 2.0
La infraestructura de UML se define en
Infrastructure Library:
 Define un núcleo de metalenguaje que puede ser
reusado para definir variedad de metamodelos, como
MOF, UML, CWM.
Especificación de UML 2.0
 Alinea arquitecturalmente a UML, MOF y
XMI
 Permite la creación de dialectos a través de
profiles y de nuevos lenguajes(familias de
lenguajes) basados en el núcleo del
metalenguaje.
UML 2.0 Infrastructure
Core Package
Core Package
Es un metamodelo completo diseñado para lograr alta
reusabilidad, donde otros metamodelos en el mismo
nivel importan o especializan sus metaclases
UML 2.0 Superstructure
La superestructura de UML está especificada en
el package PACKAGE que está dividido en un
número de packages que especifican modelos
estructurales y de comportamiento.
UML 2.0 Superstructure
Package
El metamodelo de UML
Packages - Estructura
El metamodelo de UML
Packages - Classes
El metamodelo de UML
Package-Kernel-Root Diagram
El metamodelo de UML
Package-Kernel-Root Diagram
El metamodelo de UML
Kernel-Operaciones
El metamodelo de UML
Kernel-Operaciones

Una operación es un feature de comportamiento


que especifica nombre, parámetros y constraints
para invocar un comportamiento asociado.
El metamodelo de UML
Kernel-Operaciones
El metamodelo de UML
Kernel-Operaciones
El metamodelo de UML
Kernel-Operaciones
El metamodelo de UML
Kernel-Operaciones
El metamodelo de UML
Kernel-Operaciones
El metamodelo de UML
Kernel-Diagrama de multiplicidades
El metamodelo de UML
Kernel-Diagrama de multiplicidades
Metamodelo OCL
Kernel
El metamodelo OCL
Kernel
Las reglas que especifican si un tipo conforma a
otro son especificadas en OCL.
La operación conformsTo(c:Classifier):Boolean,
evalúa True si self conforam a c.
Reglas para tipos individuales
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
El metamodelo OCL
Kernel
La relación entre los metamodelos de
UML y OCL
Una expresión OCL en los metamodelos
referencia a elementos de un modelo UML.
Los elementos referenciados son instancias de
metaclases
La relación entre los metamodelos de
UML y OCL
La relación entre los metamodelos de
UML y OCL

Вам также может понравиться