Associazione UML vs. Aggregazione vs. Composizione [ESEMPIO]

Le relazioni nei diagrammi UML vengono utilizzate per rappresentare una connessione tra diverse cose. Una relazione รจ una connessione tra elementi come quelli strutturali, comportamentali o di gruppo.ping cose nel linguaggio di modellazione unificato.

Di seguito sono riportati i diversi tipi di relazioni standard in UML,

  • Associazione
  • Dipendenza
  • Generalizzazione
  • Realizzazione

Oltre a questi, UML consente l'uso dell'aggregazione e di una relazione di composizione.

Associazione UML

รˆ una relazione strutturale che rappresenta gli oggetti che possono essere collegati o associati a un altro oggetto all'interno del sistema. I seguenti vincoli possono essere applicati alla relazione di associazione UML.

  • {implicito} โ€“ I vincoli impliciti specificano che la relazione non รจ manifesta; si basa su un concetto.
  • {ordinato} โ€“ I vincoli ordinati specificano che l'insieme di oggetti a un'estremitร  di un'associazione si trova in un modo specifico.
  • {variabile} โ€“ Il vincolo modificabile specifica che la connessione tra vari oggetti nel sistema puรฒ essere aggiunta, rimossa e modificata secondo i requisiti.
  • {solo aggiunta} โ€“ Si specifica che le nuove connessioni possono essere aggiunte da un oggetto che si trova all'altra estremitร  di un'associazione.
  • {congelato} โ€“ Specifica che quando viene inserito un collegamento tra due oggetti, non puรฒ essere modificato mentre รจ attivo il vincolo congelato sul collegamento o su una connessione specificata.

Possiamo anche creare una classe che abbia proprietร  di associazione UML; viene chiamata come classe di associazione.

Associazione riflessiva

L'associazione riflessiva รจ un sottotipo di relazione associativa in UML. In un'associazione riflessiva, le istanze della stessa classe possono essere correlate tra loro. Anche un'istanza di una classe รจ detta oggetto.

L'associazione riflessiva afferma che all'interno degli oggetti della stessa classe puรฒ essere presente un collegamento o una connessione.

Esempio:

Consideriamo un esempio di un frutto di classe.

La classe frutta ha due istanze, come mango e mela. L'associazione riflessiva afferma che un collegamento tra mango e mela puรฒ essere presente poichรฉ sono esempi della stessa classe, come il frutto.

Associazione riflessiva
Associazione riflessiva

Associazione diretta

Come suggerisce il nome, l'associazione diretta รจ legata alla direzione del flusso all'interno delle classi associative.

In un'associazione diretta, il flusso รจ diretto. L'associazione da una classe all'altra scorre solo in un'unica direzione.

รˆ indicato utilizzando una linea continua con una freccia.

Esempio di associazione UML:

Si puรฒ dire che esiste una relazione di associazione diretta tra un server e un client.

Un server puรฒ elaborare le richieste di un client. Questo flusso รจ unidirezionale, cioรจ scorre solo dal server al client. Quindi una relazione di associazione diretta puรฒ essere presente all'interno dei server e dei client di un sistema.

Associazione diretta

Associazione diretta

Composizione UML

Non รจ uno standard Relazione UML, ma รจ ancora utilizzato in varie applicazioni.

L'aggregazione composita รจ un sottotipo di relazione di aggregazione con caratteristiche come:

  • รˆ un'associazione bidirezionale tra gli oggetti.
  • รˆ una relazione tutto/parte.
  • Se un composito viene eliminato, tutte le altre parti ad esso associate vengono eliminate.

L'aggregazione composita รจ descritta come un'associazione binaria decorata con un diamante nero pieno all'estremitร  dell'aggregato (intero).

Composizione UML

La cartella puรฒ contenere molti file, mentre ogni file ha esattamente una cartella genitore. Se una cartella viene eliminata, verranno rimossi anche tutti i file in essa contenuti.

In un'aggregazione composita, un oggetto puรฒ far parte di un solo composito alla volta.

Esempio di composizione UML:

Ad esempio, in un sistema di windowing, un Frame appartiene esattamente a una Window. In un'aggregazione composita, l'intero sistema รจ responsabile della disposizione delle sue parti, il che significa che il composito deve gestire la creazione e la distruzione delle sue parti.

Composizione UML

Composizione

Aggregazione UML

Un'aggregazione รจ un sottotipo di una relazione di associazione in UML. Aggregazione e composizione sono entrambi i tipi di relazione di associazione in UML. Una relazione di aggregazione puรฒ essere descritta in parole semplici come โ€œun oggetto di una classe puรฒ possedere o accedere agli oggetti di unโ€™altra classeโ€.

In una relazione di aggregazione, l'oggetto dipendente rimane nell'ambito di una relazione anche quando l'oggetto di origine viene distrutto.

Esempio di aggregazione UML:

Consideriamo l'esempio di un'auto e di una ruota.

Un'auto ha bisogno di una ruota per funzionare correttamente, ma non sempre una ruota ha bisogno di un'auto. Puรฒ essere utilizzato anche con la bici, la bicicletta o qualsiasi altro veicolo ma non con un'auto in particolare. In questo caso l'oggetto ruota ha senso anche senza l'oggetto automobile. Questo tipo di relazione รจ chiamata relazione di aggregazione UML.

Relazione di aggregazione UML

Aggregazione

Associazione contro Aggregazione vs. Composizione

Associazione Aggregazione Composizione
La relazione di associazione รจ indicata utilizzando una freccia. La relazione di aggregazione รจ indicata utilizzando una linea retta con una freccia vuota a un'estremitร . La relazione di composizione รจ indicata utilizzando una linea retta con una freccia piena in corrispondenza di una qualsiasi delle estremitร .
L'associazione puรฒ esistere tra due o piรน classi in UML. L'aggregazione รจ una parte di una relazione di associazione. La composizione รจ parte di un rapporto associativo.
Possono essere presenti associazioni uno-uno, uno-molti, molti-uno e molti-molti tra le classi di associazione. L'aggregazione รจ considerata un tipo di associazione debole. La composizione รจ considerata un tipo di associazione forte.
In una relazione di associazione, uno o piรน oggetti possono essere associati tra loro. In una relazione di aggregazione, gli oggetti associati tra loro possono rimanere nell'ambito di un sistema senza gli altri. In una relazione di composizione, gli oggetti associati tra loro non possono rimanere nell'ambito l'uno senza l'altro.
Gli oggetti sono collegati tra loro. Gli oggetti collegati non dipendono dall'altro oggetto. Gli oggetti sono fortemente dipendenti gli uni dagli altri.
Nell'associazione UML, l'eliminazione di un elemento puรฒ influenzare o meno un altro elemento associato. Nell'aggregazione UML, l'eliminazione di un elemento non influisce su un altro elemento associato. Nella composizione UML, l'eliminazione di un elemento influisce su un altro elemento associato.
Esempio:
Un insegnante รจ associato a piรน studenti.
Or
un insegnante fornisce istruzioni agli studenti.
Esempio:
Un'auto ha bisogno di una ruota, ma non sempre ha bisogno della stessa ruota. Un'auto puรฒ funzionare adeguatamente anche con un'altra ruota.
Esempio:
Un file viene inserito all'interno della cartella. Se si elimina la cartella, viene eliminato anche il file associato a quella determinata cartella.

Sintesi

  • Una relazione รจ una connessione tra le cose.
  • Associazione, dipendenza, generalizzazione e realizzazione sono varie relazioni fornite da UML.
  • Oltre alle relazioni standard, all'interno dell'UML vengono utilizzate la composizione e l'aggregazione.
  • Aggregazione e composizione sono entrambi i tipi di relazione associativa in UML.
  • La composizione UML รจ una relazione bidirezionale chiamata anche relazione binaria.

Dai un'occhiata al nostro articolo sui migliori strumenti UML:- Clicca qui

Riassumi questo post con: