In an activity diagram, are there two initiating events allowed?

martin picture martin · Sep 14, 2010 · Viewed 10.9k times · Source

I want to model an activity, where there can be two several initiating events. These events has two several responsible actors. Is it allowed that a UML activity-diagram could have two initiating events and only one end? Could the action-flow be joined? I want to know if I defy against the UML-modeling principles, if I do this.

Would be nice, if there are some hints for me.

Greetings, Martin

Answer

sfinnie picture sfinnie · Sep 15, 2010

The UML 2.3 superstructure specification (p389) says:

An activity may have more than one initial node.

and

If an activity has more than one initial node, then invoking the activity starts multiple flows, one at each initial node.

So according to the UML spec you're not violating the rules.

That said, @Dave is on the money - the most important thing is your model makes sense to you and those who will consume it. The UML specification is so riddled with inconsistency and ambiguity that it's questionable what 'being compliant' even means.

So long as you and all users of the model have a common understanding of what it's representing then don't get hung up on the UML's pseudo-semantics.

(Of course, this assumes you're using the model as a picture for communication, not as a formal specification that will be interpreted/compiled to code. If so, you'll need to formalise your own semantics for what it means).