UML is NOT about diagrams

There seem to be a lot of misconceptions about UML in the industry, but one of the most persistent is that UML is all about diagrams.

I’ve heard/read phrases like “UML is a collection of diagrams”, and even the Wikipedia page about UML mostly talks about the different diagrams rather then the actual elements and their structure.

Well let me tell you, UML is NOT about diagrams.

Even OMG thinks so as diagrams are hardly defined in the UML superstructure specification. From the  742 pages there’s 5 pages that deal with diagrams, and there not even in the main specification document, but in Annex A.

Diagrams are tools that allow humans to edit and communicate UML models, because we limited humans are just not that good in reading or editing a vast hierarchical structure. Computers don’t have that problem. When for example a code generator reads a model to generate source code, it will completely ignore the diagrams and focus only the actual hierarchical model.

So diagrams are not essential to the content of the model. You can delete all diagrams from any model of mine and I will not have lost a single byte of model information. What I’ve lost is an effective mean to edit my model, and to communicate it to other humans, but everything is still there.

To use an analogy: Diagrams are like the GUI and Reports of  your typical administrative software. They offer a view on the data, and an access point to the software’s internal logic, but they are not part of the core of the application, and they certainly don’t contain the applications data. If we talk about the core of such software we are usually not referring to the GUI, but rather to the back-end logic and the data structure.

Am I now arguing that diagrams are not important? No! Just like the GUI and the reports, the diagrams are extremely important for any type of human interaction with the model. Messy, badly laid out diagrams lead to poor understanding of your target audience.

To conclude, UML is not about diagrams, but about interrelated elements in a hierarchical model structure, and diagrams are just an aid so we, imperfect humans, can get a grasp on the actual content.

Leave a Reply