I'm modelling part of a software architecture on which several processes run as a workflow. The architecture involves data parallelism, where a certain serial process produces N pieces of data which need to be distributed to N processes that must run in parallel.

I'm looking for a good way of expressing parallelism in a diagram. The objective of this diagram is to be informative and will be included in a paper about the system architecture. It does not need to be a formal model or strictly follow UML.

I've drawn 3 ways of representing the parallelism, one of which (2) basically follows the UML 2.0 Activity Diagram. I would like to know which one, if any, will more clearly convey the parallelism. What other information this sort of diagram should include?

Parallelism diagram


The second way you depict not only follows the UML 2.x activity diagram notation but is also used in the Petri net formal modeling language. Indeed Petri net formalism is the source of UML 2.x activity diagram notation.

Using a Petri-net-like semantic for representing parallelism increases the potential audience who can understand your diagrams.

At the opposite, I read the third way as a choice among several options, just like a state machine.

Finally in my opinion, the first way just looks confuse and amateurish.


If there is standard way to represent something, you should use it.

I suppose that your audience has the minimum of technical knowledge required to understand your document. Therefore, I can reasonably suppose that your audience should have basic knowledge of UML so the diagram should be self-explaining. If you use your own convention you will have to also document it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.