I diagrammi UML sono utilissimi per aiutare a comprendere la connessione tra entità strutturali e di gruppo. Per poter eseguire una progettazione professionale ed efficace è necessario disporre di competenze tecniche e di una conoscenza dei concetti riguardanti le relazioni logiche.
Con i diagrammi UML è possibile capire in modo veloce e intuitivo il modo in cui gli elementi si associano gli uni agli altri. Il tipo di relazione più comune in assoluto, infatti, è proprio quello di Associazione. Approfondiamone insieme la conoscenza.
Cosa Sono Le Relazioni di Associazione?
In parole povere, le relazioni di associazione sono definibili come le relazioni tra due unità separate. Entro queste relazioni, vengono individuati punti in comune tra le entità, di modo da generare connessioni rilevanti. L'associazione aiuta dunque a creare collegamenti logici per mezzo di riferimenti continui.
Nei diagrammi UML le associazioni vengono rappresentate da una linea solida che collega classi uguali o diverse. L'associazione può riguardare le classi da uno-a-uno, da uno-a-molti o da molti-a-molti. Giacché le relazioni di associazione indicano un nesso comunicativo tra due entità, non possono essere ambigue e vanno etichettate in modo chiaro. L'etichettatura è seguita da una punta di freccia di dimensioni ridotte, atta a massimizzare la comprensione della relazione.
Nell'esempio in basso, è rappresentata la relazione di associazione tra una banca e gli impiegati. A partire dalla classe principale (la banca) si originano più linee solide, a indicare un tipo di relazione associativa da uno-a-molti.
Confronto tra Generalizzazione e Associazione
Come suggerisce il nome stesso, la generalizzazione è un metodo che classifica oggetti simili in modo...generalizzato. Le entità mostrano una relazione principale-subordinato tra l'entità generica e quella unica, con quest'ultima a rappresentare una forma specializzata dell'entità generica. Le relazioni di associazione, invece, uniscono entità diverse e intendono mostrare il modo in cui una classe si collega funzionalmente agli oggetti associati.
La generalizzazione produce relazioni cosiddette "kind-of", mentre l'associazione aiuta a rappresentare le relazioni dette "has-a". In altre parole, mentre la generalizzazione va a mostrare le ereditarietà, l'associazione rappresenta un 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)
Tipologie di Relazioni di Associazione
A seconda del tipo di connessione, le associazioni possono dividersi in quattro tipi principali. Continuate a leggere per scoprire quali sono.
1. Molteplicità
L'associazione di molteplicità si riferisce a quei casi in cui la classe collegata è presente più volte. Quando ciò accade, invece di menzionare nuovamente l'entità, si vanno a specificare le istanze massime e minime che possono essere collegate. Per indicare queste relazioni, viene aggiunto un asterisco (che rappresenta un massimo intermedio) insieme alla linea di associazione.
L'immagine in basso rappresenta l'espressione della molteplicità in circostanze diverse.
2. Associazione Diretta
Come indica il nome stesso, l'associazione diretta si riferisce alla direzione del flusso di comunicazione entro la relazione di associazione. Per impostazione predefinita, le relazioni di associazione sono interpretabili in modo bilaterale, ma l'associazione diretta permette di convogliare il flusso verso una sola direzione. L'associazione diretta viene rappresentata con la presenza di una linea solida comprendente una freccia.
Nell'immagine in basso è possibile osservare un'associazione unidirezionale tra un server e un cliente. La direzione della punta della freccia indica che il server è in grado di elaborare le richieste del cliente.
3. Associazione Riflessiva
L'associazione riflessiva può essere descritta come una relazione tra istanze diverse di una stessa classe. Questo tipo di associazione può essere classificata in due sotto-tipi: simmetrica e asimmetrica. Non esistono simboli specifici usati per rappresentare le relazioni di associazione riflessiva, ma è possibile notarne la presenza per via del fatto che la relazione si riferisce alla stessa classe.
Confronto tra Aggregazione e Composizione
Aggregazione e Composizione sono due sotto-categorie dell'associazione, con la Composizione che si connota come un sotto-tipo delle relazioni di aggregazione. In sostanza, l'Aggregazione si verifica quando gli oggetti di una classe possono accedere alle entità di un'altra classe. La Composizione, invece, rappresenta una relazione bilaterale, con l'oggetto che può essere parte solamente di una composizione per volta.
Le Aggregazioni Rappresentate nei Diagrammi UML
L'Aggregazione è un'associazione in cui le entità sono configurate insieme al fine di creare un oggetto più complesso. Il fine è quello di descrivere un gruppo di oggetti e le loro connessioni comuni. Le relazioni di aggregazione definiscono un singolo punto di controllo, detto "aggregato", con il gruppo di oggetti che rappresenta l'assieme.
Nei diagrammi UML, i dati fluiscono dall'aggregato (la classe principale) verso l'assieme (la classe subordinata), con un simbolo a forma di diamante (senza riempimento) accanto alla prima classe. Il classificatore delle parti, ossia le entità dell'assieme, può essere connesso a uno o più aggregati, ed esistere in modo indipendente.
Questo esempio mostra il fatto che l'auto necessita sempre del corretto funzionamento del volante e del motore, mentre motore e volante non necessariamente hanno bisogno dell'auto e possono, infatti, essere usati anche con un bus, una bici, un tosaerba e altri macchinari vari. Similmente, il motore è necessario per le procedure di controllo del motore (naturalmente), ma può anche esistere come entità indipendente ed essere associato ad altri veicoli.
Le Composizioni Rappresentate nei Diagrammi UML
Anche le composizioni sono associazioni rappresentanti relazioni bilaterali tra due classi, ma sono caratterizzate da un elevato grado di dipendenza. Se il composito viene eliminato, tutte le entità a esso connesse spariscono di conseguenza.
La composizione rappresenta la dipendenza tra classe principale e classe subordinata. Nei diagrammi UML, è possibile realizzare queste relazioni tracciando una linea che collega la classe principale e quella subordinata, aggiungendo la forma di un diamante (con riempimento) accanto alla prima.
L'esempio in alto ci mostra che una persona ha gambe, un cuore e un cervello. Se l'elemento chiave del diagramma, ossia la persona, viene eliminata (ferita o uccisa), tutte le entità associate scompariranno. A differenza di quanto accade con l'aggregazione, le entità in una relazione di composizione non possono esistere in modo dipendente e sono parte ("part-of") della persona.
Aggregazione | Composizione |
---|---|
Un sottoinsieme delle associazioni. | Un sottoinsieme delle aggregazioni. |
Una tipologia debole di associazione. | Una tipologia forte di associazione. |
Gli oggetti connessi sono indipendenti l'uno dall'altro. | Gli oggetti connessi sono fortemente dipendenti l'uno dall'altro. |
Rappresentata da una linea solida e una punta di freccia non riempita. | Rappresentata da una linea solida e una punta di freccia riempita. |
L'aggregazione è definita come una relazione "has-a". | La composizione è definita come una relazione "part-of". |
Meglio la Composizione o l'Aggregazione?
La composizione è un tipo di relazione più forte rispetto all'aggregazione (in quanto caratterizzata da dipendenza elevata). Entrambe implicano una connessione tra due oggetti o classi, e costituiscono sotto categorie dell'associazione.
Quando due oggetti esistono in modo indipendente l'uno dall'altro, in assenza di proprietà reciproca o unilaterale, parliamo di associazione aggregativa o di aggregazione. Quando due oggetti di un sistema hanno bisogno di coesistere e dipendere l'uno sull'altro, invece, si parla di composizione. L'associazione compositiva è considerata "forte" perché la distruzione dell'oggetto principale conduce a quella di tutte le entità a esso connesse. Al contrario, l'associazione aggregativa è considerata una relazione "debole" perché l'esistenza delle entità contenute non dipende da quella dell'oggetto che le contiene.
Come Creare Diagrammi UML con EdrawMax
L'Associazione è una delle relazioni più basilari e al contempo più importanti utilizzabili per connettere gli oggetti che fanno parte di un sistema. Al fine di realizzare diagrammi UML efficaci, implementando al meglio i nodi di associazione, è cruciale saper distinguere tra i suoi sotto-tipi principali: aggregazione e composizione. Siamo certi che le informazioni contenute nell'articolo sapranno aiutarvi a farlo.
Creare diagrammi UML con relazioni di associazione è una vera e propria passeggiata se si sceglie di usare un software professionale e intuitivo come EdrawMax. L'ampia gamma di strumenti di modifica, le raccolte di simboli personalizzabili e la miriade di modelli pronti per l'uso consentono a utenti di qualsiasi livello di realizzare diagrammi UML spettacolari con pochissimi click. Che siate esperti o alle prime armi poco importa, perché EdrawMax saprà sempre accompagnarvi nella produzione di diagrammi creativi, funzionali ed efficaci, all'insegna di professionalità e semplicità!