Unified Modeling Language (UML) is a software modeling language with an emphasis on graphics and motion. It is the industry standard language for software modeling and design, according to Sparx Systems. However, some developers and software design companies may experience issues using UML. Disadvantages to using UML include adding tasks to a project's work scope and relying on UML diagrams too heavily.
One disadvantage some developers might find when using UML is the time it takes to manage and maintain UML diagrams. To work properly, UML diagrams must be synchronized with the software code, which requires time to set up and maintain, and adds work to a software development project. Small companies and independent developers might not be able to handle the added amount of work required to synchronize the code.
Unclear Who Benefits
It is not always clear who benefits from a UML diagram. According to an article published on the Eiffel Software website, UML is not advantageous to software developers, mainly because software developers work with code, not pictures or diagrams. UML diagrams may be beneficial to project managers or executives to illustrate how a software tool will work, but it might be easier to draw the diagram out on a whiteboard or piece of paper, rather than take the time to learn the UML language.
Diagrams Can Get Overwhelming
When creating a UML diagram in conjunction with software development, the diagram might become overwhelming or overcomplicated, which can be confusing and frustrating for developers. Developers cannot possibly map out every single scenario for a software tool in the diagram, and even if they try to, the diagram gets messy. One way developers can combat this issue is to only include basic facts and high-level information in UML diagrams, according to a post on Stack Overflow by Stefano Borini, a quantum chemist and UML developer.
Too Much Emphasis on Design
UML places much emphasis on design, which can be problematic for some developers and companies. Looking at a software scope in a UML diagram can lead to software project stakeholders over-analyzing problems, as well as cause people to lose focus by spending too much time and attention on software features. Companies cannot solve every problem with a software tool using a UML diagram -- eventually, they just have to start coding and testing. Brody Gooch, a co-creator of UML, said that the original vision for UML was a "graphical language to help reason about the design of a system as it unfolds." If people get hung up using a diagram to identify and solve issues, it can delay the actual work that needs to be done to fix the issues.