Unified Modeling Language (UML) is a standardized visual notation that can be used to represent all stages of a software engineering project. The standardized language allows for greater communication and cooperation between groups and companies that use it. The UML standard is managed by the Object Management Group (OMG).
UML began as a collaborative effort between software engineers at Rational Software during the mid-nineties. Grady Booch, James Rumbaugh, and Ivar Jacobson, known as the three amigos, had each independently created methods for diagramming object-oriented software and sought to combine their efforts into a unified approach. The three were tasked by Rational to create a non-proprietary modeling language, and with the help of a consortium of engineers from other companies, they completed UML 1.0 in 1997. UML 2.0 was adopted by OMG in 2005.
UML diagrams are divided into two broad categories: structure diagrams and behavior diagrams. Structure diagrams are used to map the relationships and dependencies between physical components, code, and data. Behavior diagrams model the actions that must occur within a system. These two categories are further broken down into 13 diagram types. SmartDraw provides explanations of each diagram type on its website.
A company that uses UML will not likely use every diagram type. Some are more popular than others. According to OMG Technical Director Andrew Watson, Use-case diagrams and Class diagrams are some of the most frequently used diagram types. Use-case diagrams, as well as activity diagrams, are often used to map different levels of business interaction between human actors and systems. Class diagrams are used to represent the static structure of programming objects in a system.
Profiles and tools allow for specialization
While UML is a general language designed for use in a variety of settings, specialized UML profiles have been created to model specific types of software engineering projects. UML profiles contain unique elements not found in standard UML that make modeling specific tasks easier. UML MARTE, for example, is designed to model real-time and embedded systems. Others include UML Profile for Enterprise Application Integration and UML Profile for System on a Chip.
Given a mutual commitment to compatibility and flexibility, it's no surprise that a UML profile exists for modeling SOA. SoaML was adopted by OMG earlier this year and is already included in several SOA tool sets. SoaML lets the user create models that identify service requirements, specify service functions, and define service consumers and providers, among other SOA-specific tasks. Standard UML can also be used for modeling SOA, but the SoaML profile is designed to make it much easier.
According to Watson, the OMG is not expected to adopt any new UML profiles in the near future, but the open access to the UML specification means that firms can create specialized tools guided by the UML spec. Several recent products, for example, include unique features built around the SoaML cartridge found in ModelPro, an open source product from ModelDriven.org.
The popularity of Use-case and Activity diagrams suggests that UML lends itself to Business Process Management (BPM). But according to Watson, UML is not widely used for BPM. Business Process Management Notation (BPMN), also administered by OMG, is more often used. The difference lies in the complexity of each language: "BPMN has been carefully designed for use by stakeholders. You could learn it [relatively easily]" Watson said. "UML is designed for technical experts."
Criticisms and Future
UML has received many criticisms since its inception. Some viewers have argued that UML suffers from a language bloat, as many of the diagrams are hardly used and some serve overlapping purposes. Others have suggested that, while UML is too difficult for business users to learn, it is too simple for programmers to create meaningful models. The scope of UML has also been criticized, as it can only be used to model individual software projects but not higher-level enterprise integration.
Despite these criticisms, UML remains the most popular modeling language for software engineering. In a recent paper published by the OMG, Watson cites a Gartner survey that reported UML was used in 70 percent of software development organizations world-wide. UML continues to be integrated into many tools and UML training courses are offered by many consultancies.
While UML remains popular, however, Watson pointed out that many companies who use UML do so in a limited way, and so are not receiving the potential business value UML can provide. In response, OMG created Model Driven Architecture (MDA). MDA is a software design approach done with UML that advocates using a platform independent model to fully design an application that is not governed by the technological resources around it. Because software modeled with the MDA is technology independent, it is often more flexible and reusable throughout the enterprise.
Profiles such as SoaML and initiatives such as MDA seem to mark the future direction of UML. Major revisions to the language itself are not expected. "You won't see a UML 3.0 anytime soon," said Watson. "There will be a series of minor revisions to UML. We'll add features, clean up bugs." Currently, OMG is working toward UML 2.3, which will enhance the underlying structure of UML. End-users of UML will not likely notice difference, said Watson, but the changes will help UML toolmakers design better software.