Diagrama de Clases (Relaciones, Composición)
La composición es una forma estricta de agregación que representa una relación "todo-parte" con dependencia vital. Las partes no pueden existir independientemente del todo y son destruidas cuando éste se elimina (OMG, 2017; Rumbaugh et al., 2007).
1. Definición
La composición indica una relación "parte-de" más fuerte entre clases. Una clase (el "todo" o composite) contiene una o varias instancias de otra clase (la "parte"), y la existencia de las partes depende completamente de la existencia del todo. Si el todo se destruye, las partes también se destruyen simultáneamente. En otras palabras:
- El todo (clase compuesta) posee exclusivamente las partes
- Las partes tienen el mismo ciclo de vida que el todo
- La destrucción del todo implica la destrucción de todas sus partes
2. Notación y Sintaxis
- Se representa como una línea continua con un rombo pintado o relleno en el extremo del "todo"
- El rombo apunta hacia la clase composite.
- Se pueden especificar multiplicidades y roles en ambos extremos.
Figura
_Ejemplo de una Relación de Asociación por Composición
Nota: Cada Auto tiene exactamente un Motor y es exclusivo del mismo.
3. Características Clave
- Dependencia vital: Las partes no tienen significado fuera del contexto del todo (ejemplo: un Motor sin el Auto).
- Multiplicidad: El todo suele tener multiplicidad
1
(cada parte pertenece a un todo). - Encapsulación fuerte: Las partes son accesibles solo a través del todo (Booch et al., 2006).
4. Ejemplo con Roles y Multiplicidad
Figura
Ejemplo de una Relación de Asociación por Agregación de un Equipo de Fútbol
Nota: Un Equipo
tiene entre 1 y 11 Jugador
, pero un jugador puede existir fuera de un equipo.
5. Buenas Prácticas
- Utilizar composición solo cuando la relación "todo-parte" sea relevante en el dominio.
- No abusar de la composición; en muchos casos, una asociación simple es suficiente.
- Documentar claramente el significado de la relación en el contexto del modelo.
- Usar composición cuando las partes no tengan identidad independiente (ejemplo: párrafos en un documento).
6. Diferencias entre Composición y Agregación
Composición | Agregación |
---|---|
Rombo relleno | Rombo vacío |
Partes no sobreviven al todo | Partes pueden existir independientemente |
Propiedad exclusiva | Propiedad compartida |
Ejemplo: Auto-Motor | Ejemplo: Departamento-Empleado |