Come includere condizioni nei diagrammi di sequenza UML?


13

Mi piace disegnare un diagramma di sequenza UML per visualizzare la sequenza di azioni e interazioni di diverse parti del mio sistema (penso che abbiano chiamato attori).

Tuttavia, devo includere if then elsedichiarazioni qui. Faccio qualcosa di sbagliato? Posso usare le istruzioni if ​​condizionali nel mio diagramma di sequenza UML? Come?

Risposte:


18

Come in molti tipi di diagrammi UML, è possibile utilizzare le protezioni per indicare una condizione. Una guardia è un'espressione booleana che puoi scrivere su una transizione.

Ecco una foto con un esempio: inserisci qui la descrizione dell'immagine

Notare la condizione "[pastDueBalance = 0]".

È inoltre possibile utilizzare i frammenti combinati per una logica condizionale più complicata. Vedi questo simpatico articolo msdn per ulteriori informazioni.


4

Ci sono quattro possibilità che conosco (con potenza crescente):

  1. Il più semplice è usare solo protezioni , che sono espressioni booleane semplici, senza effetti collaterali.
  2. Con i frammenti combinati (vedere ad esempio pagina 54), è possibile raggruppare gruppi di messaggi per mostrare il flusso condizionale in un diagramma di sequenza (alternative, opzioni, loop)
  3. Molto più potente è l' Object Constraint Language (OCL) , che può ulteriormente quantificare (per tutti, esiste) e offre un linguaggio di contratto a pieno titolo (DesignBy-) (che è quasi espressivo quanto la logica completa del primo ordine).
  4. Il modo più potente è esprimere il tuo vincolo usando un linguaggio di azione UML da UML eseguibile (xUML) conforme alla semantica di azione UML.

La mia scelta sarebbe la meno potente che sia ancora sufficientemente esprimibile per quello che vuoi fare. Ad esempio, le azioni in 4. possono avere effetti collaterali, il che li rende molto più fragili di OCL.


2

Mentre i diagrammi di sequenza sono perfetti per la descrizione, assicurati di controllare i diagrammi di attività.

Quando si desidera mostrare i dettagli interni (comprese le regole dettagliate), i diagrammi di attività sono quelli che si desidera utilizzare. I semplici diagrammi di attività si concentrano sulla sequenza di attività e regole e sono scarsi nel mostrare le responsabilità degli attori, tuttavia, è possibile utilizzare le corsie di nuoto per evidenziare le responsabilità dei singoli attori. Ogni corsia includerebbe attività di cui è responsabile un attore.

Questi collegamenti illustrano i diagrammi di attività con corsie di nuoto:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.