Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Use Case Diagram

Proviamo con un esempio pratico a progettare un sistema automatico
Proviamo con un esempio pratico a progettare un sistema automatico
Link copiato negli appunti

In questo esempio si cercherà di modellare, tramite gli use case diagrams, una macchina self-service per alimenti e bevande. La principale funzione di una siffatta macchina è, ovviamente, quella di permettere ad un utente di acquistare un prodotto alimentare (cioccolata, succo di frutta, ecc.).
Ogni utente che interagisca con la macchina potrà, certamente, dire che la principale funzione (e quindi il principale use case) della macchina stessa potrà essere definita come : "Acquisto di un prodotto".

Proviamo ad esaminare ogni possibile scenario all'interno di questo use case. Gli scenari che ne derivano saranno, naturalmente, scaturiti dalle conversazioni con l'utente.

Lo use case "Acquista un prodotto"

L'actor in questo use case è il cliente.
Il cliente vuole comprare alcuni dei prodotti offerti dalla macchina self-service. Per prima cosa egli dovrà inserire delle monete all'interno della macchina, poi selezionare il tipo di prodotto (o più di uno, se la macchina lo consente) e quindi ricevere dalla macchina la lista dei prodotti scelti prima di procedere all'acquisto vero e proprio. Lo use case per tale tipo di scenario può essere il seguente:

figura

Ma, se ci si pensa un attimo più approfonditamente, vengono alla mente altri tipi di scenari. è possibile che la macchina self-service non sia in grado, ad un certo momento, di fornire uno o più prodotti oppure che la macchina non abbia a disposizione l'esatto numero di monete per fornire il resto al cliente.
Ci si deve chiedere: Ci è stato chiesto di gestire questi tipi di scenari?

Se la risposta è affermativa, torniamo un attimo indietro al momento in cui il cliente inserisce le monete nella macchina ed effettua la selezione. Supponiamo allora che la macchina, a questo punto, non sia in grado di soddisfare la richiesta del cliente. In tal caso sarà preferibile presentare un messaggio al cliente che lo informi che la macchina non ha come disponibile il prodotto scelto e che permetta al cliente stesso di effettuare una nuova scelta o richiedere la restituzione delle monete.

Se, invece, si è verificato lo scenario in cui è stato fornito un errato ammontare di monete, si suppone che la macchina restituirà l'importo originale di soldi al cliente. La precondizione, in tal caso, è il cliente (affamato o assetato!) e la post condizione è il prodotto acquistato o la restituzione dei soldi.

Quanto descritto rappresenta lo scenario di un use case dal punto di vista di un utente (e quindi di un actor). Ma potrebbero esserci anche altri tipi di actors. Per esempio, un fornitore di prodotti deve essere in grado rifornire la macchina e il proprietario della macchina deve poter recuperare le monete accumulate. Questo ci induce a creare almeno altri due use case che chiameremo: "Ricarica la Macchina" e "Ritira le Monete". Andiamo ad esaminarli entrambi simulando un' intervista con il fornitore e con il proprietario.

Lo use case "Ricarica la Macchina"

Le azioni che un fornitore dovrà compiere ad intervalli di tempo regolari (diciamo una o due settimane) sono:

  • Il fornitore disattiva la macchina
  • Apre il contenitore dei prodotti
  • Riempie ogni scompartimento fino alla massima capacità (Si potrebbe anche supporre che il fornitore riempia la macchina tenendo conto delle maggiori preferenze dei clienti)
  • Alla fine, il fornitore chiude il contenitore dei prodotti e riattiva la macchina

In questo caso, potremmo dire che la precondizione è rappresentata dal trascorrere dell'intervallo di tempo tra una ricarica e l'altra e la post condizione è data dal fatto che il fornitore ottiene un nuovo insieme di potenziali clienti.
Lo use case diagram, in questo caso, è rappresentato dalla seguente figura:

figura

Lo use case "Ritira Le Monete"

Il responsabile per questo Use Case è il proprietario della macchina. In effetti, tuttavia, questi potrebbe coincidere con il fornitore. I passi che il proprietario della macchina deve fare sono uguali a quelli del fornitore ma la differenza consiste nel fatto che il proprietario non ha a che fare con i prodotti ma con i soldi.
Quando l'intervallo di tempo tra un ritiro e l'altro è trascorso, il proprietario della macchina ritira l'ammontare di monete che si è depositato nella macchina
La post condizione, in tal caso, è rappresentata dai soldi ritirati dal proprietario.

Lo use case che descrive tale scenario è, dunque, rappresentato nella figura seguente:

figura

Molti dei passi necessari allo Use Case "Ritira le monete" (disattivare la macchina, aprire il contenitore, ecc.) sono uguali a quelli visti per lo use case "Ricarica la macchina". Questo è un buon motivo per avvalerci dell'utilizzo dell'inclusion. Combiniamo allora i due passi: Disattiva la macchina e apre il contenitore in uno use case che denominiamo: "Disattiva la macchina". Alla stessa maniera definiamo un nuovo Use case che chiamiamo "Riattiva la Macchina" che inglobi i passi di chiudere il contenitore e riattivare la macchina.
Otterremo:

figura

Cerchiamo ora di raffinare ulteriormente i nostri use cases.

Lo use case "Ricarica la macchina" potrebbe essere la base per un altro use case: "Ricarica la macchina in base alle vendite". Qui, il fornitore può riempire gli scompartimenti non più in modo uniforme per ogni prodotto ma in base alle vendite dei singoli prodotti. Questo rappresenta un buon esempio di extension di un use case.

Dopo l'inclusion e l'extension così definiti, lo use case "Ricarica la macchina" può diventare:

figura

Possiamo anche utilizzare la generalizzazione guardando gli actors: fornitore e proprietario. Sarà possibile definire un Actor più generico (Agente del Fornitore) che inglobi molte delle caratteristiche del Proprietario e del Fornitore.
Tale generalizzazione è mostrata nella figura che segue:

figura

Un esempio di generalizzazione di un Actor

figura

La figura sopra mostra il diagramma finale completo per la macchina self service.


Ti consigliamo anche