I diagrammi UML sono un modo pratico per capire e collegare tra loro le entità strutturali o di raggruppamento. Una buona conoscenza di tutti gli aspetti tecnici e una comprensione approfondita dei concetti di relazione logica sono importanti per eseguire la programmazione orientata agli oggetti.
UML aiuta a capire come una o più cose sono associate tra loro. Il tipo più comune di relazione è l'associazione. Diamo un'occhiata in dettaglio.
Cos'è una relazione di associazione?
Nel linguaggio comune, le relazioni di associazione sono definite come la relazione tra due unità separate. Si cerca la comunanza tra le entità e si creano dei collegamenti tra di esse. L'associazione permette di fare collegamenti logici attraverso un riferimento continuo.
Le associazioni sono rappresentate in un diagramma UML da una singola linea solida che collega classi uguali o diverse. L'associazione può essere mostrata tra classi uno-a-uno, uno-a-molti, molti-a-molti. Poiché le relazioni di associazione segnano un legame di comunicazione tra due entità, non dovrebbero essere ambigue ed etichettate chiaramente. L'etichettatura è seguita da una piccola freccia per una migliore comprensione della relazione.
Come si vede nell'immagine di esempio qui sotto, la relazione di associazione è rappresentata tra una banca e i suoi impiegati. Più linee solide provengono dalla classe principale, cioè: banca, questo diagramma mostra una relazione di associazione uno-a-molti.
Generalizzazione VS Associazione
Come suggerisce il nome, la generalizzazione è un modo di classificare oggetti simili in modo più generalizzato. Le entità mostrano una relazione genitore-figlio tra un'entità generale ed una unica, con quest'ultima che è una forma specializzata della classe generale. In confronto, l'associazione collega entità diverse e rappresenta come una classe usa la funzionalità dell'altro oggetto collegato.
La generalizzazione rappresenta le relazioni 'kind-of', mentre l'associazione aiuta a mostrare la relazione 'has-a'. Questo significa che la generalizzazione è legata alla visualizzazione delle eredità, mentre l'associazione mostra il collegamento basato sulle comunanze.
EdrawMax
Software per Diagrammi Tutto-in-Uno
- Compatibilità file superiore: Importa ed esporta disegni in vari formati di file, come Visio
- Supporto multipiattaforma (Windows, Mac, Linux, Web)
Tipi di relazioni di associazione
A seconda del collegamento, l'associazione si divide ulteriormente in quattro tipi principali. Sono classificati come segue:
1. Molteplicità
L'associazione di molteplicità si riferisce ai casi in cui una classe collegata appare più volte. Invece di riaffermare l'entità, specifichiamo le istanze massime e minime che possono essere collegate. Pertanto, in tali relazioni, segniamo un asterisco con la linea di associazione. L'asterisco rappresenta un massimo intermedio.
L'immagine qui sotto aiuta a capire come la molteplicità può essere espressa in diverse circostanze.
2. Associazione diretta
Come indicato dal nome, l'associazione diretta si riferisce alla direzione del flusso di comunicazione all'interno di una relazione di associazione. Per default, le relazioni di associazione sono navigabili bilateralmente; tuttavia, l'associazione diretta aiuta a dirigere il flusso in una sola direzione. L'associazione diretta è rappresentata dalla presenza di una linea solida con una punta di freccia.
Qui, un'associazione unidirezionale è mostrata tra un server e il client. La direzione della freccia mostra che un server può elaborare le richieste di un client.
3. Associazione riflessiva
L'associazione riflessiva è descritta come la relazione tra le istanze della stessa classe. Tale associazione è ulteriormente classificata in due tipi: Associazione riflessiva simmetrica e asimmetrica. Non c'è un simbolo specifico assegnato ad essa; tuttavia, la relazione punta alla stessa classe.
Aggregazione VS Composizione
L'aggregazione e la composizione sono due sottoinsiemi dell'associazione; tuttavia, la composizione è un ulteriore sottoinsieme della relazione di aggregazione. In parole semplici, l'aggregazionepuò essere definita come quando gli oggetti di una classe possono accedere alle entità di un'altra classe. Mentre la composizione rappresenta una relazione bilaterale e l'oggetto fa parte di un solo composto alla volta.
Aggregazioni rappresentate in un diagramma UML
L'aggregazioneè un'associazione in cui le entità sono configurate insieme per creare un oggetto più complesso. Attraverso di essa si descrive un gruppo di oggetti e il loro collegamento comune. Definisce un unico punto di controllo chiamato aggregato, e il gruppo di oggetti che rappresenta l'insieme.
In un diagramma UML, i dati fluiscono dall'aggregato (classe madre) verso l'insieme (classe figlia) con una forma di diamante (non riempita) vicino alla prima classe. Il classificatore di parti, o le entità di assemblaggio, possono essere collegate a più di un aggregato ed esistere indipendentemente.
Questo esempio mostra che la macchina ha sempre bisogno di una ruota e di un motore per funzionare correttamente, mentre il motore e la ruota non hanno sempre bisogno di una macchina. Possono essere usati con un autobus, una bicicletta, macchine, tosaerba e molto altro. Allo stesso modo, il motore è necessario per un controllo del motore, ma il motore può esistere come entità indipendente ed essere associato anche ad altri veicoli.
Composizioni rappresentate in un diagramma UML
Le composizioni sono anche un tipo di associazione che rappresenta una relazione bidirezionale e altamente dipendente tra due classi diverse. Se la composizione viene cancellata, anche le altre entità ad essa collegate vengono cancellate.
Esso rappresenta la dipendenza tra il genitore e il figlio. In un diagramma UML, disegnate una linea tra la classe genitore e la classe figlio con una forma di diamante riempito vicino alla classe genitore.
Come illustrato in questo esempio, una persona ha gambe, un cuore e un cervello. Se il punto focale di questo diagramma, la persona, viene ferita e uccisa, anche tutte le entità composte saranno scartate. A differenza dell'aggregazione, le entità non possono esistere indipendentemente e sono una "parte della" persona.
Aggregazione | Composizione |
---|---|
Un sottoinsieme dell'associazione | Un sottoinsieme dell'aggregazione. |
Un tipo debole di associazione. | Un tipo di associazione forte |
Gli oggetti collegati sono indipendenti l'uno dall'altro. | Gli oggetti collegati sono altamente dipendenti l'uno dall'altro. |
Rappresentati con una linea solida e una punta di freccia vuota. | Rappresentato da una linea continua con una punta di freccia piena. |
L'aggregazione è definita come una relazione "has-a". | La composizione è definita come una relazione "part-of". |
La composizione è meglio dell'aggregazione?
La composizione è più forte dell'aggregazione. Una relazione tra due oggetti è citata come associazione, ed entrambi questi termini ne sono un sottotipo.
Se due oggetti esistono indipendentemente l'uno dall'altro e non implicano alcuna proprietà l'uno dell'altro, si parla di associazione di aggregazione. Tuttavia, se due oggetti in un sistema devono coesistere e dipendere l'uno dall'altro, sono etichettati come composizione. Tale associazione è definita "forte" poiché quando l'oggetto proprietario viene distrutto, lo sono anche gli oggetti collegati. Al contrario, l'aggregazione rappresenta un'associazione debole perché la vita dell'oggetto contenuto non dipende dall'oggetto contenitore.
Utilizzare EdrawMax per la creazione di diagrammi UML
L'associazioneè il tipo più elementare ma più importante di relazione di collegamento che permette di collegare gli oggetti di un sistema. È essenziale distinguere tra i suoi due tipi, aggregazione e composizione, per un'implementazione senza errori e la creazione dei loro diagrammi UML.
Creare i diagrammi UML per l'associazione è super-facile se si dispone di un software facile da usare e ricco di strumenti come EdrawMax. Con una vasta gamma di strumenti di editing, una libreria altamente personalizzabile, e molteplici opzioni di template, creare un buon UML in pochi click è una cosa che si fa con una sola mano. Che tu sia un principiante o un esperto di tecnologia, capire e maneggiare il software è super-facile. Scaricalo per iniziare a creare i diagrammi più significativi e innovativi in un attimo!