August 29, 2022
4 min.
Insights

BPMN and UML | What are the differences?

Introduction

The word ‘process’ covers several definitions within the business world.

In process modeling, a process is defined as a set of activities or activities performed over a period of time with the purpose of achieving a goal. Requirements engineers and business analysts often have to choose between an UML or a BPMN solution. In this article, we will start by explaining both modeling languages and then highlight their differences.

Business Process Modeling Notation (BPMN)

What is BPMN?

BPMN stands for Business Process Modeling Notation. It is a visual modeling language for business analysis applications and for enterprise process workflows created by the company OMG, the Open Management Group.

Why should you use BPMN?

BPMN is simple and easy to understand by all business stakeholders whether they are software developers, data architects, business users and/or business analysts.

What are the advantages of BPMN?

Using this mapping method for a business process forces to create a simple visual representation of, sometimes, complicated business practice or process. Thus, BPMN gives you an overview and understanding of a process from start to end. It also targets the strengths as well as the weaknesses of an existing process (also called AS-IS). An example is time wasted waiting.

Example of a BPMN Flow – Source: MCFTech

As a picture is worth a thousand word, let’s take an example! In the BPMN diagram above, we can see the different activities belonging to the different profiles within the support department of a company: the front desk responsible receives a support case, reviews it, escalates it, and so on.

BPMN makes thus very cleaR:

  • who takes care of what
  • when should they do it
  • in what order should the steps be taken

However, there is a limitation, in BPMN diagrams, it isn’t possible to see which objects are involved in the process.


Unified Modeling Language (UML)

What is UML?

UML was also created by OMG as its counterpart. UML or Unified Modeling Language is a modelling language for development within the software engineering field. It is composed of a set of integrated diagrams and intends to specify, visualize, construct, and document the elements of a software system.  

Thus, by design, UML uses the same approach object-oriented of analysis and design that can be used in programming languages such as C++ or Java.

It is not a programming language, but since it follows the same logic as object-oriented programming, its diagrams can thus easily be transcribed in code using programming languages. Some tools, like UML designer, can even do this translation automatically!

Why should you use UML?

UML makes complex systems crystal-clear for the stakeholders involved. It thus should be used when dealing with multiple objects in a system, as it will simplify the understanding of relationships between attributes and objects.

What are the advantages of UML?

It helps illustrate properly data models even when they are complicated;

It transforms the system requirements in a visual output; pinpoint the potential prospects.

UML can be used to model software systems, but also non-software systems!

Another pro of UML is the abundance of its tools. Some of those are even meant to reverse engineer code and translate it back in those used to apply design patterns.

Example of UML usage in process modeling

In order to use UML, one can go through the following typical steps, but one should keep in mind that there are several modelling strategies for UML:

  1. Pinpoint and model the needed classes
  2. Pinpoint and model how the classes interact
  3. Identify the features/attributes of objects

The following diagram gives an example of how this information should be structured.

Example of UML modeling languages – Source

BPMN vs UML: what is the main difference?

The main distinction between BPMN and UML is the perspective: while BPMN is process-oriented, UML is object-oriented. Consequently, BPMN is widely applicable to both business and IT worlds. UML is less suitable when improving processes and more compatible with the development of IT systems.

Process-oriented modeling VS object-oriented modeling

As said above, UML focuses on languages (specifically, object-oriented ones), rather than processes, which makes it a bottom-up approach that’s perfectly suited for complex software projects.

On the contrary, the BPMN model focuses on a top-down, process-oriented method to model the system. This means it highlights the main facts about business processes and covers the description of notation elements — who does what, and in what order — without diving into other aspects of the organization.

Application areas of BPMN

For BPMN, the focus is on designing ‘as-is’ and ‘to-be’ process models. It is used in conjunction by business analysts, IT developers, and the business to improve manual processes and systems.

Additionally, BPMN is an essential technique to use in Lean Six Sigma or Kaizen Event quality improvement initiatives.

Application areas of UML

UML is the go-to modelling tool for people who model and build software systems such as web applications and cloud environments, as it allows to document a design that can be implemented in a variety of programming languages.