[¯|¯] I progettisti software "parlano" il linguaggio UML

Luglio 26th, 2018 | by Marco Giancola |

Unified Modeling Language,progettisti software
Immagine tratta da Wikipedia

L’UML (Unified Modeling Language ovvero "linguaggio di modellizzazione unificato") è un linguaggio grafico utilizzato principalmente nella progettazione di sistemi software. È costituito da diversi tipi di diagramma con i quali è possibile rappresentare sia la struttura che il funzionamento di tali sistemi. Viene adoperato anche per i sistemi hardware e i modelli di business.

Fu creato nella seconda metà degli anni ‘90 da tre ricercatori della Rational Software, Jim Rumbaugh, Ivar Jacobson e Grady Booch, il cui intento era quello di unire i linguaggi di modellizzazione preesistenti ottenendo così un linguaggio standard destinato principalmente alla progettazione di software orientati agli oggetti. La versione 1.1 dell’UML nel 1997 divenne uno standard OMG (Object Management Group); l’OMG da allora gestisce l’evoluzione di tale linguaggio, che è giunto alla versione 2.5.

Occorre precisare che UML è solo un linguaggio standard, non una metodologia: non dà alcuna indicazione sulla sequenza di utilizzo dei vari diagrammi né tanto meno impone l'utilizzo di tutti i diagrammi. Pertanto la sua modalità di utilizzo è abbastanza libera: è il progettista che, in base alle esigenze e al contesto, utilizza ciò che gli serve e nel modo che ritiene più opportuno. Questa indipendenza dalle metodologie permette, grazie alla notazione standard, a gruppi che utilizzano metodologie diverse di comunicare senza alcun problema.







2 Diagrammi

I diagrammi UML si suddividono in:

  1. diagrammi “strutturali”:
    • diagramma delle classi
    • diagramma degli oggetti
    • diagramma dei componenti
    • diagramma delle strutture composite
    • diagramma di distribuzione
    • diagramma dei package
  2. diagrammi “comportamentali”:
    • diagramma dei casi d’uso
    • diagramma di stato
    • diagramma delle attività
  3. diagrammi “comportamentali di interazione":
    • diagramma di sequenza
    • diagramma di comunicazione
    • diagramma dei tempi
    • diagramma di sintesi dell’interazione

Vediamo ora più in dettaglio i principali di questi diagrammi.

2.1 Diagramma dei casi d’uso

I diagrammi dei casi d’uso costituiscono il punto di partenza della progettazione di un sistema software (o hardware o di altro tipo). I casi d’uso sono le funzionalità del sistema ossia i modi in cui esso può essere utilizzato da uno o più utilizzatori. In parole povere, tali diagrammi illustrano cosa fa il sistema senza dare alcuna informazione in merito a come lo fa. La semplicità del diagramma dei casi d’uso, comprensibile anche ai non "addetti ai lavori", consente una partecipazione attiva di tutte le parti interessati all'applicazione, come il committente e gli utenti, agevolando la raggiunta di un accordo su cosa il sistema debba fare.

Unified Modeling Language,progettisti software

2.2 Diagramma delle classi

Un altro dei principali diagrammi dell'UML è il diagramma delle classi, che serve a rappresentare le classi che compongono un software da sviluppare tramite un linguaggio di programmazione orientato agli oggetti, i loro attributi e metodi e le relazioni che intercorrono tra esse. La relazione che lega due classi può essere di:

  • dipendenza, quando il cambiamento di stato di una delle due modifica lo stato dell'altra;

    Unified Modeling Language,progettisti software

  • generalizzazione, quando una delle due è una sottoclasse dell’altra;

    Unified Modeling Language,progettisti software

  • associazione, quando una delle due utilizza i servizi (metodi) dell'altra.

    Unified Modeling Language,progettisti software

2.3 Diagramma di sequenza e di collaborazione

Il diagramma di sequenza e quello di collaborazione sono due diagrammi, molto simili tra loro, che servono ad evidenziare le comunicazioni che avvengono tra gli oggetti, ovvero tra le istanze delle classi che compongono il software, specificando la sequenza dei messaggi che essi si scambiano. Le seguenti figure rappresentano rispettivamente il diagramma di sequenza e quello di collaborazione di un ipotetico motore di ricerca:

Unified Modeling Language,progettisti software

Unified Modeling Language,progettisti software

2.4 Diagramma di stato

I diagrammi di stato vengono usati per modellare il modo in cui un oggetto cambia stato. Per oggetto si intende sia un’istanza di una classe sia un oggetto qualsiasi, come ad esempio un dispositivo (per esempio, un computer, i cui stati saranno: acceso, avviamento, elaborazione, stand-by, spegnimento, spento). Nel caso di un’istanza di classe, uno stato è descritto dai valori assunti dai suoi attributi in un determinato momento.

Unified Modeling Language,progettisti software

2.5 Diagramma di attività

Un diagramma di attività è praticamente un diagramma di flusso: mostra il flusso di esecuzione delle attività del sistema e come cambia direzione a seconda delle diverse condizioni. Uno dei suoi usi più comuni consiste nel modellare il flusso di lavoro di ciascun caso d’uso di un software, ma è anche utilizzato ad esempio per descrivere il flusso di una logica di business.

Unified Modeling Language,progettisti software

2.6 Diagramma dei componenti

Il diagramma dei componenti descrive la struttura di un sistema software in termini di moduli (componenti) e di dipendenze tra loro. Esempi di moduli software sono: i file contenenti il codice sorgente, quelli contenenti il codice eseguibile e i package.

Unified Modeling Language,progettisti software

2.7 Diagramma di distribuzione

Il diagramma di distribuzione serve a rappresentare l'architettura fisica di un sistema informatico. Esso è costituito da nodi che rappresentano elementi hardware (macchine server, PC, dispositivi vari, reti, …), all'interno dei quali è possibile rappresentare, ad esempio con diagrammi dei componenti, gli elementi software del sistema.
Unified Modeling Language,progettisti software

3 Strumenti di modellazione

Esistono numerosi strumenti (software CASE) che consentono di progettare mediante l’UML; alcuni sono gratuiti mentre altri posso arrivare a costare decine di migliaia di euro. Alcuni dei più noti sono:

  • Rational Rose (IBM - Rational Software)
  • Together (Borland)
  • Visio (Microsoft)
  • TAU (IBM - Telelogic)
  • Objecteering (Softeam)
  • Poseidon (Gentleware)
  • Enterprise Architect (Sparx Systems)
  • Magic Draw (No Magic)
  • Argo (open source)
  • StarUML (open source)

Unified Modeling Language,progettisti software

No TweetBacks yet. (Be the first to Tweet this post)

Tags: ,

Articoli correlati

Commenta l'esercizio