In-Depth
Q&A: Some notes on UML 2.0
- By Jack Vaughan
- December 1, 2002
A second release does not always excite the industry, and UML 2.0 is not an
exception. Yet there are elements in the evolution of the ground-breaking
modeling language that bear watching. Not too long ago, we talked with Rational
Software executives, including Grady Booch, one of the originators of the
Unified Modeling Language (UML). ADT's Jack Vaughan asked Grady a few questions
about pertinent trends.
Q: Thinking back to the original UML, what you were trying to achieve and how
do you think you did?
A: Well, remember, it was not just me, Jim [Rumbaugh]
and Ivar [Jacobson], but a whole host of players that made UML happen. It was
with our partners that UML became reality. I can speak for myself, but I can't,
certainly, speak for the UML community at large.
What was in my head at the time, and still remains, is the reality that the
complexity of software systems is widening. There are fundamental limits upon a
human's ability to address complexity, and modeling is one of the most profound
ways to help people reason, justify and construct systems of complexity.
The great thing about modeling is that everybody does it; you can have a
white board in your office and you're doing modeling. The fundamental value of
UML is that it enables a common language for modeling and, with deep semantics,
creates the opportunity for lots of tools that can do code generation, thereby
eliminating [the need for] human code creation.
Tools can help [users] deal with issues of semantic consistency and all these
other kinds of things that would otherwise be tedious for humans. The other
thing about UML is that it addresses the perspectives of stakeholders that may
not necessarily be code warriors. It crosses the gap between code warrior and
non-code warrior.
Q: Have tools made progress in successfully generating code?
A: Well,
certainly. Indeed, a lot of what is in UML 2.0 makes it far easier for the
community to do deeper code generation to the level of what some call
model-driven development. [By this, they] mean that our traditional languages --
C++ and Java -- become, in effect, the assembly languages of our models, and
therefore drive toward the direction of direct executability.
In fact, we see that today. If you look at Rational Rose Real-Time, there is
the ability to generate state machines and, in effect, to directly execute
against. There's an immediate code-generation process, but that's kind of
irrelevant to the user. What is in the models is what's running.
Q: We talked briefly with Steve Mellor, and he discussed his concept of
executable UML. He has been involved with the UML 2.0 proposal. What is your
view?
A: Steve, for a long time, has very much pioneered the notion of direct
executability of UML, and I think it's a very good and interesting idea. My
personal opinion is that pragmatically, users will continue to want to see a mix
of both textual code and models. Complete executability of UML models is an
interesting concept, except it doesn't address bolting together systems with
legacy, building in the seams of lots of systems with Perl and other kinds of
things; [it] just straps them together. And so the real world tends to be a
little bit messier than just direct executability of UML.
Q: Any general comments on 2.0 highlights from your point of view?
A: From
the perspective of the typical user of 1.x, they will see very few differences
in 2.0. There will, of course, be deeper semantics that will enable some of the
cool direct executability and model-driven development stuff, as well as some
additional things, especially in the area of components and some of the dynamic
diagrams.
Q: Can use of software patterns accelerate development?
A: We see lots of
cases where people are saying, 'Hey, I've got this common problem everybody else
has. I can either do it myself or I can reach out here to a pattern and implant
it on my system.'
Doing that at the dimension of models is far more efficient than doing it at
the dimension of code. That's another thing that models do for you.
We have in XDE the Gang of Four patterns, which are interesting, but pretty
much horizontal. But there are the Sun J2 patterns as well. And those things
help in the acceleration of developing good code.
Q: We saw you at an OOPSLA conference where you
recalled an old Saturday Night Live
joke -- 'It's a floor wax and a dessert topping' -- when referring
to people's outlooks on what UML could do. Are people trying to throw too much
into UML?
A: There continues to be movement to push UML in ways that we never
anticipated: Using it for business process modeling ... we see customers using
UML to describe whole systems that involve hardware and software. We never
anticipated that, but it's not surprising, because increasingly, the UML has
found value in all kinds of software systems.
Another good case in point: With the emergence of Web services, the UML
continues to play a role there as we see organizations desiring to wire apps
together based upon services.
About the Author
Jack Vaughan is former Editor-at-Large at Application Development Trends magazine.