Cuando las clases se conectan de forma conceptual, se le llama Asociación.[1]

A diferencia de las anteriores relaciones está no concibe una frase identificadora sino que surge de la propia relación, con un verbo que lo identifique.

jugador-equipo
Verbo que asocia una relación

Dentro de una asociación, además se establecen roles para cada una de las clases.

jugador-equipo-roles
Roles de las clases en la asociación

Es posible establecer que la asociación fluya de forma inversa, es decir que el equipo emplea al jugador.

jugador-equipo-bidireccion
Bidireccionalidad de la asociación

Asociación Reflexiva

Existen casos en los que una clase se puede relacionar consigo misma, y ocurre cuando la clase puede fungir con diferentes roles. Esto se conoce como asociación reflexiva.

asociacion_reflexiva
Asociación reflexiva

Clases de Asociación

A menudo, nos encontramos con asociaciones que necesitan atributos y métodos específicos, para manejar de forma idónea dicha relación.

jugador-equipo-clase-asoc
Clase Asociativa

En el caso anterior, la nueva clase Contrato contiene atributos y métodos específicos de la relación entre el jugador y el equipo.

Diferencias entre Asociación y Agregación

Es posible que pueda presentarse dudas al determinar si entre dos clases existe una asociación o una agregación.

Para dilucidar estas situaciones es necesario verificar lo siguiente:

  1. Determinar los orígenes de cada tipo de relación. La agregación determina relaciones de todo y parte, por lo cual siempre tendremos elementos que son ingredientes o partículas de otro.
  2. Por lo general, las relaciones de asociación permiten el conocimiento de ambas clases, es decir, que dentro de los atributos de una clase estará la otra y viceversa. En tanto, la agregación solamente permite que el todo conozca sus partículas y no al revés.
  3. En la cardinalidad de una asociación puede ser variada, sin embargo en la agregación se tiene una cardinalidad de uno a muchos.

Ejemplo

Asociación

Referencias

[1] Aprendiendo UML en 24 Horas. Joseph Schmuller.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *