Thursday, December 13, 2007

Interview with Grady Booch

This is the original text of an interview with Grady Booch, later translated in Italian and published in Computer Programming. In the following text, CP stands for Carlo Pescio and GB for Grady Booch.


CP: This is probably the Most Frequently Asked Question, but would you mind telling something about the UML. For instance, why did you decide to move the emphasis from a notation + methodology to a true modeling language?
GB: Actually, this is a FAQ; i've written up a series of such FAQs, which appear on http://www.rational.com in the oo technology pages. Briefly, there are a two reasons for this change. First, it was clear that a number of users wanted the ability to adapt their own process to the UML; indeed, different domains demand different approaches. Second, the focus of the OMG RFP for OOAD is focused on modeling languages, not processes.


CP: I've heard more than a few peoples saying that "UML is too hard/comprehensive". I guess this is because your preliminary documentation is quite different from the OOA/D books peoples are used to. But as you move from a methodology to a language, an higher degree of formalism is unavoidable. Don't you think that having to learn a more formal semantics will scare some of the analysts? I'm thinking e.g. to business experts who used to do the analysis, but had little computer science knowledge.


GB: It is true that the UML is comprehensive; we have tried to address the traditional and contemporary modeling problems (class models, state machine models, etc). We have also tried to cover issues of business modeling (since they often flow into an oo system) as well as executable semantics. Further, we've tried to be forward looking, meaning that we are focused on software development trends, most notably issues of componentware, distributed computing, and net based applications. These elements are all covered by the UML. It is also true that the current UML documents are not highly approachable to the novice. Indeed, the introduction of these documents explicitly states so. However, these documents are meant to specify the language, not to explain it. This is not unlike, for example, the C++ ARM. This is not how a beginner would learn to programm in C++.
The amigos are writing three books to mitigate this problem: a user guide, a reference manual, and a book on process. In addition, we know of several other books in the works that will be using the UML. In fact, "Core Java" already contains some UML diagrams (based on the .8 work)

No comments: