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. 

Tuesday, May 12, 2015

Is Enterprise Architect a good drawing tool for Archimate 2

The first time I was trying to model a system in Archimate using Enterprise Architect, I experienced some difficulties in expressing the system using the language.
Today I decided to try to draw the model from Archimate's website (shown in my previous example) using Enterprise Architect.
Though the example on Archimate's website is actually too simple to reflect any real-world problems, still Enterprise Architect feels a bit difficult to use.
The problem was after modelling each layer, to create an overall view I almost had to do everything again. The Diagram Frame feature was distorting the elements and was not showing links such as realizations between layers.
So to actually reproduce that diagram I had to link to every element in a new diagram. That was where I stopped because I expected to be able to aggregate layers into one diagram and link them.

Though in real life this problem does not show up that often because having a single diagram will all layers detailed is sometimes getting too crowded to be useful. But the general feeling you get using Enterprise Architect is a diagram drawing software that different standards have been defined in it without tailoring the software enough to make drawing the diagrams easy for these new standards.

Here is the Archimate Example


and this is what I came up with without having to spend an extra hour working around the issues in the Enterprise Architect

The links between layers are missing and the Technology Layer layout is totally broken. The main Technology layer is fine, but the Frame is distorting the layout. 

I like to see how other tools behave trying to draw this



Monday, May 11, 2015

Do we really need ArchiMate? UML vs BPMN vs ArchiMate (Example)

It is useful to have a look at Archimate website's Example and understand what benefits Archimate provide that is can not be achieved by UML and BPMN. 

The Archimate community is sharing very few examples of Archimate modelling, so we try to take the most of this example
http://www.archimate.nl/en/about_archimate/example.html

As an engineer with an MBA degree I can see that this example is no where near real-life complexities both from Technology and Application layer or business layer. 

Archimate is trying to act as normative framework to document the following
  • Business Roles & Actors,
  • Business Services
  • Business Processes
  • Application Services
  • Application Components
  • Infrastructure Services
  • Infrastructure Instances
This is very useful when trying to very high-level view of the IT system in the organization. 
It is important to remember that there is no way we can put all the details for even one system or business services in a single diagram without having thousands of boxes and lines almost going from any box to the other one. 

UMLDeployment or Component diagram can come into competion modelling the 'Technoloyg' and 'Application' Layers while BPMN can be used to model the processes in the 'Business' layer. 
UML Usecases can be used to model usage of the system, but they fall short on easily modelling how different actors are using different usecases to follow a business process. 
Unfortunately there is no standard way to link a BPMN documentation along UML documentations. 

Homepage
Homepage