This month marks the 15th anniversary of the Object Management Group (OMG) adoption of the Unified Modeling Language (UML) as an official specification. Although at times controversial, UML has come to play a big role in modeling modern applications.
Before UML, the world of object-oriented analysis and design was overrun by many vying object methodologies. UML came about in large part from a collaboration of object methodologists Jim Rumbaugh, Ivar Jacobson and Grady Booch, who came to work together in the mid 1990s at Rational Software, now part of IBM.
Rational had in fact responded to an OMG RFP for standards submissions. After various input (the eventual UML notation centered on "boxes" to represent classes, as opposed to Booch's original "clouds") a unanimous vote on 25 September 1997 recommended UML for adoption by the OMG's OA&D Task Force.
Today it is used to model structure and behavior of varied software systems throughout many industries. UML is the basis for many modeling tools, from companies both big and small. A milestone of sorts was holdout Microsoft's belated embrace of UML in 2008 (announced by no less than founder Bill Gates at his last TechEd keynote).
UML grows bigger
If you look back before UML, there was a wide range of mostly mutually incompatible modeling options, said Mike Milinkovich, executive director of the Eclipse Foundation, for people collaborating on open source software. "UML did a good job of pulling together a fairly fractured community and creating a standard that everyone could look to," he said. "It has enabled a whole modeling community, including the open source community here."
OMG President William Hoffman well remembers the roots of UML -- the era of plentiful modeling methodologies. "It was the follow-on battle to the battle to uncover 'which language was going to the big object-oriented language,'" he said. "It became the methodology and design war."
Through the years, UML has added additional elements, many of which support embedded systems and model-driven code generation. Some people now wonder whether it has been asked to do too much.
Tony Baer, senior analyst at Ovum, said UML has grown and changed -- but not always for the better. For instance, he notes, UML 2.0 grew so complex that, in his view, it became far less usable. "Many people using UML today actually rely on the original UML specification," he notes.
Still, there is much to admire in UML. It may be said to have foreshadowed a broader commitment to standards in application development -- one that was less notable in the mid-1990s than it is today.
"This was a particularly vibrant time in software engineering, with powerful ideas coming from many other methodologists," noted Grady Booch (currently IBM fellow, chief scientist for software engineering, IBM Research) in a prepared statement.
"It was a rare case where an industry standard, presented by several people in one company, actually won over a bunch of rivals," said Baer. He said UML came along on one of the waves of application development innovation, in this case following on the development of client-server computing in the early 1990s.
"All of a sudden there was a vast flowering of development once we were free of the green screen," he says. At the time, too, computer-aided software engineering (CASE) had fizzled spectacularly, despite endless hype.
"CASE was a top-down disaster, but some people felt that maybe some of the modeling concepts it included might be helpful to explore,'' he says. And, despite clashes of egos and interests, "IBM, Microsoft, and Oracle actually agreed."
While UML has incorporated many extensions and profiles over time, some have been less successful than others. Baer points out that Systems Modeling Language (SysML), a general-purpose modeling language for systems that is directly descended from UML, has been "an unqualified success story," he says.
OMG's Hoffman says the somewhat numerous UML extensions are a byproduct of the OMG's open specification process. "Our specification process is open," he said. "UML goes where the community wants it to go. We are actually tickled to see all the uses it's been extended to since its early days of doing diagrams."
"UML 2.0 is a bigger language than UML 1.1 was," said Ed Seidewitz, vice president for Model Driven Architecture Services at Model Driven Solutions. "Whether it is too big is a judgment call."
The language does not require software architects to use it in its entirety, he notes, and different individuals use different parts.
"Most people don't use the whole language. There is very little that isn't being used by someone," he said. "The key thing is you can have a big language, and you don't have to use the whole thing."
UML still has room for growth, and at times it has been positioned as somewhat anathema to Agile development. For his part, Baer says UML's adoption was blunted somewhat by the pressure to speed development and delivery and by Agile software development. "People were anxious to avoid analysis paralysis," he said, "and that put a brake on UML."
"For many, UML is how they define their own models; they like to draw visuals and use and activity diagrams, which is part of UML," said Ed Merks, president of Macro Modeling and technical lead of the Eclipse Modeling project.
"Certainly there are a lot of organizations out there that like UML and see it as an important standard and make use of it to describe their information, the things they are trying to do and share in a visual way with other architects and to fully specify what needs to be implemented," said Merks.
There is room for improvement, however. For example, Merks chides OMG for not embracing reference implementations, something he says has hurt UML. For example, he said, "everyone implemented XML serialization and deserialization but with their own spin and with some things not fully specified so everybody did it in their own way and, consequently, it got quite hard to define exchangeable formats between the vendors."
Looking ahead to UML 2.5
The next step for UML is Version 2.5, which in ways appears intended to address some concerns. A major goal is simplifications. "The UML 2.5 Specification is easier for tool builders and vendors to understand, making conformant tools from different vendors more consistent and interoperable," said Richard Soley, CEO of OMG.
He foresees the development of UML 2.5 as part of an overall effort to make the UML ecosystem better, more precise and more usable.
UML is a big and complicated language, and making fundamental changes is difficult. The upcoming version of UML 2.0 "isn't actually simplifying UML, it's simplifying the spec," said Ed Seidewitz, who is part of a working group considering near and longer term UML changes. "The thinking of the UML community was that, in the near term, we could at least make the spec more useful -- more clear, consistent and correct."
Looking forward, UML 2.5 "provides a firm basis for any future changes or enhancements to UML," said Richard Soley. Looking back, "it's been a good run," said OMG's Bill Hoffman.