Metamodelo UML

Embed Size (px)

Citation preview

Folie 1

01.04.16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

01/04/16

Using UML, Patterns, and Java

Object-Oriented Software Engineering

01/04/16

mtkinley_sketch.tiff 0012F214Macintosh HD B7C803F1:Captulo 2,
Modelando con UML,
Parte 4
Metamodelo UML 2

Resumen de la Sesin

De instancias de modelos a metamodelos

Jerarqua del metamodelo MOF

Cmo se relacionan UML y MOF

Ejemplo: Metamodelo del diagrama de caso de uso

Ejemplo: Metamodelo del diagrama de clases

Diferentes notaciones del metamodelo UML describen el mismo lenguaje

Perfiles UML (UML Profiles): Agregando nuevos miembros a la familia

Object model: What is the structure of the system? What are the objects and how are they related?Functional model: What are the functions of the system? How is data flowing through the system?Dynamic model: How does the system react to external events? How is the event flow in the system ?

De Instancias de Modelos a Metamodelos

Relacin cannica modelo-instancia:

aPerson es una instancia de la clase Person.

As que la clase Person es un modelo para aPerson.

Podemos generalizar esta relacin?

Cul es el modelo para la clase Person?

instances1.emf

De Instancias de Modelos a Metamodelos

Relacin cannica modelo-instancia:

La instancia aPerson y la clase Person estn en diferentes niveles de abstraccin

La clase Person especifica rasgos que caracterizan la estructura y comportamiento de las personas

El modelo para la clase Person debe caracterizar la estructura y comportamiento de las clases

instances1.emf

instances2.emfDe Instancias de Modelos a Metamodelos

Relacin entre modelo y metamodelo:

La metaclase Class es un modelo para la clase Person

Dado que Person es un modelo (para la instancia aPerson), Class es un metamodelo (un modelo de modelos)

instances1.emfNote for instructors: Do not change this slide. The blue box is out of the viewing area, but when animated it will appear correctly.

De Instancias de Modelos a Metamodelos

Al principio puede ser confuso, as que:

Pensemos acerca de los diferentes niveles de abstraccin:Las instancias son concretas

Los modelos son descripciones abstractas de las instancias

Los metamodelos son una descripcin abstracta de los modelos

(no abstraction)

Metamodelos

Para qu los necesitamos?

Los metamodelos se pueden utilizar, por ejemplo, para la formalizacin de las notaciones UML:Como UML es un Lenguaje, los metamodelos se usan para describir su gramtica

El metamodelo UML describe todos los modelos que se pueden crear usando UML

El metamodelo permite hablar acerca de la semntica

Metamodelos

Est bien, los metamodelos son buenos, pero cmo se crea un metamodelo?

Para abordar este problema, primero revisaremos la historia del metamodelo de UML

La historia del Metamodelo de UML

UML 1.0 tuvo muchos problemas semnticos

OMG trat de lidiar con esos problemas formalizando el lenguaje

Idea: Usar metamodelado!

OMG se dio cuenta que todo lo que se necesitaba para describir metamodelos era usar un subconjunto de los elementos del diagrama de clases UML

Idea: Para describir cualquier metamodelo, puede emplearse la propia notacin de los diagramas de clase UML!

In practice there exist different meta models

Meta Object Facility (MOF)

En UML 2, OMG introdujo MOF para crear un enfoque comn al metamodelado

Un metamodelo definido usando MOF se dice que cumple con MOF.

Ventajas de los Metamodelos que cumplen con MOF

Pueden compararse fcilmente

Los modelos que cumplen con MOF pueden intercambiarse de forma estandarizada

Intercambio de metadatos XML

Las instancias que cumplen con MOF pueden vivir en un mismo repositorio de metadatos (data warehousing)

Meta Object Facility (MOF)

Hemos visto el uso de la secuencia de modelado

instancia modelo metamodelo meta-metamodelo

Esta secuencia puede continuarse indefinidamente, pero cuatro modelos son suficientes para la mayora de los propsitos de modelado.

MOF define una jerarqua de metamodelado de cuatro capas

Capa M3: Capa de meta-metamodelado (El modelo MOF)

Capa M2: Capa de metamodelado (El meta modelo UML)

Capa M1: Capa de modelado (El modelo UML)

Capa M0: Capa de informacin (La Aplicacin)

MOF y UML estn alineados

La infraestructura UML contiene todos los conceptos necesarios para la especificacin de UML y MOF.

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpg

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpg

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpgCapa M2: meta modelo UML

Modela el lenguaje UML, i.e., define conceptos como clases, atributos, asociaciones

La capa M2 contiene descripciones de elementos que pueden usarse para describir los modelos de la capa de modelo

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpg

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpgCapa M1: modelo UMLAl usar cualquier diagrama UML, instanciamos el metamodelo UML y obtenemos un modelo UML La capa M1 contiene modelos especficos para cada aplicacin

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpg

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpgCapa M0: Instancias a tiempo de ejecucin

Instancias reales de los modelos

La capa M0 contiene instancias concretas a tiempo de ejecucin

Note la diferencia entre especificacin de instancia e instancia real!

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpg

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpgCapa M3: modelo MOF

El metamodelo UML es una instancia de un modelo an ms abstracto, llamado el modelo MOF

M3 : M2 M2 : M1

La capa M3 contiene meta-metamodelos

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpg

Jerarqua del Metamodelo de MOF
(especfico para UML)

MOF1.jpgRecuerde que UML slo es una posibilidad de modelar con MOF

Observamos una jerarqua especfica de UML

MOF describe metamodelos en general

Dnde estamos?

De instancias de modelos a metamodelos

Jerarqua del metamodelo MOF

Cmo se relaciona UML con MOF

Ejemplo: Metamodelo del diagrama de caso de uso

Ejemplo: Metamodelo del diagrama de clases

Diferentes notaciones para el metamodelo UML describen el mismo lenguaje

Perfiles UML: Agregar nuevos miembros a la familia

Object model: What is the structure of the system? What are the objects and how are they related?Functional model: What are the functions of the system? How is data flowing through the system?Dynamic model: How does the system react to external events? How is the event flow in the system ?

Cmo se relaciona UML con MOF

UML cumple con MOF:

El metamodelo de UML es una instancia del modelo MOF

Veamos el metamodelo de UML en accin!

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Caso de Uso (simplificado)

*

*

*

1

*

1

1

1

*

*

1

*

*

1..*

0..1

0..1

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf

0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf

0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf

0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf0..1

*

0..1

*

0..1

*

0..1

2..*

Metamodelo del Diagrama de Clases (simplificado)

Metamodel_ClassDiagram.pdf

0..1

*

0..1

*

0..1

*

0..1

2..*

Notaciones para el Metamodelo UML

El metamodelo UML define un lenguaje para especificar modelos UML

La notacin usada para diagramar modelos UML proporciona constructos grficos para representar instancias de los elementos del metamodelo

(La figura sticky man representa a un Actor)

La notacin es una funcin que transforma los elementos del metamodelo en elementos del modelo

(uml-notation(Actor) = )

Perfiles UML

Consisten en estereotipos, valores etiquetados y restricciones

Personalizan los modelos UML para plataformas y dominios particulares

Se le aplican a los elementos del metamodelo UML (M2)!

Los desarrollan fabricantes u organizaciones de estandarizacin (CORBA, .NET)

Aplicando los perfiles UML

Al aplicar un perfil UML, nosotros

Aplicamos estereotipos a metaclases

Obtenemos una comprensin ms profunda del modelo

Reducimos la cantidad de modelos vlidos (vase la siguiente diapositiva).

Perfiles UML

Todos los modelos (MOF)

Modelos UML

Modelos
CORBA(perfil)

Modelos
SysML

Modelos
.NET(perfil)

Lecturas Adicionales

La especificacin MOF actual

http://www.omg.org/technology/documents/modeling_spec_catalog.htm#MOF

RSS Feed:

feed://www.omg.org/mof/rss/index.xml