NobleProg BPMN Certification Level 1 - Complete Materials
BPMN Certification Level 1 Training Materials
Copyright Notice
Copyright © 2004-2026 by NobleProg Limited All rights reserved.
This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise.
BPMN 2.0 Purpose ⌘
- Provide a notation that is readily understandable by business and technical people
- Create a standardized bridge for the gap between the business process design and process implementation
- To ensure that XML languages designed for the execution of business processes, such as WSBPEL, can be visualized with a business-oriented notation.
- To standardize a business process model and notation in the face of many different modeling notations and viewpoints
- To provide a means of communicating process information to other businesses, users, managers and process implementers
- To exchange BPMN definitions (both domain model and diagram layout) between different tools
Audience of BPMN ⌘
- Business users
- Business analysts
- Strategy analyst
- Quality managers
- Technical developers
- Process designers
- Developers
- Integrators
- Software, System and Enterprise Architects
Conformance ⌘
Software based on spec
- software developed only partially matching compliance/conformance
Modeling Conformance
- Process modeling
- Choreography modelling
Execution Conformance
- Process Execution
- BPEL Process Execution
Tool can comply only to one of the above or any subset of them.
BPMN Complete Conformance complies to the all 4 above.
Sub-models within an end-to-end BPMN model ⌘
- Processes (Orchestration)
- Private non-executable (internal) BP
- Private executable (internal) BP
- Public Processes
- Choreographies
- Collaborations (can include Processes and Choreographies
- Conversations
BPMN 2.0 compared to BPMN 1.2 ⌘
- Formalizes the execution semantics for all BPMN elements
- Defines an extensibility mechanism
- Refines Event composition and correlation
- Extends the definition of human interactions
- Defines a Choreography model
BPMN Sub-models ⌘
- Orchestration
- Private non-executable (internal) Business Processes
- Private executable (internal) Business Processes
- Public Processes
- Choreographies
- Collaborations, which can include Processes and/or Choreographies
- A view of Conversations
Private (Internal) Business Process ⌘
- Internal to a specific organization
- Other names:
- Workflow
- BPM Processes
- Orchestration of services
- Can be executable and non-executable
- Contained within a single Pool
- The flow of Messages can cross the Pool boundary to show the interactions that exist between separate private Business Processes
<signavio>cd1fc43dc515451c8328502b8a08b923:e475f9e2bff59ca69841041bc25a1fa541560476ca0b2913ed335cab8df34e0_7fdb1ff2ef9094223def5afde424126229ba137c1ed4d72fe416b3edf2fba2_e485bafe8e57f036e48a432ebdc8987efcdce6ebddfbb75bf170965a3975c16</signavio>
Public Process ⌘
- Represents the interactions between a private Business Process and another Process or Participant
- Only those Activities that are used to communicate to the other Participant(s) are included in the public Process
- All other “internal” Activities of the private Business Process are not shown
- Public Process shows to the outside world the Message Flows and the order of those Message Flows that are needed to interact with that Process
- Public Processes can be modeled separately or within a Collaboration to show the flow of Messages between the public Process Activities and other Participants
- Called “abstract” in BPMN 1.2.
- Public Process is orchestrated by the private processes (as oppose to Collaboration)
<signavio>ece7d3b879d94c79b10e41fc378e706c:46c42041b0f77d715f7b8af11ff43c9ca6c783ea09c6ec60f04f5b961b91_4967cac8dcfd832e16124cc1dfd8036682d21e8c11ac0bb9bea7d875527c615_a5f0d97f4e892962dd98ee74171e62ce8524f0ee737d927065ac95c660b524c</signavio>
Collaboration ⌘
- Depicts the interactions between two or more business entities
- Contains two or more Pools
- Can be shown as two or more public Processes communicating with each other
- The corresponding internal (executable) Processes are likely to have much more Activity and detail than what is shown in the public Processes.
<signavio>7d4b0223cf224b37b35fddcffce16cb2:c5640bf3ae026a8b7753ae86eea1e1c31e36d3cf42be54d1f744e4a212f11ac_57f164c43cf29bd16dd03e685f163c8e61c61c2467cb5977134d9c1281d0d2_742aba653cf647ca2efea2283c688da6a8b718a946e501be2c76d94d060eeb</signavio>
Choreography ⌘
- Definition of the expected behavior
- B procedural contract between interacting Participants
- A self-contained Choreography have no Pools or Orchestration
- Choreography exists between Pools (or Participants)
- The Choreography Activities are interactions that represent a set (1 or more) of Message exchanges, which involves two or more Participants
- There is no central controller, responsible entity or observer of the Process
<signavio>600f813d53b5484e875f2e5803465cfe:6c77972c7e6356d02bb9c59224a445952c53224076fa8acaf85546a3bba74d5_494ba83449cdc5ebb1ccae4fa3504d2011bd73d3adb67a32de1ccb2d1d77182_b33c61976c55e3ada37bdab95f4e9a8333bf7cc1fcb92bfe987a99b6a507</signavio>
Conversation ⌘
- The Conversation diagram is a particular usage of and an informal description of a Collaboration diagram
- Pools of a Conversation usually do not contain a Process and a Choreography is usually not placed in between the Pools of a Conversation diagram
- A Conversation is the logical relation of Message exchanges
- Message exchanges are related to each other and reflect distinct business scenarios
- Conversation Diagram Provides a “bird’s eye” perspective of the different Conversations that relate to the domain
<signavio>2ec3cc87a58a41b5a253c680986a9d9d:1f7bd3da85383d0f53e4a38afeee7454d8833a24fcce6ae68f523e89c38cf8_b507aeb1c9ee295a1636355a632817d6eaab745ef12958c0f5d1abfb272fcc_f58d9b7e4729ecca1c6c46b4b992ad0d7bdea2dc81ffa2f9b35fc628fb64e</signavio>
Quiz
Private Process
Simple Process
<signavio>4410456846d6498bb8c7302f6a7d6b84:a79576d9d9c1a5df2e70be44c8464adf869aa941ebff56b6bddf04bb0cfdd2a_a591265bd0a384325ab6af2b7e5cb288fe646f9f18da275d7531352127cebf3_7deb252f7bca5ab15a32be4a3f764fb195f98192feb83923195982495afd9171</signavio>
01.01 - Simple Process
Exercise 01.01
Purpose: familiarization with the tool and basic elements
Steps:
- Login into Signavio
- Create "yourname" folder in NPCBPM_Exercises folder
- Create new BPMN 2.0 process diagram
- Create the same process as shown in picture 01.01
Process Goals and Outcomes
<signavio>4fd68840c43f464faf6e20b57863d5b5:fb61939514279d6609f48e4316736d9ed5357e9d52972b0dd1f3f3fdae63e41_d288ea81a015b0121eaf8ce888bae87f33242a71c2826ec2c91276461c54a4_e6f65633c2af5eca43662b545d16b761fb9070e199a46f4be7b1413573287f64</signavio>
01.02 - Process Goals and Outcomes
Exercise 01.02
To the above process, add "second shot" scenario ,i.e. when a person taking exam fails, they can try one more time.
Process Name
- Process name is represented by name name of the Pool
<signavio>e932bf1b0d7a4080b4957318d0a0f19a:8b5eb54b1764af2c2d4473e9b89e552efbaf0aaa2fad0b8eaae24c1b8dd1e_6fa8b9bf30f2d929affb314fa5c2ad977699285b13ac9f27f17a8b12adc_ead46949b2b564d77e318673dcf95370cab11d3915a02db72c79a2e14cfb34a9</signavio>
01.03 - Process Name
Roles and Lanes
- Roles are represented by Lanes
<signavio>04cd78f47a6b464bae1f6d0a3a601439:a244aed5919c6e0ba59529d77758fcb9535ff2a7d95fb31d7c8de2f2ffa99a_b526eeee72e4b0427d8578fb180fafda9bfc9a353eb6a9e57c6ed5d652550_3e221a9f4cc882247748591a77dc4dd6db70abccdc13ecf4955139f16ad73f</signavio>
01.04 - Lanes
- Lanes can be used to any kind of categorization (e.g. important, not important, etc...)
- Lanes do not denote activities performer
- Organization Roles can be denoted via Participant and a Pool as well, but this is determined when preparing process for execution.
Concurrent Tasks
<signavio>b0c99c5b413c41a7a66b700ee3fc2824:7378e7535e48eecce0f2e384695c2dc93b4c8ce3f404c567fa253f7e79a7_e59660ae50211d257ad195830c16eb5fc314a468d325ebfe049a31118e199dc_829f3e1b47b46469443695c3fe51dc28949ee47c4a64aad8831f4fd398e7944</signavio>
01.05 - Concurrent Tasks
- A Parallel Gateway is used to synchronize (combine) parallel flows and to create parallel flows
- A Parallel Gateway creates parallel paths without checking any conditions; each outgoing Sequence Flow receives a token upon execution of this Gateway
- For incoming flows, the Parallel Gateway will wait for all incoming flows before triggering the flow through its outgoing Sequence Flows
Uncontrolled flow
- Diagram 4 above will result in task "Greet Delegates" to be executed three times, hence probably it is not what the modeller intended
- Diagram 4 above is equivalent to diagram below
<signavio>70a1b49b6b6e4c5a89944a58385f88a6:cdf433ca364ce0f3bdf18e5642fe10a5e9d18186f171efbec9ca278ee2a688_49cdab82163098224760f9671cfaf957644159aafaffd340ea91ac933d112a_a1f8c15f6ffeb34602490c376b8cea122e80db71e999256c7a52d9dba3f4</signavio>
Deadlocks
Opposite situation may be when exclusive gateway is followed by parallel gateway
<signavio>b755e28b185946f08046ad006b4266dd:25733be02b231418bed834311b65528871f7736a4716adba946c578aa74e_64a279ad8716983d906455b45b54d989e6eb1d38f4476c8b35937365c1acf_421efd917cc99f49192dfd5050925f1e7f59ff65488fb3f74477e5d5a50cc8e</signavio>
Sub-processes
Sub-process boundaries
<signavio>a3a8daee1853483a8826bbe67ab843a6:943d7ff56132925d1cf88f88c2f8682484bee76a919537a6e36a94d868e93_c813c4f3bdf2b612e8869c676b9e8e18095ed53421d5e6b5cc93720d1fed463_aaed85de613c07bc3a21f69cf3fdab0f4d54f54b69acbb6e34e3e2e3661a61</signavio>
Sequence flow cannot cross sub-process boundaries.
Activities, Gateways and Loops
Ad-hoc
- A group of Activities that have no REQUIRED sequence relationships
- A set of Activities can be defined for the Process, but the sequence and number of performances for the Activities is determined by the performers of the Activities
- Ad-hoc sub-process is marked with a tilde character
<signavio>6f77f3fca6e14ab29a76c979c3f4a02d:3094ed34e14ae6574f138d4413ab8afde28d4d6fc2ed02ae7b3326696b2279_83d022e6f81fbb9ed983e4cbb683967e9d5def124c35ab967621449eec35fb_3df1bc51e77a3c56c42478d29173f01f5d40bef15b27d0a2163519975f5003e</signavio>
Loops
<signavio>7de09b6615814326a82a3668e84c1184:dbb788149baffdcffee8cd83cdb512d5eff167e426f1db8cbb14f5c68ea6b20_424e866cb5add17e3a5702a4095ee61b684370a772290ade08a3516de2651_b2187e52fa51d4b2fdd5baf91b3e4349573b1a4cca792b49f364f8986bb3</signavio>
01.07 - Loops
Multiple Loop Markers
<signavio>313fc14fa47745248c731706df65e29f:b897b6cc971fa6f347ed5bf784b92bc9ee2b3c15b7048216e49b3b63cf63840_b59960b21f409fa9ada07fba794d26a999cd4f8c986cf3aff9a23af8aac5f_7ca48f8ed33b9add4c2ebe84b898c6768c1c36cd2992a9428fd5753c8a6455</signavio>
You cannot combine multiple loop markers!
Exclusive Gateway
- A diverging Exclusive Gateway (Decision) is used to create alternative paths within a Process flow
- Only one of the paths can be taken, this means the gateway is exclusive
- A Decision can be thought of as a question that is asked at a particular point in the Process
- The question has a defined set of alternative answers
- Each answer is associated with a condition Expression that is associated with a Gateway’s outgoing Sequence Flows
| Error creating thumbnail: File missing | Error creating thumbnail: File missing |
| Error creating thumbnail: File missing | Error creating thumbnail: File missing |
Inclusive Gateway
<signavio>fd63b5128b87499dbedd05fd0418675b:121b97726d51f59a1566f217f57a5a79e4ebd165646c6f3df35aeaf53e41dda1_d0b11690243dd88fb355fe1d8ffe3bddd9c54b73af1188ea558f73fc179e375_508d2fab293727f24a96a376a1e63e957ce5fa303a28aaa02537c6402c7618b6</signavio>
- A diverging Inclusive Gateway (Inclusive Decision) can be used to create alternative but also parallel paths within a Process flow
- Unlike the Exclusive Gateway, all condition Expressions are evaluated
- The true evaluation of one condition Expression does not exclude the evaluation of other condition Expressions
- All Sequence Flows with a true evaluation will be traversed by a token
- Since each path is considered to be independent, all combinations of the paths MAY be taken, from zero to all
- However, it should be designed so that at least one path is taken.
Complex Gateway
<signavio>36dc0791029547d49567a760b7d24818:89bfa6d5521df5d0e518319341ce6eb28f47bd253d3602ce086a8d321229b7a_317237bdbf20a286d18f9c2b6536657b61088aaa5a9804d3afda157065f4_b8321c9ef93bcf83eeb659251bc328ace7adbecb1c15ea0afba8266bd47e5f</signavio>
Event Based Gateway
<signavio>de94d86ab3234be59480dd98847130b1:4dda1d1fbf2f8de2eae7043ed3ffaa6a5892ded375bf71791189412dd5a81f7_68efa06ee8de32f6646301a29c733a86a8a62e9997b52e8b3d818560378060_763d63ff2e356cce4a61a189ce3c689c5d0bcd964c87c90b3e515fe9167</signavio>
Activities
BPMN Activity Basics
An Activity
- is work that is performed within a Business Process
- can be atomic or non-atomic (compound)
- represent points in a Process flow where work is performed
- is executable element of a BPMN Process
Activities Type
- Task
- an atomic Activity within a Process flow
- is used when the work in the Process cannot be broken down to a finer level of detail
- an end-user or applications are used to perform the Task when it is executed
- Sub-Process
- Call Activity
- allows the inclusion of re-usable Tasks and Processes in the diagram
Types of Tasks
| Type | Icon | Explanation |
|---|---|---|
| Receive task | Error creating thumbnail: File missing |
|
| Receive start task | Error creating thumbnail: File missing |
|
| User Task |
|
Examples:
|
| Manual Task | Error creating thumbnail: File missing |
Examples:
|
| Business Rule Task | Error creating thumbnail: File missing |
|
| Script Task | Error creating thumbnail: File missing |
|
Receive, Manual and User tasks examples
<signavio>6e1d79cfa53a41d78b47ab613f14129a:67083c7a248419752b0c77271654b27bf4e5f57942a606758b3f3fbf2586d6_a2bb4b4b5f6914b96f6c9e8f34d6d734437b8a5ebab45d47e83a7adf9814c_66ba2dfbb8dc66af5bff544825da16e0ff8cf88b31435d7616a0ec37ced</signavio>
Business Rule and Script Tasks examples
<signavio>7012c6d14d2e41e88ee6390957e99d8b:752f4136d15ccd7313c58fec0402a7fefcdf8af6ff5317762663da0c52_53baf13f7975287d87d1abceded4d58b4285747f9345374d62a47bea99a29_aa50b48e909325d4140a5eb729a81f0122c7a97de8b2e9eea96363aa724e44</signavio>
Business Rule vs Gateways
<signavio>c29d1ba87d2b4e02afe7f40539f7143c:ec6332ffbef268e9a8d67dcfd3825679ac953dae8a9bd8a8865a122e38ba710_cbb990e49f514b532fe663e9423773806ef05676f33edb742482e646f439274_5cdd8ff8edc81b1f8aa27b1385112c44557557919369ee598b2dbbc7e5a494e</signavio>
Sub-process Markers
- A Sub-Process is an Activity whose internal details have been modeled using Activities, Gateways, Events, and Sequence Flows
- A Sub-Process is a graphical object within a Process, but it also can be “opened up” to show a lower-level Process
Types of Sub-Processes
Collapsed
Error creating thumbnail: File missing
Expanded
Sub-process Markers
Makers can be combined.
Error creating thumbnail: File missing
BPMN 2 Workflow Patterns
Source: http://www.workflowpatterns.com/documentation/documents/BPM-06-22.pdf
Workflow (Control Flow) Patterns 。
- Basic Control-Flow Patterns
- Advanced branch and join patterns
- Structural Patters
- Multiple instances patterns
- State-based patterns
- Cancellation patterns
Workflow (Control Flow) Patterns 。
- Basic Control-Flow Patterns
- Sequence
- Parallel Split
- Synchronization
- Exclusive Choice
- Simple Merge
- Advanced branch and join patterns
- Multi-Choice
- Structured Synchronizing Merge
- Multi-Merge
- Structured Discriminator)
- Structural Patters
- Arbitrary Cycles
- Implicit Termination
- Multiple instances patterns
- Multiple Instances without Synchronization
- Multiple Instances with a priori Design-Time Knowledge
- Multiple Instances with a priori Run-Time Knowledge
- Multiple instances without a priori run-time knowledge
- State-based patterns
- Deferred Choice
- Interleaved Parallel Routing
- Milestone
- Cancellation patterns
- Cancel Activity
- Cancel Case
New Control-Flow Patterns
- Structured Loop
- Recursion
- Transient Trigger
- Persistent Trigger
- Cancel Region
- Cancel Multiple Instance Activity
- Complete Multiple Instance Activity
- Blocking Discriminator
- Cancelling Discriminator
- Structured Partial Join
- Blocking Partial Join
- Cancelling Partial Join
- Generalized AND-Join
- Static Partial Join for Multiple Instances
- Cancelling Partial Join for Multiple Instances
- Dynamic Partial Join for Multiple Instances
- Acyclic Synchronizing Merge
- General Synchronizing Merge
- Critical Section
- Interleaved Routing
- Thread Merge
- Thread Split
- Explicit Termination
Basic Patterns: Sequence
AKA: Sequential routing, serial routing
<signavio>3f1b76ee0ddd4d06b4b91c3ac229014b:4b4d70dc8e3093b3e719c9bbe17b64fd48816e9eed0346ee3297864bd219_88cf83abf4f57afc0a1fc9c34b61eb2ec33116ea77d263bf272e5ce1c5a77c_59ade4a79f0189798829b30a033c95d8d37a1b8fcc9eebc5916fa061c9e7dc</signavio>
Basic Patterns: Parallel Split
AKA: AND-split, parallel routing, parallel split, fork
<signavio>826caed3ca4c48b19716aad785122f79:a9a5e41e3985beaaee73319de5971e4dac0d5b9a1c9ae7bf66d41545de7ac_db7884c196b11cb29f2cc9788989cf3ba1d3a85fda1f26b8608e814a96bfab_cfe11415e43cf77ddc73884725475749417c4cfbfd64d65945561b88532621cf</signavio>
Basic Patterns: Synchronization
AKA: AND-join, rendezvous, synchronizer
<signavio>d235a661b41944199ce03361045128e6:2c7f9efc698c39599a0923a1f57a1eb9411b3a1bc8871576139d4facdaf6_a9f3e71c9d5e1363459df55c72c92243e72bff239ac3e1eb34ff2c51f8274_1bb0baaca22a8ae02989d8c18cb39811ecc67ac4108b9d92eb2a6d4dc7f2a9</signavio>
Basic Patterns: Exclusive Choice
AKA: XOR-split, exclusive OR-split, conditional routing, switch, decision, case statement
<signavio>2ed20e9dc575496d96a9e1a4cb00ef32:91f684cd5249bb6b9c3f518ae3e384645a8437c17a5a2fd88d4dfc20d7ddbf_8aa55394371c8a2cc95ba7520c3fdd65bf2960f5873bad8677bbb47d82f2_a953328d20dfb9bee813b190e78d2fb5f7ee8cc15d081a996728e6f2bdf1c</signavio>
Basic Patterns: Simple Merge
AKA: XOR-join, exclusive OR-join, asynchronous join, merge.
<signavio>18f38db40b6a4d088e56da625b1ae011:b1deb433d216ae5e668bc8f824b799e9a2a8e8fd1317c0b4ee80fd74ff275779_31a7e311618567116182ab59b737b42ef12ab61fd43371de8993369ce3fd6_1e955e85a12ecb684edc0d757cf18262f6ee77e73123ef8ae0cf9dbec4f1c2</signavio>
Basic Patterns: Multi-Choice
AKA: Conditional routing, selection, OR-split, multiple choice.
<signavio>7a8b790716ba45a6aa75fba18ca9f2f1:94657cf70118edf9a60ef1a38466e67d191f215c75d3bdd4e1bd2b965979fb_1b8db710288535b56e4124609324adb1a29bf0d015f18a8f8f3c74e19abe2_5210c76331c6934295290ac68ad9bc0c85f74b1fa6df35f818fc014a63</signavio>
Basic Patterns: Structured Synchronizing Merge
AKA: Synchronizing join, synchronizer.
<signavio>a0142046038848b4ad9d42730d6e3e3b:8b11146f05414fbc885aa1fabd3f16b19d4a8962b969c658eee5f3d8e13_abdd3a92f9f6ee8cc94974f119e34ccc8dcb272220967021a3601dfcffb8848c_42d4eb32efc231e9156ed964e596aaca68bf8c818d2952e8176d210aa1c59a</signavio>
Basic Patterns: Multi-Merge
AKA: None
<signavio>fde2a6f3b4914751a9bbcd0927feb6fc:3f1db707d83de8af517dd2944be1a2468933cb55bccfe32f81d1a1788e1161b_fb5957114eba854d67a5c768ac503813324333376467cc39cd67b4d04f98217_4dd6dbd4651514dab3846372e9b4bd9e341c1d8bbcb956392c3ec925f3385f</signavio>
Basic Patterns: Structured Discriminator
AKA: 1-out-of-M join.
<signavio>5c463c51173d415c88a8fbbd9ba1b9e5:cdbcaa9b10a62879f4f6e5f19e7472a3077ae712b69d6165d5776139ba4f_7cd6ede885f41f504bbc063ff389a52ba02c88f4d97160396319b4a07ce7b_c1512c8f36f84b1409dee17e0d462733425833d15998e3d4af2f60f327a54</signavio>
Basic Patterns: WCP-10 Arbitrary Cycles
AKA: Unstructured loop, iteration, cycle.
<signavio>a0d63efb30a6444ea1eb913e42dae720:229a56a34f1ee6c2d6add75b4c72463a701a5b594e1cbb8a6b6f8540b862259e_3e316507b4defc1a76240a179b286d5c41951cf64a87b7146f2bc220d9c980_8382d1a7b3fd3cde88188ea37dff39b3d2652b2b8769a53e08d78a8fb676246</signavio>
Structural Patterns
Basic Patterns: Implicit Termination
AKA: None.
<signavio>5a5c077696af43c6b9bfd16f77c40719:89b6f2d8e5c0e1447991f8e6dbbfc14a87167d418dcececc959cea2ec2421a6_4167212aaabdd3292218115ddecbf3835b903fa5747d15820cb7afbcfe_c83d1a2f7856d50bdaef9ef5cd1811816f96926d1dadc786aa26dad5f8ea91</signavio>
Basic Patterns: Multiple Instances without Synchronization
AKA: Multi threading without synchronization, spawn off facility.
<signavio>765b730dbe8c4d48b01a013182400a9d:de5b915426de5c78f96b7ceb9e5d85c37c162c7959df9d5890bc6c593cea6a_9ee8a2a68fcea13117749c8b2cb1b241cad0d5518212dae07e4dcc89c353c4d_c8e0c953537440309851c2e794eb3d69639988e88f5311fddf4435f8e6d04d</signavio>
Basic Patterns: Multiple Instances with a priori Design-Time Knowledge
AKA: None.
<signavio>73d8cdb2fd1247b495634119a780cbf0:e8ecb5d462e6d5945a086ca6ae9f104eb15c2c88a5c510bd9da57ea6de41_88c73ed23bfe6d44b216ec445ebc396194473d879957c486f29dcc214527f2a7_20d6f9442ef611febd2e82ec2c190bc9a9143b7835a53d901a77c4beed51e5</signavio>
Basic Patterns: Multiple Instances with a priori Run-Time Knowledge
AKA: None.
<signavio>c1cf50a829a146d68b98d45ff51ddfd2:aec975b7a5f6d86970e5b974e333d0e74b2a5bb9ca56cd2a758e48d55269e_85c3626e13bd60c0f78c7a5ebb5edb4623a677891b65c7c24d2b3ad646751be8_aaadcadd215a02a6f58d8f466f579cc5e77359651a2188b22d533d41c94e</signavio>
Basic Patterns: Multiple instances without a priori run-time knowledge
AKA: None.
<signavio>517e66ee9ce14ea78a3a8a6d1c1b96b7:52512bbdf3f96ee3be30c24260732b6b8711746cd16942680682f44c171c578_34cc7feccd6090f1dcee47fcb4a18ff87a962459c4d8f99dd9253ca9462718d_6195314f72e7aedf8f4a2391cec90109f22dd797596eb67bb96de65ebe4b7c</signavio>
Basic Patterns: Deferred Choice
AKA: External choice, implicit choice, deferred XOR-split.
<signavio>b87dd72ab64b4f5a8e22b033aacd71d5:11f86f7059baba6618d750df7ec39d4a35e67aafdad87cc7f1cbbc7056ca8fd_16e8b764fd24ff950e57d4aab197a7c3c18e71574bba09a685f2af3ec6fe83b_7eeaf98f62a8e56d4cbd1b887861446ccb860d5f6ace6905bbc338da713d872</signavio>
Basic Patterns: Interleaved Parallel Routing
AKA: None.
- A set of activities has a partial ordering defining the requirements with
respect to the order in which they must be executed
- Each activity in the set must be executed once and they can be completed in any order that accords with the partial order
- However, as an additional requirement, no two activities can be executed at
the same time (i.e. no two activities can be active for the same process instance at the same time)
<signavio>640d16597c1843e4b0a5863dfe0357e5:911b8b7bc7add882bb9599bb7232d0a752a0bc7ef53643546c3f538c8c22963b_60dc35f41bcb4981d4ebb4f3cc5dcb96421b762a9547448e612fb15ba251f2_bcae83fe714045b11f75febd65c0d636ac5731e2fb4bc96b8af6c161bfc36b4</signavio>
Basic Patterns: Milestone
AKA: Test arc, deadline, state condition, withdraw message.
<signavio>4bd856d3ee0b45b0868459a0dfa4ed6b:969d4c4167c6ea37412b2a19224b6c2aa26f86f56a863138db4c9e264e2e084_3f55cfb7ddddb619ab845b58994115d3af132dd6ecbdd2f4a45a37c7766689e_6e6ade63a2e58d81418ee0f1a4f3aab0e99fea8c53e8c4485b321f9fa0ff86</signavio>
Basic Patterns: Cancel Activity
AKA: Withdraw activity.
<signavio>4af2d9d32195467f884127acdaf7b30f:4dce4f1d6a58a4d245cc6fe1b68e48626a65f64acf5a63f5eb4a7d67d898d810_6173b767984d9a8e34b415bab4c3edc4dd42e9edf8338b71e9524e9886ee5c5_123ebf013d78f3b5739bae28ee21ebd7868df7bacfdf2ae42637018b2ee5f42</signavio>
Basic Patterns: Cancel Case
AKA: Withdraw case.
<signavio>3caa9237865e4c96ae524baa8ca8ea78:614c76c7ef8822d0e8de24a9c7b3f67622477158181ca1ce86b7f4b765967_56285dacc898362aace757e1b399248590f02db79069ff227e2aed9a736b698f_aaaf8b73953ffa75bc484bb4236633421bfb93f66865f1b71731b5a9ff4554</signavio>
Events
Start and End Events
Explicit vs Implicit start and end events
<signavio>40975a00461d4035bdc5a2ab91a4c6a6:b4a5cae8627ef14a5d32bb137f9c47960b8721f3371f56f4a6515fe8964c_b40b9a779a3259889c2be4860da85f8bc4ebd81ad3c10ff0d99e09561e619_adaa464e20a26b9330484d37882bf4b42efe8ce795785bf7869d2ad50bca2</signavio>
Start Event and Pools
<signavio>b8b5725552f044ff86743b5052682ff1:71ca5a3ae26ef2889cbd4e3d85b81d0dba6b935fa9917bb7e7ac5489ed7_dbd55bcb7bb98fc5b3c17cee9dd29b48ae70b1f463d0fd1f4aea5e5343fef5d_c7b99621d12f56efde4fcb5385d96bf49b14da52eb3dc7c9867ec23a20a25a</signavio>
Process Trigger
Single Event
<signavio>c136a95b222248e895b512bf016bde08:156e717abfc89b13768796a3f0befa838aa7a04081a67981e8311881eb1ebda_394bd620fdd78111f7abd927c0b2a7b02122d0b43f46b8ae1ee352ba9fdf9e_903fb67ae6acc070f4e6a6695e12f1779a9f7be061d41d884538c66f6bb7d1c1</signavio>
Multiple Start Events
<signavio>06d3fee93c2442f8b1524350edda4868:3ce023c154b4257cb6542429dcad104b2fb2b23a525fa068ce12a7cc97dac28_5cf5b8536854dc8a745a50d4725773ec55b57184c81aeee9b2476bf1cf8f5b_e813804c893ae4f9836e29a43ec34ca9ab73ce9bb31e87cdaee3fd8b9ba798ae</signavio>
Timer Start Event
<signavio>5931cd03532e45c19bf73bab6afd6147:da25acb4bce5567b774ed9d17f78060c6a0c4aeb5b368805720be4f8ea8d9a_264bf2dac3b2aab7f3fbf44ba73eebf92428e34b02169d9b0f934066f1a8e_b276ac31a8432ff6b7391e094bfaf4731a1b19156ec1242d342e1eda1f185</signavio>
Multiple End Events
<signavio>0b5d415ac3f24a8e932426063c0b9591:a4fc8a3d2b7bedbe837107a9df0657435ca4952016e213fff27bc27381ddab_97d8a22d2740189ab19145d515714b75564b6b5c2eda09dc97181efdf3edf4e_442e9f42fa84dfb9f58f9d76f1aa812dc01589b5172c58621026b3907d78b564</signavio>
Terminate Event
<signavio>ec4b12995ec54eb8aa1a9aca0cd0032d:78cbb178697254386352ea2a9318a468d688e35d6f40fb52aa2f749fa0f32b27_1ad4a3c9a705c2f74a3d299138323264d4af3637acb1d15b947afb3ef1da_8eb416bd7e7cf5917a2090ee1539c8a7854bbf9939f7f9b49776acc3b47242f3</signavio>
Alternatives to Terminate Event
- Terminate event can leave data in an inconsistent state
- It should be avoided if possible
- Below an alternative to the scenario above
<signavio>fe7c8953c25c473789337a36bc3846c4:7658f92c9b233787896a7fd8acdef1e3f043909f80da94dd8fbfe79d110e61c_f9e8fa63c56451808e39e188d8f1b327d15ccd856fb3d8817b8cd6dce5e6ad_ebaf4ceaa73207b0e497c7a5b219215fb39e8d3318fafad7985be8929cb943</signavio>
Intermediate Events
Timer Event
<signavio>172d0486cb8740108eed922bf30a484c:9d2ca4bfd3157845c921c1b86d7897062d7bcf4f8ecab39426667675d2175b8_67661b5576ee49e7cf1e3e2f38162a9f59398326708f2a374d4abef9c2be1a_9618b6417d62f8c148fd3af063ef679942bddc8b7c8e9eeb3370a76972263b9e</signavio>
Messages
<signavio>1797e8acf3b347c6b88c3108a3f037cf:37fc6dc7a55271e8f951b9dd76cf386da8ebdc94915edcca4c7f57ee2bd51dbd_c1277138bf8f163e7dc932b45f5be3f23efa8ae87bb493f25769b15c4537dd9_177bf9e3678c2a2ea5a1c27ed3c3a90761da5a5e8a3c188be976692f6b4671</signavio>
Message and Service Task
<signavio>73999fc96fb845538b4e1f0756382cd9:6b809b69d2d8a3f984a7fa343295fd0a54ce462ea5e4b41a07eea74877e7_aff952fb45b3fcd254638eb3d7c2626c3039d896b98c51d9974c296aa9453c_388457b376f78dc9da4e30362d9ec6bdd8b5635ee7cb90b68fac266d291b225</signavio>
Messages Quiz
<signavio>0e3d3b6baeab4e0bacc16d9e2b2dd94d:f13be492cceb8d82f5d81aa132205017e25bb017b9141769e0e68c28128af_9066c9fa97df196eae6689a0c5362d86dd764fd929feaf10c125c06fab768f97_8acaa6febdb5d47baa0cc892636287af71d81577cae17e6dd539fa873b41de</signavio>
Exercise
Rewrite the scenario above using 4 intermediate messages
Link Event
<signavio>27d9518e0cb94a2db25f97ae6e4c4ce0:473c3beedabcc54b522af13a2e5931c8b396b77ad7e12e84833ae32bf4db26a_629b3e5250df94c6e8b64c22c6b1d56f1a913cd19fe97552e94c014c3391e5_1655eba36a51259462d7b25805fb4ec593ad53d9886187fbefc444bc7f8</signavio>
- Target must have:
- outgoing sequence flows
- no incoming sequence flows
- Target and Source Link Events should have the same name
- There should be only one Source corresponding to one target of the same name
- Can be used between lanes, but cannot be used between different pools
Boundary Events
Timers
<signavio>237a9b8ff4434bedabace9c6efc7ccf7:ffb2f82d6a1b52bb4fc9643adb7da317f173ea4c17aa758b2e1b3e2974195ecd_ba3572de543aeb413a66a2ef2c82de5b8796fc6644787957bbec9c117ba1f5fe_6038c785ac4ddae6d48c97c3a91fac3031526ed14b4b497071ed8563f21c</signavio>
Messages
<signavio>630fcf907fb04f548eb832175383bc05:502ce25e46841ab658ae3fa5f49780c8b4d993299486cb6bf68c46ba1cd1c5a_78a0d59f40fd88eec7b672ff159ea61c17b9a64a1aa8240d1b3d60179e97_b1ee793f3c6abf7a4e4973f6d663fb162213a5a3dcbaea4f4a27feb2a2529</signavio>
Exercise
- Model a sub-process "Write a Report". When employee cannot finish a report in 2 days, you terminate the sub-process and notify the manager
- If the message from the client arrives "report not needed", the sub-process should finish without notifying the manager
Non-Interrupting Boundary Events
<signavio>bacf53d018114752b474f3d7884b6164:48337417a2f1fb8bde1567677cbb0897e5f79d550389a38ab985c7da1da58a3_65ef15e0bd6e142979e7e37f48ce1c23c836b80d3f461baaf5fac5aa81ea674_3ce62c105c1c17d8b3b8e7ce84bb54d44c29f241da02472ebfab90f1f781</signavio>
Execise
- Modell a process "Bake Pizza", if the preparation goes more than 30 min, notify customer wihtout interrupting the sub-process
- If the customer (after being notified after 30min) notify the pizza company that they do not want the pizza anylonger, the pizza preparation sub-process should terminate.
Sub-process and Start Event
<signavio>be8e526e4d8d49b595a590e67d71fd24:622ab4762726e166bb8481e364a60423b7ea554d4b64ffb4ad6f34cadff5752_c2a3ee298ca765c1247238229fe8f47a665b6ca33678833b31e3226bbd7dac1_37f7fd52d6b72c90e0f054bd8fb18866b8993fcd20ff77f5e871dfab72a1d7</signavio>
Exercises 1
- Map the Ordering Pizza in a restaurant processes.
- Use names: Customer, Waiter, Chef, pizza order, pizza, money, receipt
- Use lanes only (one pool)
Data
Data Objects
<signavio>382f7d02aaf6406395b9b1692c9e9493:a02ff52874f81e3db4cf117e1229c7346ddd4e6de7b48c34248a495372ce561_f56d503466e3592ae24f7f72e999fe6353336896de357c9dfecbf52dcf77b2ac_6e388189aaa2e4319afabcc63f802d31a5aaed2be13c4a8655bd420f83f9f9e</signavio>
Data Store
<signavio>d41dd90ba0c94b9cb3afae46f06c081f:57b07742150dd47dea06f6c58774f3240da9e421d03a4c496df91c7c7b28_749e36eaf5879c60995ae983dbdb1454f265bbb1acaa5086ec1391a039892f8_26a1d6217f4512f9a7a4f51ecae4ba256ab5a0fae7d0f8f363117cfa9415a90</signavio>
Public Process
Public Process ⌘
- Represents the interactions between a private Business Process and another Process or Participant
- Only those Activities that are used to communicate to the other Participant(s) are included in the public Process
- All other “internal” Activities of the private Business Process are not shown
- Public Process shows to the outside world the Message Flows and the order of those Message Flows that are needed to interact with that Process
- Public Processes can be modeled separately or within a Collaboration to show the flow of Messages between the public Process Activities and other Participants
- Called “abstract” in BPMN 1.2.
- Public Process is orchestrated by the private processes (as oppose to Collaboration)
<signavio>ece7d3b879d94c79b10e41fc378e706c:46c42041b0f77d715f7b8af11ff43c9ca6c783ea09c6ec60f04f5b961b91_4967cac8dcfd832e16124cc1dfd8036682d21e8c11ac0bb9bea7d875527c615_a5f0d97f4e892962dd98ee74171e62ce8524f0ee737d927065ac95c660b524c</signavio>
Collaboration ⌘
- Depicts the interactions between two or more business entities
- Contains two or more Pools
- Can be shown as two or more public Processes communicating with each other
- The corresponding internal (executable) Processes are likely to have much more Activity and detail than what is shown in the public Processes.
<signavio>7d4b0223cf224b37b35fddcffce16cb2:c5640bf3ae026a8b7753ae86eea1e1c31e36d3cf42be54d1f744e4a212f11ac_57f164c43cf29bd16dd03e685f163c8e61c61c2467cb5977134d9c1281d0d2_742aba653cf647ca2efea2283c688da6a8b718a946e501be2c76d94d060eeb</signavio>
Nobel Prize
<signavio>498d8fb5966d4176bc9f9d62e2c4c877:d37d122077c8eb7e6d83be0c20a3b8f56132c0dcf834ab96aabb192dd761a_3627ddbbbdeebb7bad78ad08ac098b54f4f51f6e73ec51ad528d5fbe749baa_dd8c8efc6d4b8189274a91319928b101fa5872b74166a2a6b8198c9507526</signavio>
Exercises 2
- Map Pizza Delivery processes.
- Use names: Pizza Customer, Pizza Vendor, Chef, Clerk, Delivery Boy, pizza order, pizza, money, receipt
- Use two pools (Pizza Customer, Pizza Vendor)
Choreographies and Conversation
Choreography ⌘
- Definition of the expected behavior
- B procedural contract between interacting Participants
- A self-contained Choreography have no Pools or Orchestration
- Choreography exists between Pools (or Participants)
- The Choreography Activities are interactions that represent a set (1 or more) of Message exchanges, which involves two or more Participants
- There is no central controller, responsible entity or observer of the Process
<signavio>600f813d53b5484e875f2e5803465cfe:6c77972c7e6356d02bb9c59224a445952c53224076fa8acaf85546a3bba74d5_494ba83449cdc5ebb1ccae4fa3504d2011bd73d3adb67a32de1ccb2d1d77182_b33c61976c55e3ada37bdab95f4e9a8333bf7cc1fcb92bfe987a99b6a507</signavio>
Conversation
- The Conversation diagram is a particular usage of and an informal description of a Collaboration diagram
- Pools of a Conversation usually do not contain a Process and a Choreography is usually not placed in between the Pools of a Conversation diagram
- A Conversation is the logical relation of Message exchanges
- Message exchanges are related to each other and reflect distinct business scenarios
- Conversation Diagram Provides a “bird’s eye” perspective of the different Conversations that relate to the domain
<signavio>2ec3cc87a58a41b5a253c680986a9d9d:1f7bd3da85383d0f53e4a38afeee7454d8833a24fcce6ae68f523e89c38cf8_b507aeb1c9ee295a1636355a632817d6eaab745ef12958c0f5d1abfb272fcc_f58d9b7e4729ecca1c6c46b4b992ad0d7bdea2dc81ffa2f9b35fc628fb64e</signavio>


