In-Depth

Q&A: Some notes on UML 2.0

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.