In many areas, patterns are used to codify best practices. A pattern describes a solution for a problem. Originally, patterns were used in architecture to describe architectural design ideas. In software engineering, patterns are used to describe typical software design solutions, for example like client-server architecture.
In business process management, the so called workflow patterns by Prof. van der Aalst and friends exist. In their original description, they described the most important 20 workflow constructs like loops, decisions, and sequence flows. Later, Prof. van der Aalst and other research fellows extended the list of patterns and revised the initial description (see workflow pattern homepage). Still, the original 20 workflow patterns are valid and a useful tool to learn a modelling language such as BPMN.
Attached to this post, you find my ARIS Express model showing how to do the 20 workflow patterns in BPMN 2. Please consider this to be work in progress. From a theoretical point of view, some of the patterns are not supported by BPMN, but if possible, I tried to come up with a work-around. Please comment this post if you think my way of modelling the 20 workflow patterns in BPMN 2 is incorrect or if you know alternative ways of doing it.
Note: See this post for a list of other articles about BPMN 2, e.g. a comparison of EPC vs. BPMN. You might be also interested to join the BPMN discussion group at ARIS Community.
Thanks Ivo for spotting. I uploaded a new version of the ADF.
Yes, I was part of BPMN standardisation, but had only a small input. There are many people with a lot of input like Stephen White, Ivana Trickovic, David Frankel, Dave Ings, Jeff Mischkinsky, Matthias Kloppmann and Hagen Völzer driving the standardisation effort for many years. Those are the people who should get the credits!
Hi Sebastian,
Referring to WP02:
I've been under the impression (please correct me if I'm wrong) that one must always try to use the 'gateways' or 'condition' notation when 2 tasks follow a previous task (e.g. like your first example of WP02). Because the 2nd example of WP02(marked 'implicit') does not indicate whether B1 should happen before B2 or whether they must happen simultaneously? etc, etc.
What I'm asking is, would one use the implicit example to indicate that B1 & B2 can happen at any point in time, regardless of any circumstance or condition created by the previous task - i.e. is it quite an acceptable form of notation? Apologies if this comes accross as a stupid question.
Hello
Referring to WP03: In my opinion, the merge and the ad-hoc solution don't express the same thing. The activities in an ad-hoc can be performed and can be completet, they don't have to!, for the sub-process to be completed. Whereas in the case of the merge a token has to arrive from every path leading into the gateway, meaning all the activities before have to be completed.
Hi Dr. Sebastian,
These are in deed very useful workflow patterns examples in BPMN, thanks for the share.
Nice to see this post has been mentioned in External links area on Wiki for the topic Workflow Patterns :)
Can we get any real life examples of these patterns in BPMN, can you please provide any resource for these?
Thanks
-Vinay