UML Tutorial – Diagrammi entità/relazioni

Diagrammi differenti permettono di coprire tutti i possibili casi che si possono presentare. Ciascun diagramma è costituito da elementi (entità) interconnessi secondo particolari vincoli (relazioni).

Entità

Di seguito sono elencati e descritti le principali entità che si possono impiegare in un diagramma realizzato in UML:

Class. Descrive un insieme di oggetti che sono accomunati da: attributi, operazioni, relazioni e semantica.

Interface. Una raccolta di operazioni che specificano un servizio di una classe o di un componente.

Collaboration. Rappresenta un interazione tra elementi che lavorano insieme per assicurare un compito che da soli gli elementi non potrebbero dare.

Actor. E’ l’entità esterna che comunica con il sistema di cui si vuole fornire la descrizione. Si pensi ad esempio ad una persona (actor) che interagisce con un PC oppure un dispositivo esterno (actor) che deve interfacciarsi verso il sistema.

Use case. Rappresenta la descrizione di una sequenza di azioni che il sistema esegue e che produce un risultato osservabile dall’actor.

Active class. E’ una classe che possiede un processo e quindi può avviare un azione di controllo per proprio conto.

Component. Rappresenta una parte fisica del sistema che fornisce la realizzazione di un insieme di interfacce.

Node. E’ una risorsa fisica che esiste a run-time e rappresenta un elemento di calcolo.

Interaction. E’ l’insieme dei messaggi scambiati tra un insieme di oggetti all’interno di uno specifico contesto che soddisfa un particolare compito.

State machine. Un comportamento che specifica la sequenza degli stati attraverso cui un oggetto passa durante tutto il suo ciclo di vita, in risposta agli eventi.

Package. E’ un meccanismo generale per raggruppare gli elementi tra loro.

Note. Permette di aggiungere note o vincoli ad un bene preciso oggetto o raccolta di elementi.

La tabella 1 riporta la rappresentazione grafica di ciascun elemento descritto.

Tabella 1: rappresentazione grafica delle entità.

Tabella 1: rappresentazione grafica delle entità.

Relazioni

Per poter creare un diagramma UML di senso compiuto sono necessarie oltre le entità anche le relazioni che consento di collegarle logicamente. Esse si possono classificare nelle seguenti categorie fondamentali:

➤ relazione di dipendenza;

➤ relazione di associazione;

➤ relazione di aggregazione;

➤ relazione di composizione;

➤ relazione di generalizzazione;

➤ relazione di realizzazione;

Relazione di dipendenza

Si tratta di una relazione logica tra due oggetti, in cui uno dei due è in qualche modo dipendente dall’altro. La figura 1 mostra una tipica relazione di dipendenza; in questo caso si specifica che un oggetto della classe A richiede la presenza di un oggetto della classe B per la sua corretta implementazione e funzionamento.

Figura 1: esempio di relazione di dipendenza.

Figura 1: esempio di
relazione di dipendenza.

Relazione di associazione

Definisce un’associazione tra due o più classi. In questo caso si distinguono le associazioni binarie (quelle cioè tra due sole classi) dalle associazioni di ordine superiore (quelle cioè tra tre o più classi). E’ preferibile l’uso delle prime, poiché più semplici da gestire. In figura 2 si può osservare un esempio di relazione di associazione binaria tra la classe A e la classe B.

Figura 2: esempio di relazione di associazione.

Figura 2: esempio di
relazione di associazione.

Spesso, quando si rappresenta una relazione di questo tipo, si usa indicare anche il ruolo svolto da ciascuna delle parti coinvolta nella relazione. Un tipico esempio è riportato in figura 3; in questo caso è rappresentata la relazione tra le macchine aziendali ed i dirigenti  a cui queste sono assegnate: come si nota sono utilizzate anche le etichette “ha l’uso della” ed “è assegnata a”.

Figura 3: esempio di relazione di associazione con indicazione delle etichette di ruolo.

Figura 3: esempio di relazione di associazione con indicazione delle etichette di ruolo.

Relazione di aggregazione e composizione

La relazione di associazione prevede due sotto-tipi che caratterizzano meglio il vincolo associativo: aggregazione e composizione. Nel primo caso si intende indicare che un oggetto è temporaneamente parte di un struttura più grande, mentre la relazione di composizione indica una forma di aggregazione più forte, in cui l’oggetto non può esistere da solo. Per indicare questi tipi particolari di associazioni si utilizza sempre una linea continua, come quella in figura 2, ma si aggiunge un rombo vicino all’oggetto che indica l’insieme delle parti (figura 4).

Figura 4: esempio di relazione di aggregazione e composizione.

Figura 4: esempio di relazione di aggregazione e composizione.

Il rombo vuoto è usato per la relazione di aggregazione, mentre quello pieno per quella di composizione. Per comprendere questa tipologia di relazioni è necessario  introdurre  il concetto di multiplicity o molteplicità. Si tratta del termine UML utilizzato per indicare la cardinalità. In questo modo si specifica quanti oggetti intervengono in un relazione. Ci possono essere differenti indicazioni:

1: indica esattamente un’unità;

n: indica un numero non meglio specificato;

➤ *: indica il range da 0 ad infinito

➤ 1..*: indica il range da 1 ad infinito

➤ 0..1: indica 0 e 1

➤ n1..n2: indica un range non meglio precisato.

In figura 4 sono presentati due esempi, uno per la relazione di aggregazione ed uno per quella di composizione. In entrambi i casi è stata indicata la molteplicità della relazione. Come si nota per la seconda relazione (Libri-Pagine) è stato utilizzato un rombo pieno, ad indicare che un pagina non ha motivo di esistenza senza l’oggetto libro. Un altro concetto da chiarire è la cosiddetta navigability. Indica quale classe della relazione è informata dell’altra parte. Le relazioni di associazione possono avere un navigability bidirezionele (ossia, ognuna delle parti è informata dell’altra) oppure unidirezionale (ossia, una sola parte è a conoscenza dell’altra). Graficamente questa indicazione è fornita tramite una freccia che punta verso la classe di cui si hanno le informazioni.

Relazione di Generalizzazione

E’ il termine UML che sta ad indicare il concetto di ereditarietà usato nei linguaggi ad oggetto. Il simbolo utilizzato è una freccia a forma di triangolo in direzione della classe generica. L’esempio in figura 5 chiarisce  il concetto. In questo esempio è stata definita la super-classe studente, caratterizzata da attributi che lo individuano. Lo studente A o lo studente B rappresentano le sotto-classi.

Figura 5: esempio di relazione di generalizzazione.

Figura 5: esempio di relazione di generalizzazione.

Relazione di Realizzazione

E’ una relazione tra due elementi, in cui uno dei due (il client)  realizza  il comportamento che l’altro elemento descrive (supplier). Più client possono realizzare il comportamento di un singolo supplier. Graficamente questa relazione è rappresentata tramite una linea tratteggia che termina con un freccia. La freccia è tracciata dal client al supplier. In tabella 2 sono riassunti tutti i  simboli descritti per rappresentare le relazioni UML.

Tabella 2: rappresentazione grafica delle relazioni.

Tabella 2: rappresentazione grafica delle relazioni.

 

 

 

 

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend