• No se han encontrado resultados

X Figura 2.10: Diagramas de secuencia

3. La M&D-theory

3.1. Introducción

En este capítulo se presenta una descripción resumida de la M&D-theory que define formalmente la semántica de UML. Dicha teoría fue desarrollada por Claudia Pons en su tesis doctoral [Pons 00]. La idea básica de esta formalización consiste en utilizar un dominio semántico que integra los dos niveles inferiores de la arquitectura de las notaciones de modelado, es decir el nivel del modelo y el nivel de los datos, permitiendo de esta manera representar los aspectos estáticos y dinámicos tanto del modelo como del sistema modelado dentro de un marco formal de primer orden.

3.1.1. Dicotomía de entidades

Las entidades descriptas por la M&D-theory se clasifican en dos conjuntos disjuntos: • Entidades de modelado

• Entidades modeladas

Esta dicotomía puede observarse en la figura 3.1. Las entidades de modelado se corresponden con construcciones sintácticas correctas del lenguaje UML, tales como clases (Class), máquinas de estados (StateMachine), etc. En contraste, las entidades modeladas, tales como objetos (Object) ó conexiones (Link) representan los datos del sistema modelado.

Estas entidades se relacionan de distintas formas:

Entre entidades de modelado. Por ejemplo las clases están relacionadas con las máquinas de

estado a través de la relación rotulada con el nombre behavior. Esto indica que las máquinas de estado se utilizan para definir el comportamiento de las instancias de cada clase. Otro ejemplo puede observarse en la relación entre máquina de estados y estados (State), la cual indica que una máquina de estados está compuesta por un conjunto de estados.

Entre entidades modeladas. Por ejemplo, la relación rotulada con el nombre slot entre Object y

AttributeLink, indica que un objeto se relaciona con los valores de sus atributos.

Entidades de modelado con entidades modeladas. Existe una relación muy especial entre algunas

entidades modeladas y su correspondiente entidad de modelado. Esta relación representa ‘instanciación’, como por ejemplo los objetos son instancias de una Clase, mientras que las conexiones son instancias de una asociación (Association).

3.1.2. Relaciones de instanciación

La M&D-theory provee dos clases diferentes de relación de instanciación:

Instanciación intra-nivel: es la relación entre una entidad modelada y la entidad principal que la

modela. En la figura 3.2 las flechas llenas que conectan entidades entre diagramas alineados horizontalmente representan algunas instanciaciones intra-nivel. Por ejemplo, Object es instancia de Class, Link es instancia de Association.

Instanciación inter-nivel: es la relación de instanciación provista por el metalenguaje (Dynamic

Logic en este caso). En la figura 3.2 las flechas punteadas que conectan diagramas alineados verticalmente representan algunas instanciaciones inter-nivel. Por ejemplo, BankAccount es instancia de Class, holder es instancia de Association, C1 es instancia de Object, S2 es instancia de Object.

3.1.3. Ventajas de la integración

En la descripción de un lenguaje existen dimensiones ortogonales a la sintaxis y la semántica, son los aspectos estáticos y los aspectos dinámicos. La diferenciación entre semántica estática y semántica dinámica es ampliamente conocida y aceptada. Mientras que la primera caracteriza propiedades estáticas (invariantes en el tiempo) de las interpretaciones del lenguaje, la segunda describe la evolución o comportamiento de dichas interpretaciones.

La integración de entidades de modelado y entidades modeladas dentro de la misma teoría permite representar los aspectos estáticos y dinámicos tanto del modelo como del sistema modelado dentro de

un marco formal de primer orden. La siguiente tabla esquematiza el tratamiento que esta propuesta proporciona a cada una de las cuatro dimensiones:

Modelo Sistema modelado

Aspectos estáticos Axiomas de primer orden

sobre entidades de modelado Axiomas de primer orden sobre entidades modeladas Aspectos dinámicos Acciones y axiomas modales

sobre entidades de modelado. Acciones y axiomas modales sobre entidades modeladas Contar con una estructura formal de primer orden, en contraste con una estructura de orden superior, facilita los procedimientos para calcular la validez de las fórmulas. A pesar de que la lógica de primer orden es no-decidible (y por lo tanto también lo es la lógica dinámica de primer orden), los sistemas de computación satisfacen ciertas propiedades (por ejemplo, se interpretan sobre estructuras aritméticas, el estado de un programa en un momento dado queda determinado por un conjunto finito de valores) las cuales permiten calcular la validez de las fórmulas dinámicas en forma efectiva.

3.1.4. Organización del capítulo

Este capítulo está organizado de la siguiente manera: en la sección 3.2 se describe la formalización (ΣUML, φUML) de las entidades de modelado. En la sección 3.3 se presenta la

formalización (ΣSYS, φSYS) de las entidades modeladas. La sección 3.4 contiene consideraciones acerca

de la integración de ambos niveles. Luego, en la sección 3.5 se describe la función de interpretación que asocia las construcciones de UML con los elementos en el dominio semántico. Por último, la sección 3.6 contiene las principales conclusiones.

3.2. Nivel de los Modelos

3.2.1. Elementos

En el lenguaje UML, los diagramas de clases modelan los aspectos estructurales del sistema. Estos diagramas incluyen gráficos para representar clases y relaciones entre ellas, tales como generalizaciones (Generalization), agregaciones y asociaciones. Por otra parte, la parte dinámica del sistema es modelada mediante diagramas de colaboración y máquinas de estados, los cuales describen el comportamiento de un grupo de instancias en términos de envíos de mensajes y el dinamismo interno de los objetos en términos de transiciones entre estados respectivamente.

Las relaciones existentes entre los diferentes diagramas deben ser definidas formalmente con el objetivo de asegurar la consistencia del modelo. Además es necesario especificar las formas en que estos diagramas pueden evolucionar, mostrando el impacto que una modificación realizada sobre un diagrama produce sobre los restantes diagramas que constituyen el modelo del sistema.

3.2.2. Evolución

La especificación de un sistema puede evolucionar por diversas razones, a lo largo de su ciclo de vida. Una de las formas más comunes de evolución es la que involucra cambios estructurales: agregar nuevas clases de objetos, agregar o eliminar atributos de clases existentes, modificar la jerarquía de herencia, etc. Existen también formas de evolución que no sólo modifican la estructura del sistema, sino que lo hacen con el comportamiento especificado para los objetos. Los cambios de comportamiento se reflejan en las modificaciones realizadas sobre diagramas de comportamiento.

En la teoría formal, las distintas formas de evolución en el nivel de los modelos serán denominadas ModelEvolutions.

3.2.3. Estructura de la Teoría

La M&D-theory está organizada en paquetes, siguiendo intencionalmente la estructura del metamodelo de UML. Esta división en paquetes (Packages) permite dominar la complejidad de la teoría. Gran parte de la información contenida en cada paquete puede ser comprendida y analizada independientemente. Sin embargo es necesario prestar atención a las relaciones existentes entre los diferentes paquetes. La figura 2.3 muestra los paquetes de mas alto nivel en los cuales la teoría se encuentra dividida. Sus nombres son: Foundation, BehavioralElements y ModelManagement. La descripción de cada paquete está integrada por las siguientes secciones:

Sintaxis Abstracta. La sintaxis abstracta es representada mediante diagramas UML mostrando las metaclases y sus relaciones contenidas en el paquete. Estos diagramas muestran además algunas reglas de buena formación, tales como requerimientos de multiplicidad.

Descripción Informal. Presenta una breve descripción informal, utilizando lenguaje natural. Para cada metaclase se enumeran sus atributos y asociaciones con una breve explicación de su significado.

Especificación en Lógica Dinámica. Especificación formal de las metaclases usando un lenguaje formal basado en Dynamic Logic (DL). Esta especificación consta de una signatura ∑UML=

((SUML,≤), FUML, PUML, AUML) y una fórmula φUML sobre ΣUML. Los elementos del álgebra inicial

denotada por la especificación son elementos de modelado, tales como clases, asociaciones y máquinas de estados. La relación de transición entre posibles mundos representa modificaciones sobre la especificación del sistema, por ejemplo el agregado de una nueva clase, la modificación de una clase existente, etc. La fórmula φUML es la unión de dos conjuntos disjuntos de fórmulas; φS

y φD, estáticas y dinámicas respectivamente. El primer conjunto consiste en fórmulas no modales

que deben satisfacerse en todos los estados posibles del sistema (son invariantes o propiedades estáticas, o reglas de buena formación de los modelos), y se usan para realizar análisis de la estructura del sistema y reportar posibles errores en su diseño. Mientras que el segundo conjunto consiste en fórmulas modales que definen la semántica de las acciones, es decir de la evolución de los modelos. Behavioral Elements Foundation Model Management

3.2.4. Paquete Foundation

El paquete Foundation define la infraestructura de UML. Se descompone en dos subpaquetes: Core y UML_Data Types (figura 3.4). El paquete UML_Data Types define los tipos de datos básicos de la teoría, tales como Boolean, Integer, etc. El paquete Core especifica los principales elementos para modelar la estructura de un sistema, tales como Class, DataType, Generalization, Association, Attribute, Operation, etc.

Core

UML_Data Types

Figura 3.4: Paquete Foundation

3.2.4.1. Paquete Foundation: UML_Data Types