Un’associazione è rappresentata da una linea di congiunzione tra due classi sulla quale appare il nome dell’associazione.
Rappresentazione di una associazione
Il ruolo di una classe può apparire accanto ad essa.
All’estremità di ogni linea appare la molteplicità dell’associazione:
0..* | qualunque numero, può essere abbreviata in *; |
1..1 | esattamente 1, può essere abbreviata in 1; |
0..1 | 0 o 1; |
1..* | 1 o più di 1; |
n | esattamente n. |
L’associazione, invece che semplicemente dal nome, può essere rappresentata da una classe collegata da una linea tratteggiata alla linea di associazione. In questo modo si possono descrivere anche gli attributi e le operazioni della classe associazione.
Rappresentazione di una associazione come classe
L’associazione è sempre una classe, anche se viene indicato soltanto il nome sulla linea di congiunzione tra le classi.
Se l’associazione coinvolge tre o più classi si usa un rombo per collegare le linee di associazione. La molteplicità sarà sempre 0..* altrimenti si potrebbe scomporre in due o tre associazioni binarie.
Notazione UML per una associazione che coinvolge tre classi
Nelle associazioni si possono aggiungere i simboli di navigabilità che indicano che l’implementazione permette di passare rapidamente da un oggetto all’altro (si dice anche di attraversare). I simboli di navigabilità sono rappresentati da punte di frecce nel verso della navigabilità sulla linea dell’associazione.
Per ottenere la navigabilità in un senso il primo oggetto deve contenere un riferimento al secondo.
Per ottenere la navigabilità nelle due direzioni gli oggetti devono avere riferimenti reciproci.
Le associazioni di composizione e aggregazione hanno una notazione particolare.
Sulle linee di composizione e aggregazione di solito non appare alcun nome.
La composizione è rappresentata da una linea di associazione con un rombo nero dal lato dell’oggetto composto; vicino al componente si può indicare il ruolo e la molteplicità.
Composizione
L’oggetto composto di solito ha i riferimenti ai componenti (nel diagramma si possono aggiungere le frecce di navigabilità); se necessario si può prevedere anche un riferimento dai componenti all’oggetto composto.
L’aggregazione è rappresentata da una linea di associazione con un rombo vuoto dal lato dell’oggetto aggregato; vicino al componente si può indicare il ruolo; la molteplicità deve essere indicata da entrambi i lati.
L’aggregazione può avere delle proprietà tra parentesi graffe:
-
ordered indica che gli elementi sono ordinati;
-
bag (multiinsieme) consente a un elemento di apparire più volte;
-
set vieta i duplicati; è il valore di default.
Per esempio paragrafi ordinati in una sequenza di testo.
L’aggregazione si può implementare con un riferimento all’insieme dei costituenti.
Aggregazione
Dipendenze
La dipendenza è rappresentata da una linea tratteggiata con una freccia con la punta aperta che punta alla classe dipendente.
Dipendenza