Cercando di capire il diagramma di sequenza

1

Sto cercando di capire due diagrammi di sequenza che ho trovato nel corso SE all'università di Washington. Puoi confermare se la mia comprensione è corretta?

Diagramma 1:

Secondolamiacomprensione,questodiagrammadisequenzadescriveilprocessodispedizionedegliordiniaunodeiduedistributori.Primaditutto,cisaràunmessaggiodispedizioneperundeterminatoordine(oggettodellaclassedell'ordine).Dopodichéperogniarticoloinquestoordine(loop),seilvalorediquestoarticoloèsuperiorea1000,faremoildistributoreattento(uncertooggettodellaclassedistributore)perinviarequestoordine.Inaltreparole,invieremounmessaggioochiameremolafunzionedispedizionedell'oggettoattentodellaclassedeldistributore.Altrimenti,seilvaloreèinferiorea1000,l'altrodistributore"regolare" invierà questo elemento.

Diagramma 2:

Capiscochequestodiagrammadescrival'operazionediacquistodialcuniarticolidaalcunistorefront.Peralcunistorefront(oggettodellaclassestorefront,adesempioAmazon),cisaràuncicloperogniarticoloostockdisponibileinquestostorefront,ogniarticoloverràaggiuntoaundeterminatooggettodiclassedelcarrelloequestooggettodelcarrellochiameràundeterminatooggettodiinventarioperprenotarequestooggetto(chiamailmetodoreservethisitemdiciòcheappartieneaquestooggetto).Successivamente,questooggettoinventarioriconosceràl'oggettocarrelloel'oggettocarrelloriconosceràl'oggettostorefrontperl'aggiuntadiquestoelemento.Successivamente,l'oggettostorefrontinvieràunmessaggioperl'oggettocarrellopereffettuareilcheckoutdiquestiarticolichevengonoaggiuntialcarrellodalciclofor.Successivamente,questooggettodelcarrelloinvocheràlasuafunzioneprocessorderperelaborarel'ordine.Successivamentequesta"funzione autonoma" invocherà il metodo confirmOrder dell'oggetto storefront. Successivamente, lo storefront riconoscerà questo messaggio, il che significa che l'ordine è stato confermato e quindi un ordine di conferma verrà inviato dall'ordine del carrello per confermare la procedura di checkout. Infine, l'oggetto carrello invocherà la funzione placeItemInOrder dell'oggetto inventory per posizionare gli elementi selezionati in ordine.

Per favore qualcuno mi corregga se c'è qualche incomprensione. Grazie

    
posta Ahmed Mohamed 10.11.2018 - 20:30
fonte

1 risposta

2

Diagramma 1:

Sì, la tua comprensione dei frammenti combinati è corretta:

  • Il operatore loop garantisce la ripetizione. Nota che in linea di principio il vincolo di iterazione tra (parentesi quadre) dovrebbe essere un booleano
  • Il operatore alt indica una scelta, secondo le espressioni di guardia.

Diagramma 2:

Sì, la tua comprensione è (quasi) corretta. Hai individuato correttamente il diverso tipo di messaggi , inclusi i messaggi automatici e i messaggi di ritorno.

Alcune osservazioni comunque:

  • Un piccolo dettaglio: le semplici punte delle frecce indicano i messaggi sincroni: il chiamante attende il messaggio di risposta. Le punte delle frecce aperte indicano un asincrono, il che significa che il chiamante non aspetterà.
  • L'oggetto della classe StoreFront sembra rappresentare l'interfaccia utente con l'utente finale. Quindi il AddItem non è certamente invocato per tutti gli articoli disponibili, ma molto probabilmente solo su un'azione da parte dell'utente (ad esempio, fare clic su un pulsante di acquisto). Questo è anche il motivo per cui non esiste un vincolo di loop: il ciclo termina quando viene richiamata la cassa.
risposta data 10.11.2018 - 23:47
fonte

Leggi altre domande sui tag