Si stanno ripetendo, inoltrando, riavvolgendo e interrompendo l'estensione dei casi d'uso della base di base "Play Music" in un lettore musicale?

1

Sono confuso in uno scenerio, dove ho un lettore musicale che ha una playlist musicale. Ho bisogno di aiuto per il seguente utilizzo del lettore musicale.

Title :        Play the music playlist
Precondition:  Playlist not empty
.
.
.
Mainflow:

1) User adds music to a playlist.
2) User chooses the play option.
3) System plays the playlist.

Extensions:
.
.
.

Ora il lettore musicale mostra all'utente le opzioni di:

a) Pausa

b) Riproduci

c) Passa al brano successivo

d) Torna al brano precedente

e) Ripeti

Le opzioni di cui sopra stanno estendendo i casi di utilizzo dell'usecase principale sopra menzionati? o sono solo casi standalone da soli senza alcuna relazione con il database di base ("Play the music playlist") o se qualcuno di questi ha estendere la relazione con l'usecase di base. Ciò che mi fa pensare che stiano estendendo gli usecases è che aggiungono un comportamento opzionale alla base d'uso di base, ad esempio l'utente può premere il pulsante repeat, forward o rewind e quindi iniziare a continuare con la base di base "Play the music playlist". D'altra parte ciò che mi rende sospetto è che le opzioni possono essere attivate anche dopo che l'base base è stata eseguita completamente, ad esempio anche dopo che il sistema ha iniziato a riprodurre la playlist musicale l'utente può scegliere tutte le opzioni sopra menzionate (Ripeti, Riproduci, Metti in pausa , Avanti, Riavvolgi)

    
posta With A SpiRIT 09.05.2018 - 06:21
fonte

2 risposte

2

Innanzitutto, la precondizione "Playlist not empty" non sembra corrispondere al tuo flusso principale: se il tuo caso d'uso include l'operazione di aggiungere musica a una playlist, puoi effettivamente iniziare con una playlist vuota. Probabilmente manterrei la precondizione, ma rimuoverò il primo punto dalla descrizione del flusso principale.

Ma concentrati sulla tua domanda. Secondo la mia esperienza, utilizzare la modellazione dei casi (per descrivere gli scenari reali, non solo alcuni esercizi artificiali), dovrebbe solo identificare principali scenari di utilizzo e non immergersi troppo in profondità nei dettagli, almeno non a livello di diagramma.

Se immagino un vero dispositivo di riproduzione musicale, posso immediatamente immaginare quattro diversi scenari "interessanti":

  1. ascoltando musica

  2. scaricare o archiviare file musicali (se ha una memoria interna)

  3. gestione delle playlist

  4. registrazione di musica, se ha capacità di registrazione

Nota questi titoli descrivono serie disgiunte di attività. In un diagramma dei casi d'uso per un giocatore, non disegnerei più di questi quattro argomenti come bolle per esattamente questi scenari. Tutte le altre cose come il modo in cui si utilizza effettivamente il dispositivo, possono verificarsi in alcune descrizioni verbali a un livello di dettaglio inferiore, ma non come bolle come "estensione caso d'uso" o "caso d'uso include". Non perché queste bolle siano intrinsecamente sbagliate, ma poiché non vale la pena di mantenere quel livello di dettaglio in un diagramma del caso d'uso . Non dimenticare che i diagrammi dei casi d'uso sono solo uno strumento di comunicazione di alto livello, non uno strumento di programmazione di basso livello.

Se guardi i quattro casi d'uso che ho elencato sopra, diventa piuttosto ovvio che "Pausa", "Riproduci", "Avanti / Indietro", "Ripeti" sono solo dettagli del primo caso d'uso, poiché fanno chiaramente non appartiene a nessuno degli altri tre. Il posto migliore per loro è IMHO da qualche parte nella descrizione verbale del caso d'uso n. 1.

Tuttavia, se per scopi di esercizio, ti senti spinto a disegnarli in un diagramma come "use case extensions", quindi andare avanti, ma per la modellazione software reale vorrei evitare questo, per le ragioni sopra menzionate.

    
risposta data 09.05.2018 - 08:18
fonte
0

Considerando il tuo Mainflow, penso che le opzioni si presenteranno sotto diversi flussi principali:

  1. L'utente aggiunge musica alla playlist: Repeat
  2. Utente sceglie l'opzione di riproduzione: Forward and Backward
  3. Il sistema riproduce la playlist: Play, Pause
risposta data 09.05.2018 - 07:22
fonte