Gli Activity Diagram per descrivere i processi software

Gli Activity Diagram sono costituiti da una sequenza di operazioni che definiscono un’attività più complessa e sono utilizzati nella progettazione del software. Questo tipo di diagrammi UML derivano dagli Event Diagrams, dalle SDL e dalle reti di Petri e consentono di rappresentare processi paralleli e sincronizzati con l’esecuzione di cicli e condizioni. Inoltre, possiedono un fortissimo legame con lo Statechart Diagram, tanto da essere considerati una sua variante in quanto nella maggior parte degli stati di esecuzione, se non a tutti, viene associata un’attività.

Un Activity Diagram può essere associato:

  • Ad uno use case;
  • A una classe;
  • All’implementazione di un’operazione.

I diagrammi delle attività servono per la modellazione di workflow, per descrivere processi con una forte componente di computazione parallela oppure per rappresentare la logica interna di un processo di qualunque livello.

Il componente principale è l’Attività che si può definire in maniera informale come il “fare qualcosa”, cioè un processo del mondo reale o l’esecuzione di una procedura software (ad esempio un metodo di una classe). Un Activity è una esecuzione non atomica in uno state machine, ed è composta da action, da elaborazioni atomiche (che comportano un cambiamento di stato del sistema) e da un valore di ritorno.

Esempio di Activity Diagram

Oltre alle Attività le altre componenti sono le Transizioni che non hanno condizioni e sono innescate semplicemente dal termine dell’attività precedente. Si tratta quindi del flusso di controllo tra due action successive. Il flusso può essere diviso in percorsi alternativi attraverso i:

  1. Branch, diramazione con una transizione entrante e più di una uscente, con condizioni mutuamente esclusive;
  2. Merge, unione di due transizioni entranti ed una sola uscente, che termina il blocco condizionale aperto dal Branch.

Nel diagramma delle Attività il comportano parallelo viene rappresentato attraverso le Synchronization Bar, che possono essere di due tipi:

  1. Fork: consentono di dividere il flusso su più transizioni eseguite in parallelo;
  2. Join: servono per unificare più transizioni eseguite in parallelo.

Il numero delle fork e di join dovrebbero essere bilanciato. L’utilizzo di altri componenti come lo stato iniziale ed uno stato finale consente di suddividere il diagramma complessivo in piccole porzioni più piccole e meglio mantenibili.

Per indicare la responsabilità di ogni classe ad ogni specifica attività, è possibile utilizzate le swimlanes. Questo metodo consiste nell’organizzare il diagramma in “corsie verticali” separate da linee continue, in cui ogni “corsia” fa riferimento solo ad una specifica classe (o sottosistema).

Esempio di Activity Diagram per un dispositivo GPS

Nell’esempio appena mostrato è possibile notare due componenti:

  1. Dispositivo: che si occupa delle operazioni svolte da un dispositivo (smartphone, ecc.);
  2. Sensore GPS: che si occupa delle operazioni relative al sistema GPS.

La suddivisione delle responsabilità consente di dare maggiore chiarezza al diagramma rendendo l’activity diagram uno dei diagrammi UML più utilizzati.

Pubblicato in Informatica, Programmazione Taggato con: , , , , , , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*