- Agregación
Las relaciones de agregación tienden a ser menos y más permanentes que las de asociación.
En este tipo de relación podemos distinguir dos modalidades:
- Agregación simple
- Composición
La forma de representar está relación con UML es por medio de una línea que une el todo con la parte, añadiendo al extremo del todo un rombo vacío.
Sin embargo en el caso de la composición la existencia de las partes dependen directamente de la existencia del todo que las contiene. De forma que si el todo deja de existir también lo hacen sus partes.
La forma de modelar este tipo de agregación con UML es de la misma forma que la agregación simple, pero con el rombo oscuro.
En el siguiente diagrama podemos ver un ejemplo de ambas relaciones:
En este caso podemos ver como un 'Alumno' forma parte tanto de una 'Universidad' como de una 'Asignatura'. Siendo la primera una relación de composición y la segunda de agregación simple. La diferencia conceptual esta en la relación de dependencia existencial que existe entre ellas. Si la 'Universidad' deja de existir también dejarían de existir las entidades de tipo 'Alumno', porque los alumnos necesariamente tienen que forma parte de una 'Universidad', mientras que si deja de existir una 'Asignatura' no tienen porque dejar de existir los elementos 'Alumno' vinculados a ella, porque aunque dejen de forma parte de esa 'Asignatura' formarán parte de otras, o incluso en el peor de los casos de ninguna pero sí seguirán formando parte de la 'Universidad'.
Las relaciones de asociación se hacen y deshacen con mucha más frecuencia que las relaciones de agregación, y algunas veces sólo existen mientras dura una operación.
En el caso de la asociación la forma de modelar este tipo de relación con UML es simplemente con una línea uniendo los objetos asociados, aunque a veces esta linea es una flecha dirigida desde la clase que usa a la clase usada por éste.
En este ejemplo vemos como el 'Pizzero' usa la 'Pizza', pero es sólo una relación de uso no de composición. La existencia de uno no está ligada a la existencia del otro. Si el 'Pizzero' desaparece la 'Pizza' sigue existiendo, y viceversa.
En el siguiente diagrama podemos ver un ejemplo de ambas relaciones:
En este caso podemos ver como un 'Alumno' forma parte tanto de una 'Universidad' como de una 'Asignatura'. Siendo la primera una relación de composición y la segunda de agregación simple. La diferencia conceptual esta en la relación de dependencia existencial que existe entre ellas. Si la 'Universidad' deja de existir también dejarían de existir las entidades de tipo 'Alumno', porque los alumnos necesariamente tienen que forma parte de una 'Universidad', mientras que si deja de existir una 'Asignatura' no tienen porque dejar de existir los elementos 'Alumno' vinculados a ella, porque aunque dejen de forma parte de esa 'Asignatura' formarán parte de otras, o incluso en el peor de los casos de ninguna pero sí seguirán formando parte de la 'Universidad'.
- Asociación
Las relaciones de asociación se hacen y deshacen con mucha más frecuencia que las relaciones de agregación, y algunas veces sólo existen mientras dura una operación.
En el caso de la asociación la forma de modelar este tipo de relación con UML es simplemente con una línea uniendo los objetos asociados, aunque a veces esta linea es una flecha dirigida desde la clase que usa a la clase usada por éste.
En este ejemplo vemos como el 'Pizzero' usa la 'Pizza', pero es sólo una relación de uso no de composición. La existencia de uno no está ligada a la existencia del otro. Si el 'Pizzero' desaparece la 'Pizza' sigue existiendo, y viceversa.
No hay comentarios:
Publicar un comentario