Unified Modelling Language

Note

Unified Modelling Language (UML) è un linguaggio di modellazione utilizzato per lo sviluppo software, più nel dettaglio per la progettazione e l'analisi di sistemi. Rappresenta un set di notazioni e regole per creare un modello della logica interna dell'applicativo.

I principali diagrammi definiti dall'UML sono i diagrammi di struttura, i diagrammi di comportamento e i diagrammi di interazione. Assieme descrivono i requisiti del sistema, quali funzionalità devono essere offerte e chi le usa, senza affrontare la descrizione di come sono realizzate.

Class diagram

Note

Nel class diagram di hanno come nodi degli oggetti composti da quattro parti: nome, attributi, metodi e descrizione statica.

Il nome è il nome della classe e la descrizione statica è la descrizione di esso. Gli attributi sono specificati con la sintassi:

visibilità nome: tipo[molteplicità] = valore predefinito

Mentre i metodi sono sono specificati con la sintassi:

visibilità nome (lista parametri): tipo di ritorno

Le visibilità possono essere: public +, private -, protected # e friendly ~. Se un metodo non è specifico all'oggetto ma alla classe (statico) viene sottolineato.

center

Le classi possono essere associate tra loro. Un'associazione può specificare un nome e i ruoli svolti dalle classi nell'associazione. Gli estremi di un'associazione sono visti come attributi impliciti e hanno visibilità come attributi normali. Questi attributi hanno inoltre una molteplicità.

center

Per le associazioni molteplici si possono anche avere classi di associazione.

center

È possibile indicare l'ereditarietà per esplicitare eventuali comportamenti comuni.

center

Esplicitando inoltre se un elemento è una classe astratta (di cui non si possono avere esemplari) o un interfaccia.

center

Aggregazioni e composizioni

Le aggregazioni sono una forma particolare di associazione, dove una parte è in relazione con un oggetto.

center

Una relazione di composizione è un'aggregazione "forte", dove la parti componenti non esistono senza il contenitore.

center

Diagramma degli oggetti

Al contrario del diagramma delle classi il diagramma degli oggetti mostra le relazioni dirette tra le istanze delle classi.

center

Package

I package sono dei meccanismi di strutturazione, che definiscono uno spazio dei nomi. Permettono di decomporre gerarchicamente le varie classi, e inoltre permettono di specificare dipendenze tra di loro.

Diagrammi di interazione

Note

I diagrammi di interazione descrivono il comportamento dinamico di un gruppo di oggetti che "interagiscono" per risolvere un problema. Sono utilizzati per rappresentare scenari in termini di entità e messaggi scambiati.

Per farlo UML propone l'uso di diagrammi di sequenza e diagrammi di comunicazione.

Diagrammi di sequenza

Il diagramma di sequenza mostra come più classi interagiscono tra loro.

center

I messaggi possono essere sincroni (freccia piena), asincroni (freccia non piena) e di risposta (freccia tratteggiata). Si può inoltre simulare delle operazioni ripetute e opzionali.

center

Si può anche simulare delle alternative.

center

Macchine a stati finiti

Note

Le macchine a stati finiti rappresentano il comportamento dei singoli oggetti di una classe in termini di:

  • Eventi a cui la classe è sensibile
  • Azioni prodotte
  • Transizioni di stato

Di seguito la sintassi dei nodi delle macchine.

center

Decomposizione OR

Un macro stato equivale ad una scomposizione OR degli stati, dove i sottostrati ereditano le transizioni dei loro superstrati.

center

Decomposizione AND

È il caso duale al caso OR, si ha che modella operazioni ed attività concorrenti.

center