Nei diagrammi di classe, un'associazione è una relazione strutturale che indica che gli oggetti di un classificatore, ad esempio una classe o un'interfaccia, sono collegati e possono esaminare gli oggetti di un altro classificatore.
Un'associazione collega due classificatori: quello fornito e il consumer. Le associazioni consentono di prendere decisioni sulla struttura dei propri dati. Tali decisioni riguardano non solo le classi necessarie per contenere dati, ma anche quelle necessarie per condividere i dati con altre classi. Un'associazione supporta la condivisione di dati tra classi o, nel caso di un'associazione automatica, tra oggetti della stessa classe.
Ad esempio, una classe Customer ha un'associazione singola (1) con la classe Account, per indicare che ogni istanze Account appartiene a un'istanza Customer. Se si dispone di un account, è possibile individuare il cliente proprietario dell'account e per un determinato cliente, è possibile individuare l'account che gli appartiene. L'associazione tra la classe Customer e la classe Account è importante perché mostra la struttura tra i due classificatori.
È possibile collegare informazioni sulla molteplicità a un'associazione per mostrare il numero di istanze di classe A collegate alle istanze di classe B. Tali informazioni possono essere collegate a entrambe le estremità di relazioni di associazione.
Nei diagrammi di classe, le suddette relazioni in un'applicazione C/C++ rappresentano quanto segue:
Nella mappatura di visualizzazione, le variabili di istanza in un'applicazione C/C++ diventano attributi nei classificatori nei diagrammi di classe. Per impostazione predefinita, tutti i campi C/C++ vengono mostrati come attributi.
Un connettore della relazione di associazione viene visualizzato come una linea piena tra due classificatori.
Nella seguente figura viene mostrato un esempio di codice di origine e una rappresentazione grafica di una relazione di associazione.
| Codice di origine C/C++ | Visualizzazione UML |
![]() |
![]() |