Diferencia entre agregación y composición en UML

Diferencia clave entre agregación y composición

  • La agregación es un tipo de asociación entre dos objetos que describe la relación "tener un", mientras que la Composición es un tipo específico de Agregación que implica propiedad.
  • La agregación se indica mediante una línea recta con una punta de flecha vacía en un extremo. Por otro lado, la composición se indica mediante una línea recta con una punta de flecha rellena en cualquiera de sus extremos.
  • En una relación de agregación, los objetos que están asociados entre sí pueden permanecer en el alcance de un sistema sin los demás. Pero en una relación de composición, los objetos que están asociados entre sí no pueden permanecer en el ámbito uno sin el otro.
  • En Agregación, los objetos vinculados no dependen del otro objeto, mientras que en la composición, los objetos dependen en gran medida unos de otros.
  • En Agregación, eliminar un solo elemento no afecta a otro elemento asociado. Por el contrario, en composición, eliminar un solo elemento afecta a otro elemento asociado.
  • La agregación se indica mediante un diamante lleno, mientras que un diamante vacío indica composición.
Diferencia entre agregación y composición
Diferencia entre agregación y composición

¿Qué es la agregación?

La agregación es un caso especial de asociación cuando un objeto "tiene" otro objeto, y se puede tener una agregación entre ellos. La dirección entre ellos le ayuda a especificar qué objeto contiene el otro objeto. La agregación también se conoce como relación "Tiene-a". Es un subtipo de relación de asociación en UML.

¿Qué es la composición?

La composición es un caso especial de Agregación que le ayuda a especificar una relación de parte completa entre la clase de composición y una clase subordinada (parte).

Diferencia entre agregación y composición en UML

Aquí está la principal diferencia entre agregación y composición:

Agregación Composición
La agregación es un tipo de asociación entre dos objetos que también describe la relación "tener un". La composición es un tipo específico de Agregación que implica propiedad.
La agregación se indica mediante una línea recta con una punta de flecha vacía en un extremo. La composición se indica mediante una línea recta con una punta de flecha rellena en cualquiera de sus extremos.
La agregación es parte de una relación de asociación. La composición es parte de una relación de asociación.
La agregación se considera un tipo débil de asociación. La composición se considera como un tipo fuerte de asociación.
En una relación de agregación, los objetos que están asociados entre sí pueden permanecer en el alcance de un sistema sin los demás. En una relación de composición, los objetos que están asociados entre sí no pueden permanecer en el ámbito unos sin otros.
En Agregación, los objetos vinculados no dependen del otro objeto. En la composición, los objetos dependen en gran medida unos de otros.
En Agregación, eliminar un solo elemento no afecta a otro elemento asociado. En composición, eliminar un único elemento afecta a otro elemento asociado.
Ejemplo: un automóvil necesita una rueda, pero no siempre requiere la misma rueda. Un coche también puede funcionar adecuadamente con otra rueda. Ejemplo: se coloca un archivo dentro de la carpeta. Si se elimina la carpeta, también se elimina el archivo asociado con esa carpeta determinada.
En agregación, padre
relación con la entidad hija.
En composición, la entidad matriz es propietaria de la entidad hija.
Se indica con un diamante relleno. Se indica con un diamante vacío.
El niño no tiene vida. El niño puede tener toda la vida.
Está representado por un rombo hueco al lado de la clase de ensamblaje. Está representado por un diamante sólido al lado de la clase de ensamblaje.
La eliminación de un conjunto nunca afecta a sus partes. En el caso de poseer una clase, el objeto se elimina. También afecta al objeto de clase contenedor.

Agregación vs composición: estadísticas clave

Agregación Composición
Propietario Sin dueño Propietario único
De por vida Tener su vida. Vida del propietario.
Objeto hijo Todos los objetos secundarios son independientes. Los objetos secundarios pertenecen a un solo padre.

Ejemplo de composición

La carpeta puede contener muchos archivos, mientras que cada archivo tiene exactamente una carpeta principal. Si se elimina una carpeta, también se eliminan todos los archivos que contiene. En una agregación compuesta, un objeto puede ser parte de un solo compuesto a la vez.

Ejemplo de composición

Ejemplo de agregación

Por ejemplo, su automóvil se compone de ruedas, motor, caja de cambios, dirección y la carrocería principal, etc. Es un conjunto y las demás partes son sus constituyentes.

Aquí, el coche con la rueda es una agregación, el coche con el motor es otra agregación, el coche con la caja de cambios es otra, y así sucesivamente.

Este tipo de emparejamiento permite definir la multiplicidad de las partes constituyentes dentro del conjunto como resultado de éste. También se puede representar el número de objetos.

Un coche necesita una rueda para funcionar correctamente. Sin embargo, no podemos decir lo mismo de un coche. La misma lógica se puede aplicar a la bicicleta, la bicicleta o cualquier otro vehículo, pero no a un automóvil en particular.

Aquí, el objeto rueda tiene significado incluso sin el objeto automóvil. Se conoce como relación de agregación.

Ejemplo de agregación