Thursday, May 28, 2015

UML vs Archimate vs BPMN: Use what where

Modelling languages are developed with the objective of facilitating communication between professionals. Unlike natural languages, they are limited by design to a purpose. Unfortunately, when I think about all the models I have seen in the past few years they have been suffering from either of these two problems:
1. Incorrect usage, as using wrong type of elements and connectors without putting enough effort into trying to learn the language first. Creators of these diagrams usually bring down the model to a PowerPoint diagram with arrows and connectors going everywhere. This can be fixed by proper training and audit of the models by more experienced modellers

2. Incorrect choice of the modelling language. This one results in unuseful and misleading models, even if the modeller is well educated about the language.

I think it is very important to choose the right language for the right purpose. This may seem obvious, but I have seen many senior engineers using for example Archimate to prepare a detailed design of the solution or BPMN to model a execution sequence. I thought having a simple map may help chose the right tool

1. Archimate: This is useful trying to model an enterprise architecture. You should be talking about business services mapping to IT and Software Services and IT Infrastructure. 
For example a good fit would be modelling all the systems that will be available for all business users in let's say operating a Mine. 

What is NOT for is:
a. Trying to model the business processes in isolation in detail. that would be BMPN
b. Trying to model high level design of any solution. That is probably done using UML and you just refer to the highest level of that in Archimate. 
c. Generally any detailed design. Archimate is not good in drill down and linking multi levels of resolution

2. BPMN: It is good for modelling the business process (the business bit is very important). So if you are implementing a Workflow solution BPMN might be usefull before going to WML. But it is NOT useful for
a. Modelling HMI, User Interactions with a screen or a functionality of the system. Entring data into a form can be a step in a process, but not a business process. UML is the way to go with that. 
b. Algorithms. BPMN is not a flowchart describing how an algorithm works. 
c. Data modelling. BPMN allows you to refer to data storages, but that does not mean it can be used to do data modelling. it is not ERD

3. UML: is a very broad & open modelling language and has proven to be very versatile and extendible. But it has roots in low level software design. Class diagrams in UML can be converted to code or vice versa. As soon as you are distancing yourself from the Code, the UML starts to lose relevance and becomes less attractive when there are made-for-purpose competing languages like BPMN and Archimate. 
Modelling a Business Entities as Classes & Objects and then using Sequence Diagram to model a business process is possible, but also can be less attractive than BPMN and Archimate. 

No comments:

Post a Comment