Quando abbiamo iniziato a parlare di Use Case Diagrams,
abbiamo detto che è possibile il riutilizzo di un Use Case Diagram e si
è detto che ciò era fattibile utilizzando due modi: tramite l'inclusion
e tramite l'extension.
L'inclusion e la extension
rappresentano una sorta di relazioni tra use case. In effetti, esistono
anche altri due tipi di relazioni applicabili agli Use Cases : le generalizzazione (Generalization) e il raggruppamento (Grouping).
Ma, proviamo a definire meglio tutte e quattro queste relazioni:
Inclusion
L'inclusion permette il riutilizzo di un use case all'interno di un
altro use case. Per rappresentare graficamente una inclusion, si
utilizza il simbolo utilizzato per la dipendenza tra classi - una linea
tratteggiata che connette le classi con una freccia che punta sulla
classe da cui dipende l'altra classe. Appena sotto questa linea, si
aggiunge uno stereotipo - la parola <<include>> racchiusa, come si vede, tra doppie parentesi formate dai simboli "<<" e ">>"
Extension
L'extension permette di creare un nuovo use case aggiungendo dei passi in più ad un use case già esistente.
Anche qui una linea tratteggiata con una freccia finale viene
utilizzata per rappresentare l'extension, insieme con uno stereotipo
che mostra la parola <<extends>> tra parentesi. All'interno dell'use case base, il punto di extension appare sotto il nome dell'use case stesso.
Generalization
Le classi, come abbiamo visto, possono ereditare le caratteristiche di
un'altra classe (classe padre). Allo stesso modo, tale ragionamento è
applicabile agli use case. Nella eredità tra use case, lo use case
figlio eredita il comportamento ed il significato dal padre ed in più
aggiunge le sue caratteristiche specifiche. Anche in questo caso vale
lo stesso ragionamento applicato nel caso delle classi: e' possibile
applicare lo use case figlio, laddove è possibile applicare il padre.
La Generalization viene rappresentata allo stesso modo con cui viene
rappresentata per le classi - ovvero con una linea continua che ha un
triangolo aperto che punta al padre.
La relazione di Generalization può esistere anche tra actors.
Grouping
In alcuni use case diagrams, ci potrebbero essere molti use case e,
magari, si desidererebbe organizzare il diagramma in modo migliore. Una
tale situazione si può verificare quando si sta progettando un sistema
che consiste di più sottosistemi.
Il modo più semplice è di organizzare a gruppi gli use case che in
qualche modo siano correlati (qualcosa di simile ad un tabbed folder).