Architettura pulita: come dividere i casi d'uso? (Gestire le dipendenze del caso d'uso)

0

Sto cercando di capire l'architettura pulita come spiegato da Zio Bob.

La mia applicazione richiede a un utente di eseguire un test. Un test consiste in una raccolta di domande a cui un utente deve rispondere. Un file audio viene riprodotto per ogni domanda. Dopo il test all'utente viene fornito un risultato del test.

Possibili casi d'uso?

  • Fai un test
  • Rispondi a una domanda
  • Visualizza i risultati del test

Domande:

  • "Rispondere a una domanda" è un caso d'uso separato? O è solo parte del caso d'uso "fai un test"?
  • "Visualizza i risultati del test" è un caso d'uso? Prendi nota, il risultato viene visualizzato automaticamente dopo il test: non è qualcosa che l'utente sceglie di fare
  • Suppongo che "Riproduci file audio" non sia un caso d'uso in quanto viene riprodotto automaticamente su ogni domanda e viene gestito dall'app, non dall'utente?
posta HPage 09.04.2017 - 16:03
fonte

3 risposte

2

Requisiti

My application requires a user to do a test. A test consists of a collection of questions that a user needs to answer. An audio file is played for every question. After the test, the user is provided with a test result.

Caso d'uso

In base ai requisiti sopra riportati, ci sarebbe solo un caso d'uso: fai il test . E, finora, un attore: l'utente .

Rispondi alle domande e visualizza i risultati farà parte del flusso di lavoro del caso d'uso.

Infine, l'audio è solo un dettaglio dell'implementazione .

La documentazione sull'uso dei casi

Oltre al diagramma, anche il caso d'uso dovrebbe essere documentato. La documentazione fornirà le informazioni che non possono essere disegnate nel diagramma.

Ad esempio:

Use case: Do a test

Main actor: User

Brief:

The user do the test. Each question comes with audio and text.

Triggers: - The user select a test from the list.

Preconditions: - The test is presented to the user

Postconditions: - The test is done and closed. A result view is shown.

Workflow:

  1. The system provides the user with a test.

  2. The user checks the answers.

  3. The user sends the answers and wait for the results.

  4. The system evaluates the test.

  5. The system shows the result of the eval.

Extensions

2-3:

a. Cancel the test

  1. The user cancel the test

  2. The system discard the test

4:

a. Repeat the test

  1. The system allow the user to repeat the test

Nota :

Ho appena descritto l'unico caso d'uso che ho visto nella domanda. Tuttavia, presumo che il tuo sistema ne abbia ancora di più.

    
risposta data 11.04.2017 - 01:15
fonte
1

Is "answer a question" a separate use case? Or is it just part of the "do a test" use case?

È un passaggio in "fai un test" che potrebbe essere esteso a un caso d'uso a livello di sottofunzione.

Is "view test results" a use case? Take note, result is displayed automatically after the test - it is not something the user chooses to do

Come "rispondi a una domanda". A meno che non ci sia un'opzione per accedere e controllare i risultati dei precedenti tentativi.

I assume "Play audio file" is not a use case as this is played automatically on every question and is handled by the app, not the user?

Allo stesso modo è un passo in "rispondi a una domanda". Se necessario, puoi estenderlo in un altro "Uso del file audio" caso d'uso di basso livello che descrive come System cerca il file corretto, cosa fa quando nessun file trovato o diffusori su muto ecc.

    
risposta data 10.04.2017 - 08:51
fonte
0

In molte tecniche che usano casi d'uso, ci sono comunemente più livelli di casi d'uso, per esempio una definizione ha cinque livelli di casi d'uso (questa non è l'unica definizione del livello dei casi d'uso, molti progetti potrebbero voler personalizzare i livelli per il loro particolare scenario / processo):

  • Cloud: Very high level, involve multiple user goals, e.g. "Operate a Biospecimen Repository"
  • Kite: High level, a process that takes place over several hours, days or weeks involving many steps "Find Usable Samples"
  • Sea: User Goal, something the actor is trying to get done - "one person, one sitting", involves several underwater or clam level
  • Underwater: Needed to accomplish user goals, typically can be used and reused - "Save as a File"
  • Clam: Not usually written out in detail as a use case, "insert record into database"

Alcuni casi d'uso sono scritti a un livello generale, in cui l'utente naviga in una sequenza di più pagine / finestre di dialogo, mentre altri sono casi d'uso che comprendono solo una pagina / interazione.

Come comunemente usato, il caso d'uso a livello "clam" (come riprodurre un file audio) spesso non viene annotato perché spesso sono considerati dettagli di implementazione di basso livello. Potrebbero, tuttavia, essere citati da un caso d'uso di livello più elevato (ad esempio, un caso d'uso di alto livello potrebbe richiedere la riproduzione di un suono alla fine del test).

Questi casi d'uso di alto livello possono essere associati a test di integrazione, mentre casi d'uso di livello inferiore possono essere associati al test funzionale. I livelli di clam sono spesso solo sottoposti a un test unitario.

    
risposta data 12.04.2017 - 05:27
fonte

Leggi altre domande sui tag