Saltar la navegación

3.4.3.- Agregación y composición.

Muchas veces una determinada entidad existe como un conjunto de otras entidades. En este tipo de relaciones un objeto componente se integra en un objeto compuesto. La orientación a objetos recoge este tipo de relaciones como dos conceptos: la agregación y la composición.
La agregación es una asociación binaria que representa una relación todo-parte (pertenece a, tiene un, es parte de). Los elementos parte pueden existir sin el elemento contenedor y no son propiedad suya. Por ejemplo, un centro comercial tiene clientes o un equipo tiene unos miembros. El tiempo de vida de los objetos no tiene porqué coincidir.
Conjuntos de clases unidas por relaciones de agregación. Las clases se representan como rectángulos azules. En la zona superior aparece la clase “Ordenador”, de la que sale en su zona inferior un rombo de color blanco, del rombo parten cuatro lineas hacia las clases “Monitor”, “Caja”, “Ratón” y”Teclado” que aparecen alineadas horizontalmente debajo de “Ordenador”. De la clase “Caja” también sale un rombo de color blanco en su zona inferior que se conecta mediante lineas rectas con las clases “Chasis”, “CPU”, “RAM” y “Ventilador”, que aparecen alineadas horizontalmente debajo de las otras.

En el siguiente caso, tenemos un ordenador que se compone de piezas sueltas que pueden ser sustituidas y que tienen entidad por si mismas, por lo que se representa mediante relaciones de agregación. Utilizamos la agregación porque es posible que una caja, ratón o teclado o una memoria RAM existan con independencia de que pertenezcan a un ordenador o no.

La composición es una agregación fuerte en la que una instancia ‘parte’ está relacionada, como máximo, con una instancia ‘todo’ en un momento dado, de forma que cuando un objeto ‘todo’ es eliminado, también son eliminados sus objetos ‘parte’. Por ejemplo: un rectángulo tiene cuatro vértices, un centro comercial está organizado mediante un conjunto de secciones de venta...
Tres clases unidas por relaciones de agregación. Las clases se representan como rectángulos de color azul, con su nombre en la zona superior. De izquierda a derecha las clases se llaman “Modulo”, “Competencia” y “Ciclo”. De “Módulo” a “Competencia” surge una linea recta que termina en un rombo de color negro. Está etiquetada con “Compuesto por”, y lleva en el extremo de “Módulo” los valores 1..* y en el extremo del rombo un 1. De “Competencia” a “Ciclo” surge un línea que termina en un rombo. En el extremo de “Competencia” aparecen los valores 1..* y en el rombo un 1.

Para modelar la estructura de un ciclo formativo vamos a usar las clases Módulo, Competencia y Ciclo que representan lo que se puede estudiar en Formación Profesional y su estructura lógica. Un ciclo formativo se compone de una serie de competencias que se le acreditan cuando supera uno o varios módulos formativos.

Dado que si eliminamos el ciclo, las competencias no tienen sentido, y lo mismo ocurre con los módulos hemos usado relaciones de composición. Si los módulos o competencias pudieran seguir existiendo sin su contenedor habríamos utilizado relaciones de agregación.

Estas relaciones se representan con un rombo en el extremo de la entidad contenedora. En el caso de la agregación es de color blanco y para la composición negro. Como en toda relación hay que indicar la cardinalidad.