Search code examples
umlactivity-diagram

Does every path in activity diagram have a finish node. Every "fork" branch need to goto a merge?


Does every path in an activity diagram need to have a finish node? A similar question is does every fork branch need to be merged?

I did an activity diagram (below), but it seems wrong. Some branches (from fork) has no finish node (nor end in a merge).

My idea was the clerk will send shipment packing slip to purchashing, accounting & customer. 2 of which just seem to create/init objects (eg. enter info). They are executed in parallel so I felt I should have a fork?


Solution

  • Does every path in an activity diagram need to have a finish node?

    Yes. But there are two kinds of finish node: ActivityFinal and FlowFinal. You need to terminate each of the packaging and shipment flows with a FlowFinal node. See section 12.4 in the spec for details. The symbol is here, the page it's on is a good reference.

    Does every fork branch need to be merged?

    No. But it needs to terminate - hence existence of FlowFinal node.

    hth.