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.
Dentro de una asociación, además se establecen roles para cada una de las clases.
Es posible establecer que la asociación fluya de forma inversa, es decir que el equipo emplea al jugador.
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.
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.
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:
- 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.
- 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.
- 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
Referencias
[1] Aprendiendo UML en 24 Horas. Joseph Schmuller.