Qualche volta una classe può rappresentare il risultato di un insieme
di altre classi che la compongono. Questo è un tipo speciale di
relazione denominata aggregazione. Le classi che costituiscono i componenti e la classe finale sono in una relazione particolare del tipo: parte - intero (part-whole)
Un'aggregazione è rappresentata come una gerarchia in cui l' "intero"
si trova in cima e i componenti ("parte") al di sotto. Una linea unisce
"l'intero" ad un componente con un rombo raffigurato sulla linea stessa
vicino all' "intero".
Un esempio di aggregazione
Esaminiamo le "parti" che costituiscono un Televisore. Ogni TV ha un
involucro esterno (Box), uno schermo, degli altoparlanti, delle
resistenze, dei transistors, un circuito integrato e un telecomando
(oltre, naturalmente, ad altri tantissimi componenti!). Il telecomando
può, a sua volta, contenere le seguenti parti: resistenze, transitors,
batterie, tastiera e luci remote.
Qualche volta l'insieme di possibili
componenti di un'aggregazione si identifica in una relazione OR. Per
modellare tale situazione, è necessario utilizzare una constraint - la
parola OR all'interno di parentesi graffe su una linea tratteggiata che
connette le due linee parte-intero.
Una composizione
è una tipo più forte di aggregazione. Ogni componente in una
composizione può appartenere soltanto ad un "intero". Il simbolo
utilizzato per una composizione è lo stesso utilizzato per
un'aggregazione eccetto il fatto che il rombo è colorato di nero.
Se, ad esempio, si esamina l'aspetto esterno degli uomini, si evincerà
che ogni persona ha (tra le altre cose): una testa, un corpo, due
braccia. e due gambe. Tale concetto viene rappresentato nel seguente
grafico:
Una associazione composita. In tale associazione ogni componente appartiene esattamente ad un intero
Riepilogando diciamo che un'aggregazione specifica
un'associazione di tipo "parte - intero" in cui una classe che
rappresenta l' "intero" è costituita da più classi che la compongono.
Una composizione è una forma più forte di aggregazione in cui un
componente può appartenere soltanto ad un "intero". Le aggregazioni e
le composizioni sono rappresentate come linee che uniscono l' "intero"
e il componente singolo tramite, rispettivamente, un rombo aperto e un
rombo riempito di nero, entrambi disegnati dalla parte dell' "intero".