logo

Asociación UML versus agregación versus composición

En los diagramas UML, las relaciones se utilizan para vincular varias cosas. Es una conexión entre cosas estructurales, de comportamiento o de agrupación. A continuación se detallan las relaciones UML estándar que se enumeran a continuación:

  • Asociación
  • Dependencia
  • Generalización
  • Realización

Asociación

La relación de asociación es una relación estructural en la que diferentes objetos están vinculados dentro del sistema. Exhibe una relación binaria entre los objetos que representan una actividad. Representa la relación entre objetos, como un maestro, que puede asociarse con varios maestros.

Se representa por una línea entre las clases seguida de una flecha que navega en la dirección, y cuando la flecha está en ambos lados, entonces se llama asociación bidireccional. Podemos especificar la multiplicidad de una asociación agregando los adornos en la línea que denotará la asociación.

Ejemplo:

1) Un solo profesor tiene varios alumnos.

comando táctil en linux
Asociación UML versus agregación versus composición

2) Un solo estudiante puede asociarse con muchos profesores.

Asociación UML versus agregación versus composición

La composición y la agregación son dos subconjuntos de asociación. En ambos casos, el objeto de una clase es propiedad del objeto de otra clase; la única diferencia es que en la composición, el niño no existe independientemente de su padre, mientras que en la agregación, el niño no depende de su padre, es decir, es independiente. Una agregación es una forma especial de asociación y la composición es la forma especial de agregación.

Asociación UML versus agregación versus composición

Agregación

La agregación es un subconjunto de asociación, es una colección de cosas diferentes. Representa tiene una relación. Es más específico que una asociación. Describe una relación parte-todo o parte de. Es una asociación binaria, es decir, sólo involucra dos clases. Es un tipo de relación en la que el niño es independiente de sus padres.

Por ejemplo:

Aquí estamos considerando un ejemplo de automóvil y rueda. Un coche no puede moverse sin una rueda. Pero la rueda se puede utilizar de forma independiente con la bicicleta, scooter, bicicleta o cualquier otro vehículo. El objeto rueda puede existir sin el objeto automóvil, lo que resulta ser una relación de agregación.

Asociación UML versus agregación versus composición

Composición

La composición es parte de la agregación y retrata la relación todo-parte. Representa la dependencia entre un compuesto (padre) y sus partes (hijos), lo que significa que si el compuesto se descarta, también se eliminarán sus partes. Existe entre objetos similares.

Como puede ver en el ejemplo que se muestra a continuación, la relación de asociación de composición conecta la clase Persona con la clase Cerebro, la clase Corazón y la clase Piernas. Si la persona es destruida, el cerebro, el corazón y las piernas también serán descartados.

Asociación UML versus agregación versus composición

Asociación versus agregación versus composición

Asociación Agregación Composición
La relación de asociación se representa mediante una flecha. La relación de agregación está representada por una línea recta con un diamante vacío en un extremo. La relación de composición está representada por una línea recta con un diamante negro en un extremo.
En UML, puede existir entre dos o más clases. Es parte de la relación de asociación. Es parte de la relación de agregación.
Incorpora asociación uno a uno, uno a muchos, muchos a uno y muchos a muchos entre las clases. Exhibe una especie de relación débil. Muestra un fuerte tipo de relación.
Puede asociar uno más objetos juntos. En una relación de agregación, los objetos asociados existen de forma independiente dentro del alcance del sistema. En una relación de composición, los objetos asociados no pueden existir de forma independiente dentro del alcance del sistema.
En esto, los objetos están unidos entre sí. En este caso, los objetos vinculados son independientes entre sí. Aquí los objetos vinculados dependen unos de otros.
Puede afectar o no al otro elemento asociado si se elimina un elemento. Eliminar un elemento en la relación de agregación no afecta a otros elementos asociados. Afecta al otro elemento si se elimina uno de sus elementos asociados.
Ejemplo: un tutor puede asociarse con varios estudiantes o un estudiante puede asociarse con varios profesores. Ejemplo: Un automóvil necesita una rueda para su correcto funcionamiento, pero es posible que no requiera la misma rueda. También puede funcionar con otra rueda. Ejemplo: si un archivo se coloca en una carpeta y esa carpeta se elimina. El archivo que reside dentro de esa carpeta también se eliminará en el momento de eliminar la carpeta.