BPMN 2.0 for Business Analysts Razvan

From Training Material
Revision as of 04:03, 23 January 2017 by Bernard Szlachta (talk | contribs) (Undo revision 52248 by 46.161.9.20 (talk))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Nobleprog.svg

BPMN 2.0 for Business Analysts


title
BPMN 2.0 for Business Analysts
author


Filip Stachecki (NobleProg)

Business Process

BPMN 2.0 Spec:

A Process describes a sequence or flow of Activities 
in an organization with the objective of carrying out work.


BPMN⌘

  • Business Process Model and Notation (BPMN)
  • OMG standard
  • similar to flowchart diagram, but
    • formal (spec)
    • event based
    • with message flows

BPMN Activity⌘

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

Types of Activities⌘

  • 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
  • Sub-Process
    • compound activity
      • Event Sub-Process
      • Transaction
      • Ad-Hoc
  • Call Activity
    • allows the inclusion of re-usable Tasks and Processes in the diagram

Types of Sub-Processes⌘

Figure10-25-sub-process-object-collapsed.pngFigure10-26-sub-process-object-expanded.png

Figure10-27-expanded-sub-process-used-as-parallel-box.png


Sequence Flow⌘

BPMNSequenceFlow.png

A Sequence Flow is used to show the order that Activities will be performed in a Process.

Token ⌘

  • Token traverses the Sequence Flows and pass 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

Demonstration⌘

  • Simple process

Sequence Flow Splitting⌘

BPMNFlowSplit.png

  • Conditional flow - sequence flow with a condition that is evaluated to determine whether or not the sequence flow will be used
  • Default flow - used only if all the other outgoing conditional flow is not true

Basic BPMN Elements⌘

BPMNBasicSymbols.png

Gateways ⌘

Figure10-103-different-types-of-gateways.png

Gateways are used to control splitting and merging of sequence flows.

  • do not represent ‘work’ being done
  • are considered to have zero effect on the operational measures of the process (cost, time, etc.).
  • two types of gateways: converge and diverge
  • are optional

Exclusive Gateway ⌘

BPMNExclusiveGateway.png

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⌘

Figure10-105-exclusive-data-based-decision-gateway-example-without-internal-indicator.png or Figure10-106-data-based-exclusive-decision-gateway-example-with-internal-indicaor.png

Parallel Gateway ⌘

BPMNParallelGateway.png

AND Gateway

  • 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

Parallel Gateway Example 1⌘

Element fork multiple outgoing.png or BPMNParallelGatewayExample.png

Parallel Gateway Example 2⌘

Element join.png

Gateway Exercises⌘

  • Demonstration - splitting and merging

BPMNSplit.png

Inclusive Gateway ⌘

BPMNInclusiveGateway.png

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⌘

Figure10-108-example-using-inclsive-gateway.png

Inclusive Gateway Example 2⌘

InclusiveGatewayExample2EN.png

Events ⌘

An Event is something that “happens” during the course of a Process.
  • These 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
  • Three types of events:
    1. Start Events - indicate where a particular Process will start
    2. Intermediate Events - indicate where something happens (an Event) somewhere between the start and end of a Process
    3. End Events - indicate where a Process will end

BPMNThreeTypesOfEvents.png

Events Example⌘

EventsExampleEN.png

BPMNIntermediateEventExampleEN.png


Events Exercises⌘

Pool and Participant⌘

BPMNPoolLane.png

  • The pool shape represents a participant.
  • A Lane is a sub-partition within within a Pool.
  • Lanes are used to organize and categorize Activities.
  • 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),

Message Flows ⌘

BPMNMessageFlow.png

  • A Message Flow is used to show the flow of Messages between two Participants that are prepared to send and receive them.
  • A Message Flow MUST connect two separate Pools. They connect either to the Pool boundary or to Flow Objects within the Pool boundary. They MUST NOT connect two objects within the same Pool.

Demonstration ⌘

  • Pool, Lane, Blackbox

4 Basic Message Events ⌘

BPMNMessageEvents.png

Four basic message event types.

Message Events Example⌘

BPMN Message Flows Example

Collaboration Exercises⌘

Artifacts ⌘

Artifacts are used to provide additional information about the Process

  1. Element group.pngGroup
  2. Text annotations.pngText Annotation

Group ⌘

BPMNGroup.png

  • 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 ⌘

Text Annotation.png

  • 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

Types of Tasks ⌘

BPMNTypesOfTasks.png

Receive Task ⌘

Figure10-15-receive-task-object.png

  • Waits for a Message to arrive from an external Participant
  • Once the Message has been received, the Task is completed

Figure10-16-receive-task-object-that-instantiates-process.png

  • Starts the process
  • MUST NOT have any incoming Sequence Flow
  • Instantiate attribute MUST be set to true

Send Task ⌘

BPMNSendTask.png

  • Sends a Message to an external Participant.
  • Once the Message has been sent, the Task is completed.

Service Task ⌘

BPMNServiceTask.png

  • uses some sort of service, which could be a Web service or an automated application.

User Task ⌘

Figure10-17-user-task-object.png

  • A typical “workflow” Task where a human performer performs the Task with the assistance of a software application
  • Examples:
    • Phone operator updates customer record
    • User changing their password

Manual Task ⌘

Figure10-18-manual-task-object.png

  • Is expected to be performed without the aid of any business process execution engine or any application
  • Example:
    • A telephone technician installing a telephone at a customer location

Business Rule Task ⌘

Figure10-19-business-rule-task-object.png

  • Provides a mechanism for the Process to provide input to a Business Rules Engine and to get the output of calculations that the Business Rules Engine might provide

Script Task ⌘

Figure10-20-script-task-object.png

  • Is executed by a business process engine
  • The modeler or implementer defines a script in a language that the engine can interpret
  • When the Task is ready to start, the engine will execute the script
  • When the script is completed, the Task will also be completed.

Timer Events ⌘

  • Expresses a time gap in processing or a wait for a period of time.
  • Start Timer – start on specific date (Monday at 9am, etc..)
  • Intermediate Timer - a specific time-date or a specific cycle (e.g., every Monday at 9am)
  • If used in the main flow it acts as a delay mechanism

Timer Example 1⌘

BPMNTimerExampleEN.png

Timer Example 2⌘

BPMNIntermediateTimerExample2EN.png

Interrupting vs. Non-Interrupting⌘

BPMNInterruptingVSNonInterrupting.png

Conditional Events ⌘

BPMNConditionalEvent.png

  • Is triggered when a condition such as "Temperature above 20°C" become true.

BPMNConditionalEventExampleEN.png

Event-Based Exclusive Gateway⌘

Element event based multiple intermediate gateway.png

  • 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


  • 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

Figure10-116-event-based-gateway-example-using-message-intermidate-events.png or Figure10-117-event-based-gateway-example-using-receive-tasks.png

Event-Based Gateway Starts a Process⌘

BPMNEventBasedGatewayStartsProcess.png

Event-Based Gateway Exercises⌘

Template:BPMN Links

Parallel Event-Based Gateway⌘

ParallelEventBasedGateway.png

  • All events must occur before a process can start

ParallelEventBasedGatewayExample.png

Complex Gateway⌘

ComplexGateway.png

  • The Complex Gateway can be used to model complex synchronization behavior
  • For example, it could specify that tokens on three out of five incoming Sequence Flows are needed to activate the Gateway.

ComplexGatewayExample.png

Link Events⌘

LinkEvents.png

  • A Link is a mechanism for connecting two sections of a Process.
  • Link Events can be used to avoid long Sequence Flow lines.
  • The use of Link Events is limited to a single Process level (i.e., they cannot link a parent Process with a Sub-Process or one pool to another pool).

LinkEventsExample.png

Error Events⌘

ErrorEvents.png

  • An Error is generated when there is a critical problem in the processing of an Activity or when the execution of an Operation failed
  • An Error indicates that a named Error should be generated.
  • 3 types of error events:
    • Start Event Sub-Process Interrupting
    • Intermediate Boundary Interrupting
    • End
  • Process can't wait for an error or rise an error in itermediate event (only in Boundary Intermediate)
  • Process can't be instantiated using error event (only in Event Sub-Process)

Error Events Example 1⌘

BasicExceptionHandling.png Ex02 BasicExceptionHandlingMerge.png

Error Events Example 2⌘

Ex03 ExceptionHandling.png

Error Events Example 3⌘

Ex04 ExceptionHandling.png

Error Event Exercises⌘

Escalation Events⌘

EscalationEvents.png

  • An Escalation identifies a business situation that a Process might need to react to.
  • In contrast to an Error, an Escalation by default is assumed to not abort the Activity to which the boundary Event is attached.

Escalation Example⌘

Escalation.png

Escalation Example 2⌘

Escalation2ndVersion.png

Escalation Exercises⌘

Compensation⌘

Compensation.png

  • Compensation is undoing steps that were already successfully completed, because their results and possibly side effects are no longer desired and need to be reversed.
  • If an Activity is still active, it cannot be compensated, but rather needs to be canceled.
  • Compensation is not an error handling

Compensation Example⌘

CompensationExample.png

Compensation Exercises⌘

Transaction⌘

Transaction.png

  • Is a specialized type of Sub-Process that will have a special behavior that is controlled through a transaction protocol.
  • Transaction verifies if all of the participants have successfully completed their end of the transaction or have been restored to the equivalent of their original state.
  • ACID model describes transactions:
    • Atomic - transaction is "all or nothing": if one part of the transaction fails, the entire transaction fails, and the system state is left unchanged.
    • Consistent - any transaction will bring the system from one valid state to another.
    • Isolatated - concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e. one after the other.
    • Durable - once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors.

Transaction in BPMN⌘

TransactionOutcomes.png

Three basic outcomes of a Transaction:

  • Succes
  • Cancel
  • Error

Cancel Events⌘

TransactionCancel.png

  • Cancel Events are only used in the context of modeling Transaction Sub-Processes
  • Activities indicated by sequence flow from error event will be executed after transaction is rolled back

Transaction Exercises⌘

Loops and multi-instance⌘

Standard Loop ⌘

LoopingActivity.png

  • The Activity will loop as long as the boolean loopCondition is true
  • The condition is evaluated for every loop iteration, and MAY be evaluated at the beginning or at the end of the iteration (testBefore = true lub testBefore = false)
  • In addition, a numeric cap can be optionally specified - loopMaximum
  • Loop activity instances are sequentially executed - one after another.
  • Loop Activity is similar to DO WHILE loop.


Multi-Instance Activity⌘

Element multiple instances parallel.png Figure10-48-activity-multi-instance-marker-for-parallel-instances.png Multi-Instance parallel

Element multiple instances sequential.png Figure10-49-activity-multi-instance-marker-for-sequential-instances.png Multi-Instance sequential

  • The instances MAY execute in parallel or MAY be sequential.
  • Multi-Instance Activities are used with collection of items
  • Multi-Instance Activity is similar to FOR EACH loop

Multi-Instance Activity Example⌘

MultiInstanceActivityExample.png

Loop Exercises ⌘

LoopExercise1.png

Process, Collaboration, Choreography and Conversation in BPMN 2.0⌘

Process - again⌘

A Process describes a sequence or flow of Activities
in an organization with the objective of carrying out work.
  • Process is depicted as a graph of Flow Elements, which are a set of Activities, Events, Gateways, and Sequence Flows that define finite execution semantics.
  • BPMN uses the term Process specifically to mean a set of flow elements
  • It uses the terms Collaboration and Choreography when modeling the interaction between Processes

Types of BPMN Processes ⌘

FIgure7-1-example-of-a-private-business-process.png

Figure7-2-example-of-a-public-process.png

  • There are three basic types of BPMN Processes:
    1. Private Non-executable (internal) Business Processes
    2. Private Executable (internal) Business Processes
    3. Public Processes

Collaboration⌘

Figure7-6-example-of-collaboration-diagram-with-black-box-pools.png

  • Collaboration is a collection of Participants shown as Pools, their interactions as shown by Message Flows, and MAY include Processes within the Pools and/or Choreographies between the Pools
  • A Choreography is an extended type of Collaboration


Collaboration Example⌘

Figure7-3-example-of-collaborative-process.png

Choreography⌘

CollaborationChoreography.png SimpleChoreography.png

  • Choreography looks like Private Business Process
  • Choreography formalizes the way business Participants coordinate their interactions.
  • The focus is not on orchestrations of the work performed within these Participants, but rather on the exchange of information (Messages) between these Participants.

Choreography Example 1⌘

Choreography.png

Choreography Example 2 from spec⌘

Business Process Model and Notation (BPMN), Version 2.0, pages 318-319

ChoreographySpecExample1.png ChoreographySpecExample2.png

Conversations⌘

SimpleConversation.png

  • The Conversation diagram is particular usage of a Collaboration diagram (simplified version of Collaboration)
  • Pools usually are empty.
  • A Conversation is a logical grouping of Message exchanges

Conversation Example⌘

Conversation.png

Annex

Business Process Model and Notation, v2.0, page 261

TypesOfEvents.png

Template:BPMN Links Template:BPMN Links PL

Template:BPMN Links