Diagramma di sequenza - destinatario sconosciuto di un messaggio

2

La nostra conferenza offre agli studenti un quiz per rivedere il materiale appreso durante l'ultima sessione di studio.

La risposta alle seguenti domande è stata dichiarata come "Sì":

"Il destinatario di un messaggio non deve essere conosciuto, quando il messaggio è stato inviato."

Questo mi ha davvero confuso, perché finora mi aspettavo che un diagramma di sequenza visualizzasse il flusso di dati in un sistema e che i dati venissero scambiati tra attori / mittenti. Non ha senso per me inviare dati a un obiettivo apparentemente arbitrario e sperare che per magia il suo ricevitore possa lavorare con i dati e tutto funzioni senza intoppi.

Qualcuno ha un esempio concreto e l'illustrazione di un caso del genere? Mi interessa in primo luogo l'aspetto di un simile diagramma di sequenza e, in secondo luogo, quale sarebbe un esempio del mondo reale.

Credo anche che la risposta sia corretta, perché il quiz non è cambiato dagli ultimi 5 anni circa.

    
posta Imago 06.07.2016 - 21:50
fonte

2 risposte

2

Modifica: ricevitore sconosciuto (per la dicitura aggiornata "il ricevitore non deve essere conosciuto")

Il diagramma di sequenza può utilizzare linee vita per ricevitori noti o sconosciuti. I ricevitori sconosciuti sono oggetti senza nome di una data classe. Questo articolo spiega la notazione grafica . La notazione ": class" è abbastanza comune e googling per i diagrammi di sequenza ti restituirà un sacco di esempi.

Un altro caso in cui il ricevitore è sconosciuto (almeno secondo la mia comprensione), sarebbe quando invii un messaggio di creazione che crea un'istanza di un nuovo oggetto (che non era noto al momento in cui il messaggio è stato avviato). Esempio qui .

Temporizzazione dei messaggi (per la formulazione iniziale "il ricevitore non deve sapere quando")

Per i messaggi asincroni asincroni , il principio è di evitare che i mittenti debbano attendere il feedback e che i ricevitori debbano agire immediatamente.

Quindi sì, il ricevente non ha bisogno di sapere quando il messaggio è stato inviato: è solo che deve agire sul messaggio (immediatamente per i messaggi sincroni o semplicemente per asincroni).

Il punto di vista del ricevitore è diverso dal punto di vista della lettura umana del diagramma: il diagramma nel suo complesso dovrebbe darti un'idea della sequenza e del tipo di interazioni (per vedere se potrebbero esserci ritardi o meno).

Qui puoi trovare uno scenario del messaggio per Apache-Sandesha con alcuni messaggi asincroni. A proposito, puoi anche mostrare sul diagramma che ti aspetti ritardi con le frecce non orizzontali (vedi esempio in questa domanda SO ).

    
risposta data 06.07.2016 - 21:58
fonte
1

Esiste una notazione specifica per l'invio di un messaggio a un destinatario la cui identità è sconosciuta. Si chiama Lost Message. È disegnato come un messaggio normale ma, invece di finire su una linea di vita, finisce in una sfera solida.

Questo è interpretato come un messaggio ad un ricevitore esterno all'ambito del diagramma, la cui identità è sconosciuta o non pertinente.

C'è una notazione simile per un messaggio trovato, da una palla a una linea di vita, che indica un messaggio da un mittente la cui identità è sconosciuta o non pertinente.

    
risposta data 01.09.2016 - 22:29
fonte

Leggi altre domande sui tag