Come mostrare i tentativi nel diagramma di sequenza

3

Sto disegnando un diagramma di sequenza per un progetto di integrazione di grandi dimensioni in cui un sistema avvierà la chiamata REST a un altro sistema e c'è un proxy nel mezzo che passerà attraverso la richiesta come

A- > b- > C

dove b è un sistema di passaggio. Ho mostrato 200 restituiti da C- > b- > A. Mi chiedo come faccio a descrivere quando C restituisce 500 o c'è IOException e A ha bisogno di riprovare n no di volte prima che si arrenda.

    
posta Charu Khurana 21.07.2015 - 21:30
fonte

2 risposte

6

Un modo è utilizzare Fragments come questo:

Ma onestamente: il codice è molto più chiaro per tali scopi. Evitare l'uso di una rappresentazione grafica in cui alcune righe di codice (pseudo) possono chiarire ciò che 1000 immagini offuscano. Una volta (negli anni '80) ho anche pensato che programmare graficamente sarebbe stato un vantaggio. Ma ora sono un vecchio saggio e so che questo è stato un pio desiderio. È semplicemente stupido; -)

Per quanto riguarda il IOException questo dipende strongmente dal comportamento di runtime. Di solito questo è un messaggio inviato da c che è not un messaggio di ritorno, ma produrrà uno stack di chiamate in a . Questo può essere inserito in alt Fragment .

    
risposta data 21.07.2015 - 23:03
fonte
2

Ho visto le università cercare di coprire ogni singola possibile eccezione e condizione di errore in ogni caso d'uso e diagramma di sequenza. Il risultato è sempre stato il ritardo nella consegna, le ore trascorse in revisione e, alla fine, un beneficio molto limitato per il progetto.

Un modo di pensarla a proposito di "Black Swan" di N. Taleb è che ci sono troppi possibili disastri che aspettano di accadere; il software anti-virus rende la macchina inutilizzabile, il data center potrebbe allagarsi, l'amministratore ha dimenticato di pagare la bolletta dell'elettricità, la società viene bombardata da un concorrente ecc. ecc.

Un altro modo per pensarci è che esistono solo eccezioni.

  1. Il servizio non è disponibile.
  2. Il servizio non è riuscito prima che la richiesta possa essere elaborata.
  3. Il servizio non è riuscito dopo l'elaborazione della richiesta.

Mentre i casi 2 e 3 hanno risultati molto diversi, di solito è impossibile dire la differenza senza ulteriori indagini manuali.

    
risposta data 22.07.2015 - 09:46
fonte

Leggi altre domande sui tag