Which modelling language to use
The four are compared as though a team had to pick one and live with it. They answer different questions, they genuinely overlap in only three places, and knowing which three is most of the decision.
9 min readModelling practice1 of 4
The short answer
- UML describes how one system is built, ArchiMate how an estate hangs together, BPMN what happens in a process, and C4 which level of zoom you are looking at.
- They overlap in three places only: process flow, application structure, and the container-sized box all three of C4, ArchiMate and UML know how to draw.
- Choose by who reads the diagram and by what it has to survive - a conversation, an exchange file, or a process engine.
- Using more than one is normal. Using two on one canvas without saying so is the failure, because a box then means whatever the reader assumes it means.
01Four languages, four different questions#
A notation is a set of answers, and it is only useful if you were asking the question it answers. The four on this site were written by different people, in different decades, for different rooms - and the reason the comparison feels slippery is that three quarters of it is a category error. Before comparing anything, it helps to read them as four questions rather than four toolkits.
| Element | Notation | What it means |
|---|---|---|
| UML 2.5.1 | Fourteen diagram types, one system | How is this software built? Classes, messages, states, components, nodes. Precise enough that a diagram can be wrong, which is the point of having a metamodel at all. |
| ArchiMate 4 | Layers and aspects, a whole estate | How do business, applications and technology hold each other up? One vocabulary spanning all three, so that a question crossing them is answerable in one model. |
| BPMN 2.0 | One process, its participants and its events | What happens, in what order, and who does it? Written to be read by the business and executed by an engine, which is a pair of constraints no other notation here accepts. |
| C4 model | Four levels, no prescribed shapes | At which level of zoom am I looking? A convention about scope rather than a notation - so it composes with any of the three above instead of competing with them. |
Read that way, most pairings dissolve. Comparing C4 with UML compares a table of contents with a typeface, which is the subject of its own article. Comparing ArchiMate with BPMN compares a map of a country with a set of driving directions. What is left after the category errors are removed is three real overlaps, and those are worth arguing about.
02The three places they overlap#
Process flow. A BPMN process and a UML activity diagram describe the same thing: work in sequence, with branches, parallelism and participants. They are drawn differently and they are aimed at different rooms, but a diagram of an order-to-cash process is legitimate in either. This is the only overlap where the two candidates are genuinely interchangeable for the reader, so it gets a full comparison of its own.
Application structure. An ArchiMate application component and a UML component both name a piece of software and the interfaces it offers. The difference is depth of field: ArchiMate stops at the component and looks sideways, at the business process it serves and the node it runs on; UML keeps zooming in, to the classes inside it. If the next question is "and what does it consist of", you want UML. If the next question is "and who cares if it stops", you want ArchiMate.
The container-sized box. A C4 container, an ArchiMate application component and a UML component are frequently the same deployable thing drawn three ways. All three notations are correct here, and this is the overlap where teams most often argue past each other: the disagreement is nearly always about which level of detail the diagram is for, not about which notation is right.
03Three questions that settle it#
Where a real choice exists, three questions decide it faster than any feature comparison. Answer them in order and the fourth answer is usually already obvious.
1. Who has to read it without being taught? This is the constraint that outranks correctness, because a diagram nobody reads is worth nothing however legal it is. Developers read UML and C4 on sight. Business analysts and operations managers read BPMN on sight, and most of them have never been shown a UML activity diagram. Enterprise architects and the people who fund programmes read ArchiMate, and almost nobody else does.
2. How much is in scope? One system, or the estate around it? UML and C4 are system-scoped: they describe a thing that has a boundary, a repository and a team. ArchiMate is estate-scoped, and applying it to a single application produces a model that is correct, expensive and less useful than the two UML diagrams it replaced. The reverse mistake is more expensive: answering "which applications does this business capability depend on" by drawing forty component diagrams.
3. What has to survive the meeting? If the answer is "a shared understanding", any notation the room reads will do, and the least formal one wins. If it is "a file another tool can open", you need a notation with an interchange format - UML has XMI, ArchiMate has The Open Group's exchange format, BPMN has its own XML, and C4 has whatever your drawing tool saves. If it is "something an engine runs", the answer is BPMN and there is no second candidate.
04Using more than one without making a mess#
Most organisations past a certain size use three of the four, and that is not a failure of governance. The failure is subtler and much more common: two notations on one canvas, with nothing on the page saying which box belongs to which. A reader then has to guess whether a rounded rectangle is an ArchiMate application service or a BPMN task, and a diagram that has to be guessed at is a diagram that gets ignored.
Three habits prevent nearly all of it. Label the view with its notation and its level, the way an ArchiMate viewpoint is named for the question it answers. Keep one element for one real-world thing, so the same service is one entry in the model no matter how many views draw it. And let the views disagree in detail but never in fact - if two diagrams show different dependencies for the same component, the model has already stopped being true.
That last habit is the one a drawing tool cannot help with, because a drawing tool has no model behind the pictures. It is the difference between a folder of diagrams and a model with views onto it, and it is why the starting templates here are per-notation rather than per-picture: the notation you pick decides the vocabulary, and the vocabulary is what the model is made of. If you would rather see that before reading further, the fifteen-second demo builds one and hands it back as a file.
In one line each
- 01Match the language to the question: one system (UML, C4), one process (BPMN), or the estate that contains both (ArchiMate).
- 02Only three overlaps are real - process flow, application structure, and the container-sized box - and only the first is a genuine either/or.
- 03Audience beats correctness. A legal diagram nobody in the room reads has failed at the only job it had.
- 04If it has to be executed, it is BPMN. If it has to be exchanged, it needs a notation with an interchange format.
- 05Combine freely across views; never across one canvas without labelling which notation is in force.
05Common questions#
Which modelling language should a team learn first?
Whichever one answers the question the team is actually being asked. A team documenting a system it is building learns UML or C4; a team mapping how an application estate supports the business learns ArchiMate; a team writing down how work moves between departments learns BPMN. Learning the one nobody asked for is how a notation gets abandoned in month three.
Can one model hold UML, ArchiMate and BPMN together?
In one tool, usually yes, and on real projects it is normal: an ArchiMate application component and a UML component can describe the same thing at different precision. What no standard supports is a single diagram in two notations at once, because the two metamodels give the same shapes different meanings. Keep the model shared and the views separate.
Do I need ArchiMate if the team already uses C4?
Not for describing one software system. C4's four levels cover that, and adding ArchiMate on top buys precision nobody asked for. ArchiMate earns its place when the question crosses systems: which business processes a retiring application supports, or which capabilities a programme touches. C4 has no vocabulary for either of those.
Is it wrong to draw a business process in UML instead of BPMN?
No. A UML activity diagram is a legitimate process notation and reads well to a technical audience. BPMN wins when the readers are business people who have seen it before, when the process crosses organisations, or when the diagram has to be handed to an engine: BPMN 2.0 defines an XML form built to be executed, and UML has no equivalent.
In this series
- 01Which language to use
- 02Scoping a model
- 03Naming conventions
- 04Keeping a model current
Related reading
Foundations
Foundations
Foundations
Foundations
Modelling practice
Modelling practice