umluml-decision-nodeuml-merge-node

Does UML merge node doesn't exit until all flows have arrived at the merge node?


I'm beginner in UML and try understand it. Now I read UML Demystified. There is this sentence:

A merge node doesn't exit until all flows have arrived at the merge node.

But there is a figure titled as Figure 15.12 Activity node example (where the arrowed lines are the only non-activity node symbols) in www.omg.org/spec/UML/2.5/Beta2:

enter image description here

Now I think if above sentence is true, above diagram says Activity will be block by merge node; because arriving all flows is impossible; because an order only can be rejected or accepted.

Now I want to know is quoted sentence is incorrect or am I misunderstanding somethings?


Solution

  • From the UML 2.5 specs:

    15.7.21 MergeNode [Class]

    A merge node is a control node that brings together multiple alternate flows. It is not used to synchronize concurrent flows but to accept one among several alternate flows.

    So it accepts a single token at any time and passes it to its outgoing flows. Generally, what book authors write is their interpretation - which might be wrong. In any case you need to stick to what the UML spec says.