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.