Asociaciones

El proceso es similar a la identificación de clases, sólo que en lugar de buscar sustantivos ahora se buscan frases que relacionen a los sustantivos de clases que ya hemos declarado.

Tomando en cuenta que una asociación es una relación entre tipos (o más concretamente instancias de estos tipos) que indique alguna conexión significativa, interesante y útil, ya que ello permitirá mantener nuestro diagrama legible. Son relaciones del tipo «pertenece_a» o «está_a sociado_con».

Cabe mencionar que este proceso ya no es necesario como parte del modelo de casos de uso, dado que las asociaciones y operaciones del sistema serán declaradas en la parte del diseño.

Pero solamente lo ejemplificaremos de una manera sencilla dando seguimiento al sistema de venta de boletos para funciones de varios teatros que ya tenemos.

Es más importante identificar las clases conceptuales que identificar las asociaciones. Entonces, en lugar de iniciar por la descripción del problema o de los documentos de casos de uso, solo se identificarán las frases correspondientes al dominio del problema.

Asociaciones identificadas para relacionar clases de Reservaciones

Una función está_asocia do_con boleto
Una venta está_asociad o_con boleto
Un boleto está_asociado _con una tarifa
Un teatro está_asociado_con asientos
Una reservación está_as ociado_con una función
Una función está_asocia do_con un horario
Un usuario está_asociad o_con reservaciones etc.

Una vez identificadas las asociaciones entre clases, se representa en el diagrama de clases que ya se tenía, marcándolas con una línea directa entre ellas, como se muestra a continuación, nota que no es necesario poner el texto de la asociación.

Diagrama de clases con asociaciones

En problemas más complejos donde el dominio es más difícil de analizar, se pueden realizar listas de asociaciones, clasificándolas como comunes o de alta prioridad.

Las asociaciones comunes contienen una relación de categorías habituales que normalmente merece la pena tomar en cuenta en los siguientes casos: A es una descripción de B, A es una línea de una transacción o importe de B, A es una subunidad organizativa de B.

Y las asociaciones de alta prioridad son aquellas que invariable mente son útiles y necesarias incluirlas en el modelo conceptual, como los siguiente s casos: A es una parte lógica o física de B, A está contenida física o lógicamente en B, A se registra en B.

Los nombres de las asociaciones deberán tener el formato: nombre tipo- frase verbal, donde la frase verbal crea una secuencia legible con significado en el contexto real; y deberá n tener una Dirección, normalmente es de derecha a izquierda o de arriba abajo.

A continuación se debe definir cuántas instancias de una clase A pueden asociarse con una instancia de un a clase B, llamada Multiplicidad de la relación; Indicando el número de instancias de una clase asociada a otra, considerando que existen tres tipos de multiplicidad de la relación: uno a uno, uno a muchos o muchos a muchos y que deberá representarse con la siguiente notación, según UML:

Representación de la Multiplicidad en Clases

Relaciones entre clases: dependencia, asociación y agregación

El enfoque de objetos permite tres tipos de relaciones entre elementos, todas ellas representadas en el diagrama de clases.

Relación de dependencia, o de uso, se da cuando los objetos de una clase utilizan los objetos de la segunda como argumento en alguna operación, o sus propios objetos utilizan alguna de las operaciones de la otra clase.

En UML está relación se representa con una flecha discontinua del elemento dependiente A hacia el elemento independiente B es decir, del que usa hacia el usado.

Relación de dependencia o uso UML

Relación de asociación se da cuando los objetos de una clase contienen atributos que son objetos de la segunda clase. Esta relación permite “navegar” de los objetos que contienen a los objetos contenidos y se puede presentar en dos modalidades: unidireccional y bidireccional. En la primera, al menos un atributo de los objetos de una clase pertenece a otra clase y en la segunda, los objetos de cada clase contienen al menos un atributo perteneciente a la otra clase.

Estas asociaciones se representan en UML con una flecha continua de la clase que contiene a la clase cuyos objetos son contenidos en el caso de la direccional, y en la bidireccional con una línea continua entre las clases asociadas.

Relación de asociación UML

Relación de Agregación:se da cuando hay una relación “todo/parte” entre los objetos de las dos clases. En UML se representa utilizando una línea continua y un rombo en el lado del todo para representar una relación de agregación.

Relación de Agregación UML

Fuente: Apuntes de Informática V de la FCA de la UNAM