Skip to content
Oct 26 / Rustam

BPMN Tutorial and Analysis

Developed by Business Process Management Initiative (BPMI) and released to public in May, 2004, BPMN specification has a number of key goals. The primary goal of BPMN was to provide a notation that understandable by all business users including business analysts, technical staff and all other business people involved in particular process. While at that time a number of notations achieving same goal, like UML Activity Diagram already existed, BPMN addressed another important goal – visualization of business process executable languages such as BPML and BPEL.

However, when key vendors supporting BPML announced migration to BPEL4WS, BPMN focused on more mapping to BPEL as well. Nevertheless, OMG – the organization currently maintaining BPMN
specification, plans to add mapping support to executable languages such as ebXML BPSS, RosettaNet and W3C Choreography Working Group Specification when it will be completed.

Business Process Diagram (BPD) is a graphical model defined by BPMN. In order to achieve easy readability, BPD has been based on traditional flow-charting techniques without adding much complexity. Additionally, it allows extensions to the interface elements, flexible size, color, line style and text positions unless they do not conflict with the notation elements. Despite these, in order to provide mapping to executable languages
BPMN has to trade-off some simplicity.

Main Concepts

BPMN groups graphical elements into small set of notation categories so that BPD readers such as business and technical people can easily recognize types of elements and understand them. Further, additional information and attributes can be added in order to support conversion to executable language.

There are four basic categories of elements:

  • Flow Objects
    • Events
    • Activities
    • Gateways
  • Connecting Objects
    • Sequence Flow
    • Message Flow
    • Association
  • Swimlanes
    • Pool
    • Lane
  • Artifacts
    • Data Object
    • Group
    • Annotation

Additionally, BPD allows extension to Flow Objects and Artifacts in order to meet custom needs.

Flow Objects

Flow objects group consists of three core elements:

Event Represented by a circle, Event elements identify that something happens within business process. There are three types of EventsStart, Intermediate and End.

As the names imply, the Start Event indicates where a particular process will start and the End Event where it ends. Intermediate Events occur between Start and End Events respectively.

Event circles have open centers to allow internal markers to be specifies. Start and most Intermediate Events have Triggers that define cause for this event. Figures on the right show two of them: Message (Start and Intermediate) and Timer (Start and Intermediate).

Message Start and Message Intermediate Events show that a message should arrive from a participant in order to trigger particular process. While Timer type of these Events show that a specific time (e.g. 9am), date (e.g. 20 October) or cycle (3 days) can be set in order to trigger a process.

Activity Activity elements represented by rounded-corner rectangle and show a work to be done at this stage. It could be atomic or non-atomic. Atomic Activities are called Tasks and non-atomic Activities are called Sub-Processes respectively.

Sub-Process Activities include compound activity within itself. In turn, Sub-Process Activity can be either Expanded or Collapsed. Collapsed Sub-Processes hides details and has a small plus sign in the bottom center of the shape. In contrast, Expanded Sub-Process Activity shows all process details within its boundary.

Gateway Gateway is represented by a diamond shape and controls divergence and convergence of flow paths. Depending on the symbol specified inside the diamond shape, Gateway flow object can determine forking, merging and joining. Here we will show you only three of them: Exclusive (XOR), Inclusive (OR) and Parallel (AND) Gateways.

The difference between Exclusive and Inclusive Gateways is that Exclusive (XOR) Gateways allows only one flow of a set of alternatives to be chosen, while Inclusive (OR) Gateways will enable all flows with true condition.

Gateways will be explained more detailed in the examples below.

Connecting Objects

Relations between the Flow Objects are represented using Connecting Objects. There are three different Connecting Objects:

Sequence Flow A Sequence Flow shows a flow or an order in which activities will be performed and represented with a solid line and arrowhead. Sequence Flow may be Conditional – marked by a diamond or Default – marked by a diagonal slash in the beginning of the line.

Conditional Flows have condition expressions that are evaluated to determine whether or not to follow this path.

For Inclusive and Exclusive Gateways, one of the flows can be a Default Flow. This flow will be used only if all the other outgoing conditional flows are not true.

Message Flow A Message Flow is used to show the flow of messages between two Participants (Pools) and represented with a dashed line and an open arrowhead.
Association Associations are used to associate data, text, and other Artifacts with flow objects and represented by a dotted line with a line arrowhead. Associations are used to show the inputs and outputs of activities.

Swimlanes

A Swimlane is a visual mechanism of organizing different activities into categories of the same functionality. BPD defines two types of Swinlanes:

Pool A Pool represents a Participant in a Process. It is represented with a wide rectangle containing group of Flow Objects, Connecting Objects and Artifacts. Separate Pools in the BPD will represent different Participants (e.g. different companies).
Lane A Lane represents sub-part of the Pool and divides it either vertically or horizontally. Lanes are used to organize and categorize activities (e.g. departments within a company).

Artifacts

Artifacts help modelers and developers add more information to the diagram, thus making it more readable for user. Even though there are only three types of Artifacts in BPD, BPMN expandability allows addition of custom Artifact types.

Data Object Data Objects are used to show which data is required or produced in an Activity.
Group A Group is represented with a rounded-corner rectangle and dashed lines. The Group is used to visually group different Activities but does not affect the flow. Groups can be used across Pools and Lanes.
Annotation Text Annotations are a mechanism to provide additional information for the reader.

BPMN by Examples

Before putting these elements together, first let’s take a look at an example of particular business process of Mobile Content Provider who sells mobile ringtones, wallpapers and games.

A use case example for this mobile content acquisition process could be one shown below:

  1. Actor (Customer) sends 5 digit code (e.g. 34567) via SMS to the Short Number of Mobile Content Provider company
  2. System (Content Provider) verifies received SMS content
  3. System detects Content Type based on the first digit of received code (i.e. 3 for 34567)
  4. System applies specific rules for respective content type
  5. System fetches Binary Content from Database based on last 4 digits of received code (i.e. 4567 for 34567)
  6. System generates Unique Content ID and stores Binary Content under this ID.
  7. System sends special WAP link with Unique Content ID to an Actor and at the same time charges an Actor
  8. Actor follows received WAP link from Mobile Browser and downloads desired Content to its device
  9. System deletes stored binary object after successful delivery. Otherwise, content will become expired and deleted automatically after 3 days.

One of the possible BPMN diagrams for this scenario may look like Figure 1. When customer sends SMS with desired content code, it triggers Start Event and business process starts. Then by having Task Activity we decode SMS and get 5 digit content code ready for analysis.

Now, in order to apply content specific rules, we add Exclusive Gateway which will analyze first digit of the code and restrict consequent flow only to the matching path. While major part of the orders is ringtones, we can make this case a Default Flow.

Figure 1. Mobile Content Provider BPD

Figure 1a. Generate Mobile Content Sub-process

Another possible representation would be using Conditional Flows like shown on Figure 2. However, such representation is equivalent to Inclusive Gateways, while it allows two or more flow to be enabled at the same time.

Figure 2. Using Conditional Flow

After applying specific rules and before generating mobile content we merge different Sequence Flows. BPMN uses the term “merge” to refer to the exclusive combining of two or more paths into one path (also known as an OR-Join). Another way of representing merge would be Merging (XOR) Gateway (see Figure 3).

Figure 3. Merging (XOR) Gateway

In both cases above only one of the incoming flows required in order to continue process. Although, in case if we need to have all of the incoming flows before continuing, for instance, apply a number of rules (A, B and C) for a specific content, we would use “join”. BPMN uses the term “join” to refer to the combining of two or more parallel paths into one path (also known as an AND-Join or synchronization). Then, Parallel (AND) Gateway is used to show the joining of multiple Flows (see Figure 4).

Figure 4. Joining using Parallel (AND) Gateway

As can be seen from the Figure 1, “Generate Mobile Content” is non-atomic, Expanded Sub-process. Diagram for this sub-process shown separately at the Figure 1a. In order to bring more clarity to sub-process description input and output Artifacts has been specified.

Forthcoming activity is also non-atomic. However, in contrast with previous activity, “Deliver Content” is Collapsed Sub-Process. Within Collapsed Sub-Process it is possible to specify activities with and without Start and End Events. In our case, while we don’t use them, both Tasks – “Send SMS w/ WAP Link” and “Charge Customer” will be done in parallel. Another way to show this sub-process is using Parallel (AND) Gateways and “fork” as shown on Figure 5. BPMN uses the term “fork” to refer to the dividing of a path into two or more parallel paths (also known as an AND-Split). It is a place in the Process where activities can be performed concurrently, rather than sequentially.

Figure 5. Parallelism – Fork and Join

Next item in the flow at Figure 1 is an Event Based Exclusive (XOR) Gateway. This is a specific type of Exclusive Gateways where decision is one of the alternatives that are based on an Event that occurs at that point. Alternatives are shown as an Intermediate Events. Thus, we will “Delete Mobile Content” either after customer downloads it successfully or after it expires (3 days).

Intermediate Events can also be used to represent exception handling. This will be shown by placing the Intermediate Event on the boundary of a Task or Sub-Process (either collapsed or expanded). For instance, content download expiration exception can be illustrates as shown in Figure 6.

Figure 6. Exception Handling

Finally, we reach End Event which stops business process. There may be more than one End Events at the different steps within flow, representing process end for different scenario flows.

Strengths and Weaknesses of BPMN

UML Activity Diagrams are functional, but business analysts somehow cannot use them. Flowcharts are what they had rather go for, but these tend to be limited to the modeling of single processes, which does not accommodate the requirements of a BPM. BPMI.org developed BPMN a couple of years ago in order to solve all these problems. In fact, BPMN is recognized standard for designing business processes.

In spite of this, BPMN 1.0 is still incomplete and BPMN 1.x is on the way. There are also people arguing that one of the key goals – visualization of BPEL is failed. Fundamental differences between BPMN and BPEL are exposed, which make it very difficult, and in some cases impossible, to generate human-readable BPEL code from BPMN models. Even more difficult is the problem of generating BPEL code from BPMN diagrams and maintaining the original BPMN model and the generated BPEL code synchronized.

At last, one may find BPD elements hard to sketch on paper in comparison with UML Activity diagrams or Flowcharts. For instance, distinguishing between start and end events.

Summary

This tutorial tried to cover basic concepts of BPMN. Nevertheless, BPMN defines many more advanced elements and allows extensions to the notation. People familiar with similar business process description notations may see similarities between BPMN and for instance, UML Activity Diagram. Despite these similarities, we should not forget that one of the main goals behind BPMN is ability to be mapped to the business process execution languages. Obviously, support for this ability brings complexity and many attributes for each of the elements.

A BPD is not designed to graphically convey all the information required to execute a business process. Thus, the graphic elements of BPMN will be supported by attributes that will supply the additional information required to enable a mapping.

References

Share this post

Leave a comment