Abbiamo tutti gli elementi?
Prendendo la definizione di Ivar Jacobson, l'originale inventore della modellazione del caso d'uso (pagina 4 del suo e-book gratuito) :
A use case is all the ways of using a system to achieve a particular
goal for a particular user.
Taken together the set of all the use cases gives you all of the
useful ways to use the system, and illustrates the value that it will
provide.
Per il momento, hai identificato l'attore principale (il capo) e alcuni potenziali casi d'uso, ma non ci hai detto nulla sull'avvio più importante della nostra analisi: qual è il sistema preso in considerazione?
Quale livello di dettaglio stai cercando?
Cockburn ha elaborato casi d'uso (nel suo libro "Scrivere casi d'uso efficaci"):
We have seen that both the goals and the interactions in a scenario
can be unfolded into finer and finer-grained goals and interactions.
Ha identificato che esistono diversi livello di obiettivi (e quindi, diversi livelli di utilizzo):
- obiettivi di alto livello (li chiama cloud e kitten): questi casi d'uso forniscono una panoramica di altissimo livello degli obiettivi del sistema (ad esempio gestiscono un ristorante, suddivisi per gestire la stanza e gestiscono la cucina) e ampie categorie di attori ( es. personale, clienti, fornitori)
- obiettivi dell'utente (li chiama vedere il livello): questo è in genere il "livello di cibo del cuoco"
- obiettivi delle sottofunzioni (egli chiama l'indaco, dato che ora sei sotto il livello di visibilità): questa è un'ulteriore scomposizione degli obiettivi dell'utente.
Qual è lo scopo del tuo caso d'uso?
La prossima domanda è a cosa serve il tuo caso:
- vuoi sapere quale caso d'uso inserire nel diagramma UML?
- o vuoi descrivi i casi d'uso più in dettaglio, per poter scrivere le specifiche.
Non sapendo di quale sistema stiamo parlando, quale sia il tuo scopo e il livello di dettaglio di cui hai bisogno, è difficile valutare oggettivamente quale sarebbe l'alternativa migliore per te.
Inoltre, Jacobson e altri raccomandano di cercare il caso d'uso considerando il valore. Naturalmente, non è il valore di interesse per noi, ma è il valore del caso d'uso per l'utente.
Discussione / opinione informale
Spontaneamente, se guardassi a livello di utente, vedrei "cucinare cibo" come candidato principale per il caso d'uso. Venendo da uno sfondo ERP, vedrei Pasta e Pizza solo come entità / dati, così come le ricette per renderli (se non hai familiarità con le industrie di cottura o di processo, l'equivalente di produzione per una ricetta sarebbe una BOM + un percorso)
Se ci fosse un requisito per descrivere la differenza di processo tra "cook Pizza" e "cook Pasta", li presenterei come una sub variante in un caso d'uso simile a Cockburn (scenario). Ma nulla ti impedisce di mostrare tutti e tre i rapporti di generalizzazione.