I Class Diagrams
forniscono una visione statica delle classi che intervengono nella
creazione di un Sistema. Il tipo di diagramma che andiamo a vedere
adesso presenterà, invece, una visione dinamica e mostrerà come il
sistema e le relative classi cambino con il passare del tempo.
La visione statica aiuta gli analisti nella comunicazione con il
cliente. La visione dinamica del Sistema, d'altra parte, fornisce agli
analisti un valido mezzo per instaurare un dialogo chiaro con il team
degli sviluppatori ed aiuta gli sviluppatori stessi a creare i
programmi.
Esattamente come il Class Diagram rappresenta un ottimo modo per
stimolare il cliente a parlare sul sistema dal suo punto di vista, lo Use Case Diagram
rappresenta un eccellente strumento per stimolare dei potenziali utenti
a intervenire con le loro critiche ed opinioni sulla funzionalità che
il Sistema dovrà avere.
Non è sempre facile per gli utenti riuscire a spiegare tecnicamente
come essi intendano costruire il sistema desiderato; infatti, accade
sempre più spesso che essi in realtà sappiano esprimersi meglio dal
punto di vista pratico che non dal punto di vista prettamente tecnico.
Lo Use Case (Caso d'uso) è allora lo strumento ideale per aitare a "rompere il ghiaccio".
Le interviste
con gli utenti iniziano facendo uso della terminologia del dominio ma
poi deviano ed utilizzano la terminologia del cliente. I risultati
iniziali delle interviste devono portare alla definizione di Actors
(attori) e use cases ad alto livello che descrivano i requisiti
funzionali in termini generali. Già questa informazione è in grado di
fornire i limiti e gli scopi del sistema che si intende sviluppare.
Nelle interviste successive con gli utenti si cercherà di approfondire
maggiormente tali requisiti, portando così alla definizione di modelli
use case che soddisfino le relazioni di inclusione e estensione.
In questa fase è importante la comprensione del dominio, poiché se si
hanno lacune in tal senso potrebbe accadere che si sviluppino troppi
use cases e che ciò possa provocare un rallentamento nel processo di
analisi.
Gli Use Case sono collezioni di scenari che riguardano l'utilizzo del
sistema in cui ogni scenario descrive una sequenza di eventi.
La sequenza di eventi descritta da uno Use Case viene iniziata da una
persona, o da un altro sistema o da un pezzo di hardware o ancora dal
passare del tempo. Le entità che iniziano la sequenza di eventi sono
definiti Actors. Il risultato della sequenza deve portare a qualcosa di
utile all'actor che ha iniziato la sequenza o, anche, ad un differente
actor.
È anche possibile riutilizzare gli use cases. Per far ciò si possono usare due modi:
Inclusion: Questo modo permette di
utilizzare i passi appartenenti ad una sequenza di un use case e
inglobarli in un altro use case.
Extension: Tramite questo
metodo è possible creare un nuovo use-case semplicemente aggiungendo
dei passi ad un use case esistente.
Vedremo ora come rappresentare un modello Use Case e visualizzare le relazioni tra più use cases.