Blog Posts Process Management Service Oriented Architecture (SOA)

How to Depict Software Internals in BPMN

Blog: Process is the Main Thing - Anatoly Belychook

This post was originally published at

Typical BPMN use cases are:

  1. create a process-based operations manual (let’s call this “analogue” process modeling)
  2. create a BPMS-executable model (let’s call this “digital” process modeling)
  3. create process-based software requirements for application developers

Let’s define the analogue/digital divide first and then proceed to use case #3.

Fig. 1. Analogue process example

Fig. 2. Digital process example

It is sometimes argued that BPMN is invented for digital processes only but this is an exaggeration.

The true statement is that many BPMN elements only make sense in a digital processes. E.g.:

These two different BPMN applications utilize different subsets of BPMN palette so I recommend to make it clear before starting a modeling excercise: are we dealing with a digital process or analogue one? If it’s an analogue process then one should use the reduced BPMN palette that includes user task, two or three types gateways, subprocesses, multi-instance loops, timer, terminator, lanes, data objects and data stores, annotations. You may be surprised how much can be done with such a limited set of elements, if used wisely.

Otherwise – in the case of a digital process – one may use complete BPMN palette including messages, conditional events, errors, escalations and others.

Outside view of the application – user’s perspective

Computer applications are usually considered as a “black box” both in analogue and digital business processes: user presses a button, some magic occurs in the application and voila – the money are transferred between customer’s deposit and credit card or a product is reserved for sale in the warehouse database. It is assumed that business is always done by people and whatever tools they may use – a phone, paper and pencil, a spreadsheet or an ERP system – they are just tools.

Let’s consider receiving goods delivered by supplier as an example. The simplified process comprises three tasks triggered by the supplier’s truck arriving to the warehouse gate:

Fig. 3. Receiving goods at the warehouse, outside view

One may add a custom annotation to specify the computer application used:

Fig. 4. Custom annotation

Inside view of the application – developer’s perspective

Now let’s consider the third BPMN use case scenario: process automation. Let’s suppose that we are in charge of designing and developing the warehouse application.

The common “black box” approach would be inapropriate if the application does not yet exist or if we are going to redesign it. In this case we must not only explain process performers where to use the application but also explain to the developers what the application should do.

The common – naive – approach is to show the activities performed by the human and by the application in a sequence:

Fig. 5. Receiving goods at the warehouse, combined outside/inside view

Here we have used the lane to depict activities performed by the application. It’s pretty legal – lanes in BPMN may be used for everything but external participants.

Digital subprocess within analogue process

I’m not comfortable with the diagram depicted in Fig. 5 because it assumes that the process is digital since there are service tasks. But what if there is no process engine to execute the sequence of human and serivce tasks?

I’d recommend the two-layer approach:

Fig. 6. Layered process

Here the “Goods receipt processing” is implemented as a reusable process invoked from the “Goods acceptance” end-to-end process via call activity.


  1. Use the reduced BPMN palette if there is no process engine to execute the process.
  2. Depict the computer application via lanes and/or custom annotations.
  3. Use script and service tasks performed by an application internally only if you are (re)designing it.
  4. Use subprocesses to integrate application internals into end-to-end process logic.

Leave a Comment

Get the BPI Web Feed

Using the HTML code below, you can display this Business Process Incubator page content with the current filter and sorting inside your web site for FREE.

Copy/Paste this code in your website html code:

<iframe src="" frameborder="0" scrolling="auto" width="100%" height="700">

Customizing your BPI Web Feed

You can click on the Get the BPI Web Feed link on any of our page to create the best possible feed for your site. Here are a few tips to customize your BPI Web Feed.

Customizing the Content Filter
On any page, you can add filter criteria using the MORE FILTERS interface:

Customizing the Content Filter

Customizing the Content Sorting
Clicking on the sorting options will also change the way your BPI Web Feed will be ordered on your site:

Get the BPI Web Feed

Some integration examples