UML died and no one noticed?



UML, We Will Miss You The



Unified Modeling Language (UML) , developed by Rational Software and adopted as a standard by the Object Management Group (OMG) in 1997, was intended to standardize many different types of graphical notations adopted by the software development industry.



My history of relationship with the UML began almost a decade ago, when I became an evangelist for this language as a bridge between IT and business . I have never been fully convinced of the value of the UML as a notation for modeling specific software products; my goal was to use UML to describe the required structural and behavioral properties expected from the designed system.



The revelation for me was the formal semantics associated with UML Activity Diagrams. I couldn't stand the informal Visio diagrams because of the many ambiguities in them. For example, what do the two arrows outgoing from the rectangle mean: selection or splitting the stream into two parallel paths? A similar example: do two arrows pointing to the same rectangle mean that the action starts immediately after the first thread reaches the rectangle? Or maybe it's OR, XOR, or AND? In general, you get the point. The UML solves this problem by introducing clear and unambiguous semantics.





The game was unfair from the beginning: there is no correct answer.I



really put my heart and soul into the UML:



  • I drew diagrams for my own solutions from 2004 to 2015 for seven different employers and clients almost exclusively using UML.
  • UML ( -) .
  • , UML. Haskell GraphViz UML.


A few years later, around 2015, I realized that I had practically stopped using the UML, as did the rest of my colleagues, as well as almost all of the Fortune 500 clients I have consulted lately. What happened? But the UML itself was not the victim. Quite frankly, the UML has become just a collateral loss. The real massacre has been in the requirements development area, which includes business intelligence and design. Agile became the killer, and user stories were his poisoned arrows. In the model, where user stories are shoved at the input, and a demo (or feature production release) is received at the output, there is no more room for meaningful structural analysis of tasks.



I know it was death from a thousand cuts. And no, the UML hasn't killed the business community because of its complexity or rigor. In contrast, business people loved the ability to communicate clearly and unambiguously with a few new symbols. IT people elevated the UML (I did this at one time), and they also caused it to fall.











In today's brave new world, understanding is directly crystallized into production-ready code. Even business modeling has, in fact, been killed by a related Agile discipline: Domain Driven Design (DDD). Bounded contexts encapsulate (sweep under the rug) complexity so that an enterprise can scale to "two-pizza teams." Companies using BDD and requiring their teams to write Cucumber specifications have the upper hand here, but very few businesses do it.



The modern paradigm is that we still won't be able to understand the problem. Digital transformation gurus tell us that we need to deploy products to production so that users themselves can tell what the business requirements are, and not formulate them themselves a priori. Thanks to this, we can make several attempts to get it right. Yes, in this paradigm one has to make mistakes quickly and often.



By now, you should have figured out that it’s not a UML flaw. We just gave up on business analysis and formal specifications, so we are faced with a new question: what to use instead of UML?





An example of a masala diagram



While some use lightweight modeling techniques like C4 , most diagrams in use today are of the type that I somewhat dismissively refer to as "masala diagrams . " After all, why not call the diagrams that I make myself? Why Masala? Because they are informal; they simultaneously cover several dimensions, they can be structural, and behavioral, logical and physical. They are often a jumble of renderings of a 4 + 1 architectural model .





How to Prepare a Masala Diagram



The millions of dollar systems on which our lives and finances depend are created, financed, and implemented entirely from these masala diagrams, which often contain nothing more than a few epics and user stories.



"Author, well, the architecture of my bank's mortgage system was certainly not designed on the basis of these horrible masala models of yours!"


It can't be true, can it? In fact, if your bank does not use CICS, and the solution was sold last year, then there is a high probability that it was constructed on the basis of the very masala diagrams.



Has the world gone crazy? No, we just gave up on software engineering . Now it's just a code gamble . I am not saying that those who write software are not themselves engineers; more often than not, it is not. The point is that at the organizational level, software is no longer designed , as is done in other areas, for example, in mechanical engineering. Boeing would never order a jet engine from Rolls Royce based on such an informal masala diagram.



However, masala diagrams have their own purpose. When used where they belong, they are beautiful. You see, these are not specs . Their goal is to evoke emotions. Masala diagrams are valuable when you need to bring joy to the heart of the leader for whom they are intended.



No matter how I argue with my friends from the Agile camp, I cannot remain blind to the happiness of people. Not only are my clients and colleagues asking for more masala diagrams , but insisting that I make them even more masala (so that I combine more architectural dimensions!). Why resist this?



The UML still remains in my heart and I continue to structure solutions using several dimensions, but in the form of pure data / tables. And when it comes to graphic notation, I take out my blender and 5 liter skillet and start preparing a wonderful masala chart for my favorite clients.






Advertising



Epic servers are VDS for hosting sites from a small online store on Opencart to serious projects with a huge audience. Create your own server configurations in a couple of clicks!



Join our Telegram chat .






All Articles