2009-10-07 2 views
21

Sto provando a progettare un diagramma di attività (UML) per un gioco tic tac toe in rete che ho sviluppato, con socket. Sto usando le partizioni di attività (swimlanes). Quindi, ci sono tre partizioni: Client1, Server e Client2.Rappresentare i loop in un diagramma di attività UML

Il diagramma sembra buono, tranne che non so come rappresentare le strutture del ciclo.

Se si guarda questo link: activity diagram, e si guarda l'ultimo diagramma sulla pagina (Partizione), che è il tipo di diagramma di attività con cui sto lavorando.

Qualcuno sa come posso rappresentare i loop? Grazie!

+0

È necessario elaborare il dominio del problema. –

+0

Il diagramma di attività UML potrebbe essere in grado di spiegare i cicli - in modo procedurale. Ma posso vedere una carenza di ciò che UML non riuscirà a descrivere come espressione funzionale (map/foreach/reduce) in un modo semplice. –

risposta

11

Guardare più in basso lo page you link to per la regione di espansione. Usane uno con la parola chiave iterativa.

Un'area di espansione è un'area di attività strutturata che viene eseguita più volte. I nodi di espansione di input e output sono disegnati come un gruppo di tre caselle che rappresentano una selezione multipla di elementi. La parola chiave "iterativo", "parallelo" o "stream" è mostrata nell'angolo in alto a sinistra della regione.

+2

Questo ha attirato la mia attenzione, ma non sono sicuro di come usarlo. Conosci altri diagrammi di esempio che usano questo? – littleK

+0

Non ho nulla di non proprietario che potrei mostrare al momento. –

2

forse mi manca qualcosa, ma perché non solo utilizzando il flusso di uscita dell'ultimo attività nel ciclo come flusso di ingresso per la prima attività nel ciclo (con una condizione di guardia per finire il ciclo quando appropriato)

1

Se si utilizza un set di dati per l'input, la "Regione di espansione" è perfetta. Ad esempio, vuoi convertire in Euro tutte le tue entrate. Quindi, è come un for().

Ma se si desidera avere qualcosa di simile a un(), è necessario utilizzare rettangolo arrotondato e diamanti, con un ciclo di feedback.

Per esempio: [Play blackjack] -> se vinco -> mi fermo -> altro -> ricomincio.

Penso che i soli modi efficienti per fare il ciclo in un diagramma di attività.

Puoi dare un'occhiata allo loop node. Ma non sono sicuro di quanto sia ben definito nelle specifiche OMG.