Domanda

Ho qualche problema a capire come creare diagrammi di sequenza di sistema, poiché non comprendo completamente perché in alcuni casi si dovrebbero definire le operazioni per il sistema -> attore e in altri no. Ecco un esempio:

Supponiamo che il sistema sia un biglietto cinematografico e l'attore è un cliente che desidera acquistare un biglietto.

1) The User tells the System that wants to buy some tickets, stating his client number.
2) The System confirms that the given client number is valid.
3) The User tells the System the movie that wants to see.
4) The System shows the set of available sessions and seats for that movie.
5) The System asks the user which session/seat he wants.
6) The User tells the System the chosen session/seat.

Questo sarebbe convertito in:

a) -----> tellClientNumber(clientNumber)
b) <----- validClientNumber
c) -----> tellMovieToSee(movie)
d) <----- showsAvailableSeatsHours
e) -----> tellSystemChosenSessionSeat(session, seat)

So che quando abbiamo a che fare con le SDD siamo ancora lontani dalla codifica. Ma non posso fare a meno di provare a immaginare come sarebbe stato se fossi stato per convertirlo subito per codificare:

posso capire 1) e 2). È come se fosse un metodo C#/Java con la seguente firma:

boolean tellClientNumber(clientNumber)

Quindi ho messo entrambi sull'SDD.

Quindi, abbiamo la coppia 3) 4). Posso immaginarlo come qualcosa come:

SomeDataStructureThatHoldsAvailableSessionsSeats tellSystemMovieToSee(movie)

Ora, il problema:

Da quello che ho capito, il mio docente dice che non dovremmo fare un'operazione sul SDD per 5) Come dovremmo mostrare solo operazioni da Actor al System e quando il sistema ci presenta i dati (come in c)) o convalida dati inviati (come in b)).

Lo trovo strano, come se provi a immaginare questo come un'app DOS in cui devi mettere in sequenza il tuo input, ha senso fare una freccia anche per 5). Perché è sbagliato? Come dovrei provare a visualizzare questo?

Grazie

È stato utile?

Soluzione

Non hai definito quale sia il tuo sistema e non sei chiaro in quale fase del design ti trovi, quindi è un po 'difficile rispondere.

Se invece immagini qualcosa di simile ai sistemi per la prenotazione di treni sul Web, lo schermo che mostra il Times ha solo caselle di controllo accanto a loro affinché l'utente selezioni quale desidera, piuttosto che il sistema che spinge l'utente: l'utente avvia il successivo Passa al ricevimento dei dati. Quindi è perfettamente possibile per un'interfaccia utente consentire all'utente di selezionare solo i dati senza un suggerimento extra.

Se stai eseguendo la progettazione preliminare di un sistema, prova a evitare ipotesi sulle interfacce utente e includi solo casi d'uso essenziali. Avresti bisogno del caso di utilizzo "Stampa un prompt per l'utente" se stavi progettando il componente dell'interfaccia utente DOS; Non sarebbe un caso d'uso in un sistema basato sul Web.

Quindi il problema non è che hai alcuni casi d'uso con interazioni tra l'utente e il sistema e alcuni con nessuno. Il problema è che alcuni dei casi d'uso assumono un particolare dettaglio di implementazione dell'interfaccia utente che non è essenziale per il sistema di funzionare e non dovrebbe essere nel design di alto livello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top