A UML diagram is a map

A UML diagram is a map.

A map is a simplified representation of complicated or hard to observe reality. A map should be simple enough to be digestible, yet it should also contain enough information to be useful for decision-making.

The current oldest surviving map is from Bronze age. It is a piece of rock that depicts the region where it was found. (click here for a diagram) It is obviously the kind of map you draw to take stock of things. To keep things under record. It doesn’t cover a large enough area to be useful for planning movement.

The oldest known maps that show not only where the cartographer lived, but also included territories of trade partners and potential military targets are from the roman empire. Based on our knowledge of how roman empire functioned it is safe to assume that they were actively used for planning.

Correlation does not mean causation, but I still think there is something to be said about how the “where are we standing?” map is older than the “where are we going?” map. It makes intuitive sense to determine where you are before you plot a course to some other place. If your imaginary path has a

Mind you, this distinction is entirely subjective. Both are maps in the exact same way, the only difference is the intention of the user.

Now it should be apparent where I am going with this in terms of UML diagrams.

Waterfall people originally intended UML to be a planning tool and a programming language. An expensive software engineer would design the system with UML then cheaper coders would write source code (probably in C++) according to UML. This two tiered workflow proved to be cumbersome.

UML is a human to human protocol. And THOSE are open to all sorts of corruption. If a programmer is being threatened with being fired on the spot, they will absolutely not care about the correctness of UML in a hypothetical future. Suchh practical constraints frequently cause operators to sideline UML and directly change source code. In time UML turns into stale documentation.

Most programmers have experienced the “stale documentation” version of UML and developed knee jerk reactions against anyone who comes bearing UML tools. But in doing so also miss an opportunity.

Remember, a map does not have to indicate where you are going, it is also useful if it shows you where you are. So lets assume we change the intention behind why we use UML. There are multiple tools that will read your code and create an UML diagram from it. Wouldn’t it be useful to have a single page overview of all your classes? As long as you don’t take it too seriously it will be fine.

Leave a Reply

Your email address will not be published. Required fields are marked *