Unified modeling language (UML) was created so that software professionals could have a standard way to visualize a system design. Unfortunately, some developers have exaggerated views of UML's capabilities, which has led to misuse and avoidable mistakes.
In the right use cases, UML can help developers integrate the design perspectives needed across a business system, said Ed Seidewitz, consultant with Ivar Jacobson International.
Proper fits for unified modeling language
There are numerous scenarios where UML can be used effectively, especially since it's a commonly known industry notation. Most of those situations are those where developers need help comprehending a system and defining it. It's really good at understanding how the parts and pieces fit together to provide a design, a solution at that level," said Cory Casanave, CEO of Model Driven Solutions.
Microsoft architect Steve Cook offered some other areas where UML shines:
- To sketch designs for parts of a system.
- Within a model-driven development approach.
- As an executable specification where the model is basically finished.
Many people think of UML has being ideal for getting everyone on the same page, a problem that can be particularly evident with large teams. Even when working in small groups focused on a common code, UML may be beneficial. "A lot of what we need to discuss is very abstract, and there is no way to easily deal with it other than by drawing some sort of abstract representation of it," Seidewitz said.
Even though UML has its roots in object modeling, the notation has evolved over the years. "It has really come into the realm of having multiple perspectives for information and processes and services and how those things work together," Casanave said. Cyberterrorism and security threats are just two of the areas that can benefit from the technology, he said.
Selecting the right unified modeling language tool
Once it's been established that working with UML makes sense, it's important to select appropriate tools in order to reap all the benefits of the notation. "Good tools are the key," Microsoft's Cook said. "If a tool has good features for laying out and constraining diagrams, it can greatly ease the burden on modelers."
Good tools are the key.
Steve Cook, Microsoft
Sparx Systems is popular with some enterprise architects because it's an affordable, full-featured UML tool that can be built upon, Ivar Jacobson's Seidewitz said. No Magic's Magic Draw is known for being a solid tool and for those looking for something more high end, there is Rational Software Architect by IBM.
As for whether developers will benefit most from open source or commercial modeling tools, it all boils down to who the users are. "Commercial modeling tools are likely to be easier to use, better supported and more feature-rich than open source tools and hence more approachable for non-expert users," Cook said.
Avoidable unified modeling language mistakes
There are, however, times when developers try to make UML solve problems that aren't a good match for the notation or at inappropriate times. "It's possible to get into 'analysis paralysis' – to try to create complete models for a system before starting on implementation," Cook said. "That's almost always a mistake, unless the system has very stringent requirements for formal verification."
More on unified modeling language
UML 2.5 aims to simplify life for developers
Quiz: Find out your UML IQ
While UML can be an effective means of communicating information, it really depends on how data is being relayed. Seidewitz noted that if UML is used as essentially a handoff between groups in a traditional waterfall approach, problems will ensue. "UML has been tarnished by being used that way a lot, but that is not inherent with the use of UML," he said.
Some developers struggle to keep UML models and code in sync, which is a problem that can easily occur in projects with hundreds of thousands of code lines. Over time, this maintenance can become problematic because a great deal of time can be wasted regenerating diagrams. Seidewitz likened maintenance to cleaning. "You can keep it clean a little bit of the time, or every once in a while you're going to be forced to really clean it up," he said. "That ultimately takes more time, but requires discipline along the way."
Model Driven Solutions' Casanave echoed the value of proper upkeep of UML diagrams. When diagrams aren't implicitly done, projects are more likely to take a greater period of time to complete and even fail, he said. "Taking that time upfront is going to reduce the time it takes you to actually come up with a usable result," he said. "The failures in large systems is famous. The cost of that is enormous."
Maxine Giza is the associate site editor for SearchSOA and can be reached at firstname.lastname@example.org.