Le associazioni riflessive
Una associazione riflessiva è una associazione di qualunque tipo
(dipendenza, composizione,
aggregazione) che una classe del nostro diagramma UML può avere con se
stessa.
Questo sta ad indicare che un qualunque oggetto della classe è legato, in qualche modo, ad
uno o più oggetti della stessa classe.
Nei diagrammi UML una associazione riflessiva può essere rappresentata come mostrato nelle
figure seguenti:




Volendo fare qualche esempio concreto di associazione riflessiva, possiamo pensare, al file system di un sistema operativo. La classe cartella, ad esempio, potrebbe essere una aggregazione di altre cartelle, come mostrato nella figura seguente.

Si noti che la classe cartella precedentemente raffigurata contiene solo un attributo di tipo
Cartella[*] (collezione di cartelle) per modellare l'aggregazione. Tale situazione determina
l'associazione unidirezionale (vedi freccia a punta aperta nella
figura).
Se, invece, la classe avesse avuto anche l'informazione della cartella contenitore, ossia la
cartella che contiene quella in questione, l'associazione sarebbe stata bidirezionale ed il modello UML sarebbe stato il seguente.

Un altro esempio potrebbe derivare dalla modellazione del concetto di responsabile di un gruppo di impiegati di una azienda. Si potrebbe modellare una dipendenza riflessiva, come mostrato nella figura che segue.
