Old OCEB2F 05 Business Process Modeling Concepts
Jump to navigation
Jump to search
Business Process Modeling Concepts⌘
BPMN⌘
- The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts to the technical developers, and finally to the business people.
- BPMN is a standardized business process modelling bridge for the gap between the business process design and process implementation.
- A vision of BPMN is that it can visually model business activities that become machine executable
BPMN 2.0 XML⌘
- BPMN 2.0 file is an executable XML representation of a business process
<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Definition" ... >
<process processType="Private" isExecutable="true" id="com.sample.bpmn.hello" name="Hello World" >
<!-- nodes -->
<scriptTask id="_2" name="Hello" >
<script>System.out.println("Hello World");</script>
</scriptTask>
<startEvent id="_1" />
<endEvent id="_3" >
<terminateEventDefinition/>
</endEvent>
<!-- connections -->
<sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />
<sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
</process>
BPMN 2.0 XML⌘
<bpmndi:BPMNDiagram>
<bpmndi:BPMNPlane bpmnElement="com.sample.bpmn.hello" >
<bpmndi:BPMNShape bpmnElement="_2" >
<dc:Bounds x="96" y="16" width="80" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_1" >
<dc:Bounds x="30" y="22" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_3" >
<dc:Bounds x="210" y="22" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_1-_2" >
<di:waypoint x="66" y="40" />
<di:waypoint x="96" y="40" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_2-_3" >
<di:waypoint x="176" y="40" />
<di:waypoint x="210" y="40" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
BPMN Basics⌘
|
Flow Objects |
Swimlanes |
|
Connecting Objects |
Artifacts (used to provide additional information about the Process) |
BPMN Activity Basics⌘
- Activity denotes work that is performed within a business process
- Activity can be:
Subprocess Rules⌘
- Pools or Lanes can't be used inside subprocess
- Subprocess can have only None Start Events
- sequence flow can't cross subprocess boundary
Subprocess Markers⌘
Event Basics⌘
An Event is something that “happens” during the course of a Process.
- Events affect the flow of the Process and usually have a cause or an impact. The term “event” is general enough to cover many things in a Process.
- The start of an Activity, the end of an Activity, the change of state of a document, a Message that arrives, etc., all could be considered Events
Event Basics⌘
- Types of events:
- Start Events - indicate where a particular Process will start (generates a token)
- Intermediate Events - indicate where something happens (an Event) somewhere between the start and end of a Process
- Boundary Intermediate Events - attached to the boundary of an Activity
- End Events - indicate where a Process will end (consumes a token - marks the end of a path)
Start and End⌘
- When there is a start event, then there MUST NOT be other flow elements without incoming Sequence Flow.
- All other Flow Objects MUST be a target of at least one Sequence Flow
- When there is a start event, there must be an end event and
- If there is an end event, there must be a start event
- End events cannot (by definition) accept outgoing sequence flow.
None Events⌘
- None Event does not have a defined trigger or result.
- The Event MUST be displayed without a marker
- None Start Event starts the process and generates new token
- None End Event ends a particular flow and consumes the token
Events Example 1⌘
Events Example 2⌘
No Events Example⌘
Timer Start Event⌘
- Starts the Process on specific date (Monday at 9am, etc..) or a specific cycle (e.g., every Monday at 9am)
Gateways⌘
Messages and Sequences⌘
Sequence Flow
- Solid line with an arrow on one end
- depict when one activity has started and another has ended.
- defines the order in which actives are performed for any given process participant
- Never occurs between participants
Message flow
- Defines the flow of information and messages between participants within a process
- Messages NEVER occur within the same participant
Token ⌘
- Token traverses the Sequence Flows and passes through the elements in the Process
- A token is a theoretical concept that is used as an aid to define the behavior of a Process that is being performed
- The behavior of Process elements can be defined by describing how they interact with a token as it “traverses” the structure of the Process.
- A token does NOT traverse a Message Flow
Sequence and Message flow⌘
Sequence Flow Splitting⌘
- Conditional flow - sequence flow with a condition that is evaluated to determine whether or not the sequence flow will be used
- Default flow - (with slash marker) used only if all the other outgoing conditional flows are not true
Intermediate Events⌘
The process waits for a certain action to happen
- Can be attached to the boundary of an activity
- Message (arrives from a participant and triggers the Event)
- Timer (absolute date or cycle – e.g. Every Monday at 9 am) which tigers the event
- Error (only boundary of the activity)
- Signal (send to everyone)
Messages⌘
- There are three types of message events
- Start
- Intermediate
- End
- Intermediate event can send or wait for a message (receive a message)
Messages⌘
Gateways⌘
- Type of gateway determines type of behaviour for both, the diverging and converging Sequence Flow
Exclusive⌘
XOR 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
Exclusive Gateway Example⌘
Merging (exclusive)⌘
Parallel Gateway ⌘
AND Gateway
- A Parallel Gateway is used to create or synchronize (combine) 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
Parallel Gateway Example 1⌘
Parallel Gateway Example 2⌘
Quiz, what will happen?⌘
Inclusive Gateway ⌘
OR Gateway
- 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.
Inclusive Gateway Example 1⌘
Inclusive Gateway Example 2⌘
Event-Based Exclusive Gateway⌘
- The Event-Based Gateway represents a branching point in the Process where the alternative paths that follow the Gateway are based on Events that occur
- This is opposed to the evaluation of Expressions using Process data (as with an Exclusive or Inclusive Gateway which are Data Based)
- A specific Event, usually the receipt of a Message, determines the path that will be taken
- Basically, the decision is made by another Participant, based on data that is not visible to Process, thus, requiring the use of the Event-Based Gateway.
Example⌘
- A company is waiting for a response from a customer they will perform one set of Activities if the customer responds “Yes” and another set of Activities if the customer responds “No.”
- The customer’s response determines which path is taken
- The identity of the Message determines which path is taken
- That is, the “Yes” Message and the “No” Message are different Messages
Example⌘
- The receipt of the Message can be modeled with an Intermediate Event with a Message trigger or a Receive Task
- In addition to Messages, other triggers for Intermediate Events can be used, such as Timers
Artifacts⌘
- Artifacts
- Text annotation
- Groups
- Artifacts have no impact on execution they extend the documentation
- Text objects can be connected to any object with an Association
Group⌘
- Provides a visual mechanism to group elements of a diagram informally.
- Group can be used for documentation or analysis purposes.
- Groups do not affect the flow of the Process.
Text Annotation ⌘
- Is a mechanism for a modeler to provide additional information for the reader of a BPMN Diagram
- The Text Annotation object can be connected to a specific object on the Diagram with an Association
- Does not affect the flow of the Process
Association⌘
- Association lines are dotted connections to objects
Data Objects⌘
- The primary construct for modeling data within the Process flow.
- Represented by the rectangle and the folded corner
- Typically attached to activities and flows, but they can be associated with: tasks, gateways, events, sequence lines or message lines
- Data Associations are used to move data between Data Objects.
- Tokens do not flow along a Data Association.
Pools and Lanes⌘
- Pool = Participant
- The pool shape contains the elements of a process flow performed by the process participant
- The pool shape represents a participant
- The pool shape is optional
Pools and Lanes⌘
- Lane
- A lane in BPMN is an optional subdivision of a pool, but can be used without a pool
- Graphically separates areas of the process diagram for more visibility and understanding
- Documentation only, doesn't execute
- Text can be in any direction
- The meaning of the Lanes is up to the modeler.
- Lanes are often used for such things as internal roles (e.g., Manager, Associate), systems (e.g., an enterprise application), an internal department (e.g., shipping, finance),
Black/White Box Pools⌘
Pool may have no internal details - "black box pool" or may be shown as a "white box pool" with all details.
























