Estoy confundido acerca de algunas de las notaciones de los diagramas de clases UML.
Estoy bastante seguro de saber lo que significa Asociación . Cualquier relación entre instancias de dos clases, donde una instancia de una clase necesita saber sobre una instancia de la segunda clase para realizar su trabajo, es una relación de asociación. Una asociación a menudo significa que la clase A tiene una referencia (campo) a una instancia de la clase B.
Sin embargo, tengo problemas para entender lo que significan las flechas de Agregación y Composición . Parte de mi confusión fue causada por encontrar diferentes definiciones de estas anotaciones.
Dos definiciones de la notación de agregación :
Definición 1: una notación de agregación entre dos clases es adecuada siempre que una instancia de la clase A contenga una colección de instancias de la clase B (por ejemplo, una lista, matriz, lo que sea).
Definición 2: Un enlace de agregación entre dos clases es adecuado si una instancia de la clase A contiene una referencia a una instancia de la clase B, y la instancia B depende del ciclo de vida de la instancia A. Significado: cuando la instancia de la clase A se elimina, también lo hará la instancia de la clase B. La instancia de la clase B está completamente contenida por la instancia de la clase A, en oposición a la instancia de la clase A, simplemente teniendo una referencia a la instancia de clase B (que es la asociación regular).
Con respecto a lo que significa la notación de composición y cómo difiere de la notación de agregación, no estoy seguro.
Por favor aclare las definiciones y ayúdeme a entender. Ejemplos concretos serían bienvenidos.