Domanda riguardante gli attori in un diagramma dei casi d'uso

2

OK, quindi ho questa domanda sui compiti per cui ci viene fornita una descrizione del sistema piuttosto complessa e ho bisogno di creare diversi diagrammi UML che descrivono il sistema descritto.

Ho un problema con la progettazione del diagramma Use-Case per questo. Ecco una descrizione molto semplificata del sistema:

The system being described is one that simulates jobs being performed by a multi processor machine. The simulation system is comprised of several components including:

  • Manager
  • Simulator
  • Scheduler
  • Parser
  • etc.

A user opens the simulation system by defining a configuration file (including job descriptions) into the manager, and hitting "run". When the simulation finishes, a statistics file is generated (and can be presented to the user)

Il problema che ho con il diagramma del caso d'uso è che cosa metto come attori? Per quanto ne so, un attore dovrebbe essere un utente umano, un componente hardware esterno o un software esterno.

Seguendo questa logica, il caso d'uso per il sistema di cui sopra è eccessivamente semplice, è solo un attore etichettato come "utente" che interagisce con un'azione che verrà denominata "simulazione".

Ma mi sembra che forse dovrei mettere tutti i componenti del sistema come attori.

Qualcuno ha qualche idea? Grazie!

    
posta user475680 16.11.2015 - 16:23
fonte

4 risposte

3

Poiché si tratta di un compito a casa, la cosa migliore che puoi fare è chiedere l'input al tuo istruttore. La persona che ti assegna ha delle aspettative, proprio come sul posto di lavoro i tuoi colleghi, manager e clienti hanno aspettative. Le aspettative devono essere definite dalla persona che riceve il lavoro.

Detto questo, posso fornire la mia opinione su come strutturare un diagramma del caso d'uso per questa particolare situazione.

La prima cosa che farei è identificare le operazioni di fronte esterno che il tuo sistema di simulazione espone. Il testo della tua domanda ne identifica alcuni: carica un file di configurazione, esegui la simulazione, visualizza le statistiche. Ce ne sono altri? Puoi mettere in pausa le simulazioni? O regolare la configurazione nel mezzo di una simulazione? O esportare le statistiche in vari formati? Qualsiasi altra cosa che il tuo sistema espone a un utente o al sistema esterno dovrebbe essere data una "bolla" di caso d'uso.

Successivamente, definirei le relazioni tra i casi d'uso. Le tre relazioni che appaiono in un diagramma del caso d'uso sono estese, incluse ed ereditate. La relazione di estensione consente a un caso d'uso di continuare oltre il caso d'uso di base. Se il caso d'uso B estende il Caso A, tutti i passaggi in Caso d'uso A sono completati prima dell'esecuzione di Use Case B. La relazione include le dipendenze e consente di includere un comportamento da un caso d'uso in un altro. Se Use Case B include Use Case A, allora l'operazione Use Use A è disponibile come parte Use Use B, ma non indica dove durante l'esecuzione di Use Case B viene utilizzato o se è richiesto o meno. Infine, l'ereditarietà consente un caso d'uso che eredita alcune delle operazioni di un caso d'uso diverso ma modifica o aggiunge passaggi aggiuntivi.

In terzo luogo, identificherei tutti gli attori sul caso d'uso. Questi sarebbero utenti umani o sistemi esterni che interagiscono con il sistema in fase di progettazione. Potrebbe essere saggio prendere in considerazione i ruoli. Gli umani con ruoli diversi possono avere un accesso diverso alle funzioni.

Infine, identificherei le relazioni tra attori. Un attore può essere un superset di un altro attore, e questo può essere indicato sul diagramma, rendendolo più pulito e più facile da leggere.

Scott Ambler ha un buon articolo sull'uso dei diagrammi dei casi d'uso e un articolo sul riutilizzo negli schemi dei casi d'uso . Trovo molto del suo lavoro utile quando si considera la modellazione e la documentazione dei sistemi software.

Dopo tutto questo, dovrei raccomandare ancora una volta di andare dalla persona che userà il tuo diagramma dei casi d'uso - in questo caso, l'istruttore che ti classifica - per scoprire esattamente di cosa hanno bisogno da te. In UML Distilled , Martin Fowler quasi scoraggia l'uso di Use Case Diagrams a favore di altre rappresentazioni tabulari o testuali di utilizzo casi. I diagrammi non hanno tanto valore quanto altre descrizioni più dettagliate. I diagrammi dei casi d'uso non sono cose che tendi a vedere o utilizzare nell'industria, ma dovresti essere consapevole della loro esistenza e di come leggerli e crearli se ti viene chiesto di farlo.

    
risposta data 16.11.2015 - 18:51
fonte
1

Gli attori interagiscono con i casi d'uso. Quindi il tuo attore utente interagisce con diverse attività che possono eseguire con il simulatore (configura, esegui, genera report, esporta dati, ecc.).

Il diagramma dei casi d'uso dovrebbe mostrare come gli altri attori (se esistono) interagiscono con i casi d'uso con cui l'attore utente interagisce.

    
risposta data 16.11.2015 - 18:16
fonte
0

Per prima cosa, identifica l'argomento per il quale vuoi descrivere i casi d'uso. Dalla tua descrizione, presumo sia necessario disegnare casi d'uso per il sistema di simulazione nel suo complesso (e non per ciascuno dei "manager" di componenti, "simulatore" ecc.). In tal caso, l'utente è l'unico attore.

Un caso d'uso deve produrre un risultato che ha un valore per l'attore. Quindi 'Crea configurazione' non sarebbe un buon caso d'uso. Mi sembra che l'unico risultato valido sia il file delle statistiche. A mio avviso, esiste un solo caso d'uso, "Esegui simulazione", che copre tutti i passaggi, inclusa la creazione della configurazione, l'esecuzione della simulazione e la visualizzazione delle statistiche.

Per riassumere, penso che tu abbia perfettamente ragione: un attore, un caso d'uso.

    
risposta data 16.11.2015 - 22:10
fonte
-1

Un attore non deve essere un utente umano, può anche essere un sistema stesso . Nel tuo caso, il sistema che esegue effettivamente le simulazioni può essere considerato un attore stesso perché interagirà anche con i casi d'uso ('il sistema' eseguirà una simulazione)

    
risposta data 16.11.2015 - 17:18
fonte

Leggi altre domande sui tag