Quando più classi sono connesse l'una con l'altra da un punto di vista
concettuale, tale connessione viene denominata associazione.
Graficamente, un'associazione viene rappresentata con una linea che
connette due classi, con il nome dell'associazione appena sopra la
linea stessa.
Quando una classe si associa con un'altra,
ognuna di esse gioca un ruolo all'interno dell'associazione. E'
possibile mostrare questi ruoli sul diagramma, scrivendoli vicino la
linea orizzontale dalla parte della classe che svolge un determinato
ruolo, come si vede nella figura precedente.
Un'associazione può essere più complessa del concetto di connettere una
classe ad un'altra. E' possibile, infatti che più classi possano
connettersi ad una singola classe.
Qualche volta un'associazione tra due classi deve seguire una regola.
Tale regola si indica inserendo una "constraint" vicino la linea che
rappresenta l'associazione.
Esattamente come una classe, un'associazione può avere attributi ed operazioni. In questo caso si parla di una Classe Associazione (vedasi figura precedente).
Le classi associazione vengono visualizzate allo stesso modo con cui si
mostra una classe normale. Si utilizza una linea tratteggiata per
connettere una Classe Associazione alla linea di associazione.
La molteplicità è un tipo speciale di associazione in cui si mostra il
numero di oggetti appartenenti ad una classe che interagisce con il
numero di oggetti della classe associata.
Una classe, in generale, può essere correlata ad una altra nei seguenti
modi:
Uno ad uno
Uno a molti
Uno ad uno o più
Uno a zero o uno
Uno ad un intervallo limitato (es.: 1 a 2 - 20)
Uno ad un numero esatto n
Uno ad un insieme di scelte (es.: 1 a 5 o 8)
Il linguaggio UML utilizza un asterisco (*) per rappresentare le opzioni "molti" e "più".
Qualche volta, una classe può trovarsi in associazione con se stessa.
Ciò si verifica quando una classe contiene oggetti che possono giocare
svariati ruoli. Tali associazioni sono chiamate: "Associazioni
Riflessive".
Associazione Riflessiva Senza le
relazioni, un modello di classi sarebbe soltanto una lista di
rettangoli che rappresentano un "vocabolario" del sistema. Le relazioni
mostrano come i termini del vocabolario si connettono tra di loro per
fornire un quadro della fetta di sistema che si sta modellando.
L'associazione rappresenta, dunque, la connessione concettuale
fondamentale tra le classi in cui ogni classe, come detto, gioca un
ruolo specifico.