UML is a versatile visual language that is used to model a software system. The software industry has been divided in its opinion regarding the use of UML diagrams. While some see it as an integral part of software systems and development, there are a significant number of people that deem it completely unnecessary.
In this post, we explore both sides of this argument (both advantages and disadvantages of UML) and attempt to understand software industry’s love-hate relationship with UML design diagrams.
Advantages of UML
Most-Used and Flexible
UML is a highly recognized and understood platform for software design. It is a standard notation among software developers. You can safely assume that most software professionals will be at least acquainted with, if not well-versed in, UML diagrams, thus making it the go-to alternative to explain software design models.
What makes UML well-suited to and much-needed for software development is its flexibility. You can customize your modeling elements and interactions in a UML diagram specifically to suit the domain or technologies you are using.
The Software Architecture Must Be Communicated Effectively
The software architecture is the blueprint of the system. It is the framework on which the efficiency of the system and its processes depend. But, this framework is only effective if it is communicated properly to all those using it and working on it. This is where Unified Modeling Language (UML) comes into the picture.
UML is a rich and extensive language that can be used to model not just object-oriented software engineering, but application structure and behavior, and business processes too. Software players have agreed that we cannot do away with documentation of the architecture. It is important. It helps in assessing performance, security, tracking, and provides important guidelines for the assignment under operation.
Because of its wide reach, UML is the perfect visual language to communicate detailed information about the architecture to the largest number of users.
You Need to Know Only a Fraction of the Language to Use It
Though there are 14 different types of UML diagrams for modeling applications, developers use only three or four to document a software system. Class diagrams, sequence diagrams, and use case diagrams remain the most in vogue.
What this implies is that you need to know just 20% of the UML language to explain 80% of your modeling needs. You do not need to know or comprehend the entire notation, to communicate effectively using UML diagrams. Knowing a subset of the notation equips you just fine.
Abundance of UML Tools
UML tools are one of the most important reasons why UML is so widely used. UML tools range from free open-source software to those costing millions of dollars. These tools cover much territory beyond just drawing diagrams. They can generate code from the design, apply design patterns, mine requirements, reverse engineer code, and perform impact and complexity analysis.
These advantages and the abundance of UML tools itself make UML the go-to modeling and developmental language in the field of software engineering.
Despite its myriad uses and benefits, UML is not preferred by all. In fact, a considerable section of software developers, don’t use UML and heap heavy criticism on the same. Let’s look at the arguments against using UML.
Disadvantages of UML: Reasoning against UML
Formal Notation is Not Necessary
The strongest argument against UML is that you don’t really need a UML diagram to communicate your designs. You can have the same impact and effect with informal, box-and-line diagrams created in PowerPoint, Visio, or a whiteboard. As coding is a formal language by itself, a lot of developers don’t prefer the complexity and the formality at the architectural level, which discourages the use of UML and has become one of its disadvantages.
Ascending Degree of Complexity
Since its initiation until now, UML has grown in complexity and size. The sheer size of UML makes a lot of people nervous right at the onset, and they feel like they won’t be able to learn it, and are better off without it.
Not Necessary in ‘Architecture-Indifferent Design’
A term coined by George Fairbanks, ‘architecture-indifferent design’ is a situation where UML is considered unnecessary.
At its core, an architecture-indifferent design refers to a software architecture that is simple and basic, and does not need any complex diagrams to represent or explain the design. If the firms lay more emphasis on formal coding, and there is a prevalent culture of minimal design documentation, UML is regarded unnecessary.
Deciphering This Love-Hate Relationship:
While there is much talk about the redundancy of UML in the software industry, it cannot be denied that hitherto, there is no holistic or appropriate substitute for UML. To receive an unbiased perspective on the significance and fate of UML, we spoke to hardware giants who are closely in touch with the software industry, but neutral in their perspective.
“Absence of design documentation is fine in the short-run, but it can become a problem in the long run when you need to communicate the design to a developer who is in another country, or someone who will be joining the team six months later. UML becomes a huge help in such circumstances, and alleviates ambiguity and questions regarding the design.” A representative at Sconect, Female Header Manufacturer, opines.
“We may talk about domain-specific languages for visual modeling, but the fact remains that none of them have found wide acceptance, which only asserts that UML remains the best alternative as far as visual languages are concerned.” This observation was very interestingly put forth by a representative at Scondar, which specializes in manufacturing pin header connectors.
Inputs from a representative at Ismolex aptly summarize the case of software industry’s love-hate relationship with UML design diagrams. “There may be a thousand arguments against the use of UML, but owing to its ability to capture the nuances of information about design architecture, and with the increasing importance of design documentation, UML remains irreplaceable.”
Advantages and Disadvantages of UML: Which Side are You on?
The denials and the adherences to UML diagrams will continue in the software circles. But, UML is here to stay. UML diagrams, however, need to be continuously upgraded so that their usage is not limited to just architecture description and communication, but broadened to represent and create systems that can accommodate dynamic changes.
I’m Rachel Oliver, I have been working for the past couple of years as a freelance writer and currently associated with Ismolex – Pin header manufacturer. While I like to write about all things under the sun, including energy, business, sports, home improvement and fashion, I am especially passionate about business, technology, and electronics. You can get in touch with me on Google+, Facebook and Twitter.