Grady Booch is a co-founder of Rational Software and a key author of Unified Modeling Language, along with Ivar Jacobsen and Jim Rumbaugh. Booch spoke with eWEEK Senior Editor Darryl K. Taft earlier this month about UML, modeling and competing with Microsoft Corp., which is about to release its foray into the modeling world with Visual Studio 2005 Team System.
Is it progress that more people are looking at modeling at all, rather than the whole issue of looking at DSLs [domain-specific languages] versus UML?
Yeah. I think it is a good sign that people are considering modeling. And its inevitable in a number of ways. The whole march of software engineering over the decades has been one of growing levels of abstraction. And modeling is exactly that; its looking at abstractions beyond the level of just textual languages themselves.
It used to be the case in classic kinds of applications [that] the code was the thing. But now that, to steal a phrase from Sun, the network is the computer, just looking at raw code is not enough. And our traditional textual languages are radically insufficient to be able to reason about and understand the behavior in these kinds of systems. That forces us to consider other ways to look at these, and thats all about abstraction and thats all about modeling.
So modeling was inevitable, and Im delighted to see all the major vendors pick up on it.
Suns TopHat project is another good example of modeling. Suns got it; Microsofts got the notion; its kind of everywhere.
What do you believe Microsofts goal is regarding UML?
Total world domination [laughs]. Its been curious following Microsofts dance with UML over the years. I remember distinctly a meeting I had—and I dont remember who was there, but in the early days when Jim Rumbaugh and Ivar [Jacobsen] and I got together. Given the strategic relationship that Rational [Software Corp.] had with Microsoft at the time, we were really just begging to consider putting our modeling tool with Visual Studio.
Mike [Devlin, former Rational CEO] had put me on the task of working with Jim and then Ivar to unify our methods. That became the Unified Modeling Language. And it became clear that we needed some partners to deal with this.
The very first partner we ever spoke to—to [ask], "Would you be interested in joining us in moving forward with the OMG [Object Management Group] to standardize?"—was Microsoft. And literally, until the week or so before we presented the UML 1.0 standard to the OMG for standardization, Microsoft was a part of the UML team.
In fact, the notation for interfaces we put in the UML 1.0 spec came directly from Microsoft. So Microsoft was an active and supporting part of the UML, but when they got to the brink and were going to be a part of this open organization to support UML, they looked at the edge of the cliff and said, "Were not going to go there with you."
Why they chose to do that was never fully explained to us. They backed out, but, by that time, we had sufficient momentum in the marketplace that we didnt need Microsoft to help us move forward there.
What happened after that?
That really marked the beginning of the end of Microsofts participation in the UML. While Microsoft and Rational had a long and very fruitful relationship prior to the IBM acquisition [of Rational]—and we still do have a good relationship—Microsoft has realized modeling is essential in this new generation of programming, and its something whose destiny they themselves would like to control as they have traditionally done in the past with operating systems.
What common ground exists between Microsofts and IBMs approach?
Things that come to mind in terms of common ground: First, we acknowledge that modeling above a textual language is a good thing and that connection of those models to executables is a good thing. So ignoring the specific expression, Microsoft has come to the same realization as their customers that the .Net programming model is way too complex, services are the way to go, and getting to services by whacking out WSDL [Web Services Description Language] or lots of XML is too complicated. So some degree of modeling needs to be done. Thats absolute common ground.
Another level of the common ground is that both Microsoft and IBM realize that no single view of modeling is sufficient. Rather, one must have multiple views from multiple stakeholders, and the exciting possibilities of the tools are the weaving of those together.
Microsoft is using terminology thats almost identical to the terminology Rational used about its suites back five, six, seven years ago ... in which theyre acknowledging the existence of roles in the development team that are beyond just the traditional developer.
We have a slightly different view than Microsoft, which is more of an aspect-oriented-programming view that says every one of these stakeholders has legitimate views.
Is there a corollary to DSLs in UML?
Id say yes, in two dimensions. When Jim and I designed UML, we were heavily influenced by Philippe Kruchtens ideas of the "four plus one" model view, which is the observation that theres no single view of a system sufficient to describe its architecture, but there are multiple views—some of them are logical and some of them are physical. [Kruchten is a professor of software engineering at the University of British Columbia, in Vancouver, and co-developer of the Rational Unified Process development method.] That forced us to consider, in UML, things that addressed not just the logical software stuff but even things like network topology upon which stuff runs. So, in that regard, the very design of UML already embodies these domain-specific things because they are really different views that we weaved together with common semantics.
The other thing built into it is the fact that the UML has extensibility mechanisms that allow us to capture certain kinds of patterns that we can express in certain domains.
How do you feel as an inventor of a standard? Do you feel like you have to protect and oversee it, or are you open to seeing others pick up on it, possibly even to do open-source implementations of UML?
Ive seen some baseball players and other sports stars who hang on to the very end and want to retain that glory, but you find some others who are a bit more graceful about it. So, frankly, a lot of what Ive been doing on the UML side over the last couple of years is intentionally not glom onto it but step back to let the next generation take it, people like [IBM Distinguished Engineer at IBM Rational Software] Bran Selic and others.
Where I am in my career part of my role is to get out of the way and make it possible for the next generation to get involved. Ultimately, we all grow old.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.