Le associazioni tra le classi
Le classi individuate nella fase di analisi della realtà di riferimento possono essere legate tra
loro da
associazioni di varia natura.
Tali associazioni possono coinvolgere due o più classi. Nel seguito analizzaremo le associazioni
binarie, ossia quelle che intercorrono tra coppie di classi del nostro modello.
Graficamente possiamo rappresentarle, semplificando, attraverso un legame che coinvolge le due
classi.

Una caratteristica fondamentale di una associazione è la cardinalità o
molteplicità, ossia una informazione numerica che indica il
numero di oggetti concreti coinvolti nella associazione.
La cardinalità può essere espressa attraverso un preciso valore
numerico ed in tal caso
individua con precisione il numero di oggetti coinvolti, oppure
attraverso un asterisco, nel
qual caso il numero di oggetti coinvolti è molteplice, ma non specificato con precisione (* sta
pertanto ad indicare un qualunque valore numerico maggiore o uguale a zero).
La cardinalità può anche essere espressa con una coppia di numeri separati da puntini.
I
valori
prendono il nome di cardinalità minima e cardinalità massima ed indicano, rispettivamente, il
numero minimo e massimo di oggetti
coinvolti. La cardinalità massima può anche essere imprecisata e rappresentata pertanto con il
simbolo asterisco (*).
Alcuni esempi di cardinalità sono:
- uno: 1
- molti: *
- zero o più: 0 . . *
- uno o più: 1 . . *
- zero o più fino ad un N specificato: 0 . . N (es: 0 . . 10)
- uno o più fino ad un N specificato: 1 . . N (es: 1 . . 10)
- da N ad M entrambi specificati: N . . M (es: 1 . . 4)
Un esempio di uso delle cardinalità nei diagrammi delle classi UML è raffigurato nell'immagine
che segue:

Tale diagramma indica che una istanza della classe A può essere associata a zero o più istanze della classe B e, viceversa, una istanza della classe B deve essere associata ad una istanza della classe A.