• No se han encontrado resultados

Arquitectura de software Arquitectura de software

N/A
N/A
Protected

Academic year: 2023

Share "Arquitectura de software Arquitectura de software "

Copied!
56
0
0

Texto completo

(1)

Arquitectura de software Arquitectura de software

dirigida por modelos dirigida por modelos

(Model-Driven Architecture) (Model-Driven Architecture)

Liliana Favre Liliana Favre

UNCPBA UNCPBA

20062006

(2)

METAMODELADO METAMODELADO

(3)

Bibliografía 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)

(4)

METAMODELOS METAMODELOS

Los lenguajes de programación basados en Los lenguajes de programación basados en texto se describen por gramáticas (BNF).

texto se describen por gramáticas (BNF).

Los lenguajes de modelamiento como UML Los lenguajes de modelamiento como UML tienen, en general, una sintaxis gráfica que tienen, en general, una sintaxis gráfica que

requiere otro tipo de descripción requiere otro tipo de descripción

MetamodeladoMetamodelado

(5)

Modelos, Lenguajes, Metamodelos y Metalenguajes

Un Un metamodelometamodelo es un modelo que define el lenguaje es un modelo que define el lenguaje para expresar un modelo.

para expresar un modelo.

Un Un modelomodelo se expresa en un se expresa en un lenguaje.lenguaje.

Un Un lenguajelenguaje se define por un se define por un metamodelometamodelo..

Un Un metamodelometamodelo se expresa en un se expresa en un metalenguajemetalenguaje..

(6)

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

(7)

Modelos, Lenguajes, Metamodelos y Metalenguajes

Metamodelos basados en Metamodelos basados en

EntidadesEntidades

RelacionesRelaciones

SistemasSistemas

Modelos estáticos UMLModelos estáticos UML

Clases Clases

Asociaciones binarias Asociaciones binarias

Tipos de datos Tipos de datos

Package Package

(8)

Un ejemplo de metamodelo Un ejemplo de metamodelo

UML UML

(9)

Un ejemplo de metamodelo Un ejemplo de metamodelo

UML UML

context Package context Package self.class

self.class --> forAll (e1,e2 /e1.name = e2.name implies e1 = e2)> forAll (e1,e2 /e1.name = e2.name implies e1 = e2) self.association

self.association-->forAll(a1,a2/a1.name=a2.name implies a1=a2)>forAll(a1,a2/a1.name=a2.name implies a1=a2) self.nestedPackages

self.nestedPackages-->>

forAll(p1,p2 /p1.name = p2.name implies p1=p2) forAll(p1,p2 /p1.name = p2.name implies p1=p2) context

context AssociationEndAssociationEnd source =

source = self.otherEnd.targetself.otherEnd.target and target = otherEnd.sourceand target = otherEnd.source

(10)

Ejemplo- Metamodelo SQL Ejemplo- Metamodelo SQL

simplificado

simplificado

(11)

Modelos, Lenguajes, Metamodelos y Metalenguajes

Un metalenguaje es un lenguaje y puede ser Un metalenguaje es un lenguaje y puede ser

definido por un metamodelo definido por un metamodelo Metalenguaje

Metalenguaje Meta-metamodelo Meta-metamodelo

Meta-meta lenguaje Meta-meta- metamodelo Meta-meta lenguaje Meta-meta- metamodelo

……… ………

……… ………...

(meta)

(meta)i i metalenguaje (meta)metalenguaje (meta)ii metamodelo metamodelo El estándar definido por OMG usa 4 niveles

(12)

Arquitectura de 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

(13)

Arquitectura de 4 niveles

Arquitectura de 4 niveles

(14)

Arquitectura de 4 niveles

Arquitectura de 4 niveles

(15)

Arquitectura de 4 niveles

Arquitectura de 4 niveles

(16)

Arquitectura de 4 niveles

Arquitectura de 4 niveles

(17)

Meta Object facility Meta Object facility

(MOF) (MOF)

MOF captura la diversidad de estándares de MOF captura la diversidad de estándares de

modelamiento para integrar diferentes tipos de modelamiento para integrar diferentes tipos de

modelos y metadatos e intercambiarlos entre modelos y metadatos e intercambiarlos entre

diferentes herramientas.

diferentes herramientas.

.

(18)

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.

(19)

MOF

(Meta Object Facility)

Construcciones en MOF Asociaciones

Association-end Multiplicidades Agregación

Agregación asociación Agregación atributo

(20)

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.

(21)

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

(22)

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

(23)

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.

(24)

Arquitectura de 4 niveles y Arquitectura de 4 niveles y

UML 1.x 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.

(25)

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

(26)

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.

(27)

Especificación de UML Especificación de UML

2.0 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.

(28)

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

(29)

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.

(30)

UML 2.0 Superstructure UML 2.0 Superstructure

Package

Package

(31)

El metamodelo de UML El metamodelo de UML

Packages - Estructura

Packages - Estructura

(32)

El metamodelo de UML El metamodelo de UML

Packages - Classes

Packages - Classes

(33)

El metamodelo de UML El metamodelo de UML

Package-Kernel-Root Package-Kernel-Root

Diagram

Diagram

(34)

El metamodelo de UML El metamodelo de UML

Package-Kernel-Root Package-Kernel-Root

Diagram

Diagram

(35)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones

Kernel-Operaciones

(36)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones Kernel-Operaciones

Una operación es un

Una operación es un featurefeature de de comportamiento

comportamiento

que especifica nombre, parámetros y que especifica nombre, parámetros y

constraints constraints

para invocar un comportamiento para invocar un comportamiento

asociado.

asociado.

(37)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones

Kernel-Operaciones

(38)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones

Kernel-Operaciones

(39)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones

Kernel-Operaciones

(40)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones

Kernel-Operaciones

(41)

El metamodelo de UML El metamodelo de UML

Kernel-Operaciones

Kernel-Operaciones

(42)

El metamodelo de UML El metamodelo de UML

Kernel-Diagrama de Kernel-Diagrama de

multiplicidades

multiplicidades

(43)

El metamodelo de UML El metamodelo de UML

Kernel-Diagrama de Kernel-Diagrama de

multiplicidades

multiplicidades

(44)

Metamodelo OCL Metamodelo OCL

Kernel

Kernel

(45)

El metamodelo OCL El metamodelo OCL

Kernel Kernel

Las reglas que especifican si un tipo conforma a Las reglas que especifican si un tipo conforma a otro son especificadas en OCL.

otro son especificadas en OCL.

La operación

La operación conformsTo(c:Classifier):BooleanconformsTo(c:Classifier):Boolean,, evalúa True si self conforam a c.

evalúa True si self conforam a c.

Reglas para tipos individuales Reglas para tipos individuales

(46)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(47)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(48)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(49)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(50)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(51)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(52)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(53)

El metamodelo OCL El metamodelo OCL

Kernel

Kernel

(54)

La relación entre los La relación entre los

metamodelos de UML y OCL metamodelos de UML y OCL

Una expresión OCL en los Una expresión OCL en los

metamodelos metamodelos

referencia a elementos de un modelo referencia a elementos de un modelo

UML.UML.

Los elementos referenciados son Los elementos referenciados son

instancias de instancias de metaclases

metaclases

(55)

La relación entre los La relación entre los

metamodelos de UML y OCL

metamodelos de UML y OCL

(56)

La relación entre los La relación entre los

metamodelos de UML y OCL

metamodelos de UML y OCL

Referencias

Documento similar

Circulan en Europa y América del Norte desde hace varias décadas manuales de histo- ria del arte latinoamericano contemporáneo, cuyos autores se insertan, por método y visión,