Flylib.com

Books Software

 
 
 

About the Authors

About the Authors

Martin Fowler is a pioneer in the application of object technology to business information systems. For the past twelve years , he has consulted in the area of object technology with such companies as Citibank, Chrysler Corporation, IBM, Andersen Consulting, and Sterling Software. He is the author of the acclaimed Anaylsis Patterns: Reusable Object Models . His latest book, Refactoring: Improving the Design of Existing Code , is a guide written for the professional; programmer interested in improving the internal design of existing code.

Kendall Scott is a technical writer who specializes in writing about financial and accounting applications. He is the principal of Software Documentation Wizards. He is also the co-author (with Doug Rosenberg) of Use Case Driven Object Modeling with UML: A Practical Approach , which outlines an efficient, proven, and streamlined approach to software development.

Chapter 1. Introduction

What Is the UML?

How We Got Here

Notations and Meta-Models

Why Do Analysis and Design?

Looking for More Information

What Is the UML?

The Unified Modeling Language (UML) is the successor to the wave of object-oriented analysis and design (OOA&D) methods that appeared in the late '80s and early '90s. It most directly unifies the methods of Booch, Rumbaugh (OMT), and Jacobson, but its reach is wider than that. The UML went through a standardization process with the OMG (Object Management Group) and is now an OMG standard.

The UML is called a modeling language, not a method. Most methods consist, at least in principle, of both a modeling language and a process. The modeling language is the ( mainly graphical) notation that methods use to express designs. The process is their advice on what steps to take in doing a design.

The process parts of many methods books are rather sketchy. Furthermore, I find that most people, when they say they are using a method, use the modeling language, but rarely follow the process. So in many ways, the modeling language is the most important part of the method. It is certainly the key part for communication. If you want to discuss your design with someone, it is the modeling language that both of you need to understand, not the process you used to get to that design.

The three amigos have also developed a unified process, which they call the Rational Unified Process (RUP). You don't have to use the Rational Unified Process in order to use the UML ”they are distinctly separate. In this book, however, I talk a little bit about process in order to put the techniques of the modeling language in context. Within this discussion, I use the basic steps and terms of the Rational Unified Process, but the text is not a description of the the Rational Unified Process. I find that I use many different processes, depending on my client and on the kind of software I am building. Although I think that a standard modeling language is valuable , I don't see a comparable need for a standard process, although some harmonization on vocabulary would be useful.

How We Got Here

In the 1980s, objects began to move away from the research labs and took their first steps toward the "real" world. Smalltalk stabilized into a platform that people could use, and C++ was born.

Like many developments in software, objects were driven by programming languages. Many people wondered how design methods would fit into an object-oriented world. Design methods had become very popular in industrial development in the '70s and '80s. Many felt that techniques to help people do good analysis and design were just as important to object-oriented development.

The key books about object-oriented analysis and design methods appeared between 1988 and 1992:

  • Sally Shlaer and Steve Mellor wrote a pair of books (1989 and 1991) on analysis and design; the material in these books has evolved into their Recursive Design approach (1997).

  • Peter Coad and Ed Yourdon also wrote books that developed Coad's lightweight and prototype-oriented approach to methods. See Coad and Yourdon (1991a and 1991b), Coad and Nicola (1993), and Coad et al. (1995).

  • The Smalltalk community in Portland, Oregon, came up with Responsibility-Driven Design (Wirfs-Brock et al. 1990) and Class-Responsibility-Collaboration (CRC) cards (Beck and Cunningham 1989).

  • Grady Booch had done a lot of work with Rational Software in developing Ada systems. His books featured several examples (and the best cartoons in the world of methods books). See Booch (1994 and 1996).

  • Jim Rumbaugh led a team at the research labs at General Electric, which came out with a very popular book about a method called Object Modeling Technique (OMT). See Rumbaugh et al. (1991) and Rumbaugh (1996).

  • Jim Odell based his books (written with James Martin) on his long experience with business information systems and Information Engineering. The result was the most conceptual of these books. See Martin and Odell (1994).

  • Ivar Jacobson built his books on his experience with telephone switches for Ericsson and introduced the concept of use cases in the first one. See Jacobson (1992 and 1995).

As I prepared to travel to Portland for the OOPSLA conference in 1994, the methods scene was pretty split and competitive. Each of the aforementioned authors was now informally leading a group of practitioners who liked his ideas. All of these methods were very similar, yet they contained a number of often annoying minor differences among them. The same basic concepts would appear in very different notations, which caused confusion to my clients .

Talk of standardization had surfaced, but nobody seemed willing to do anything about it. Some were opposed to the very idea of standards for methods. Others liked the idea but were not willing to put in any effort. A team from the OMG tried to look at standardization but got only an open letter of protest from all the key methodologists. Grady Booch tried an informal morning coffee approach, with no more success. (This reminds me of an old joke. Question: What is the difference between a methodologist and a terrorist? Answer: You can negotiate with a terrorist.)

For the OO methods community, the big news at OOPSLA '94 was that Jim Rumbaugh had left General Electric to join Grady Booch at Rational Software, with the intention of merging their methods.

The next year was full of amusements.

Grady and Jim proclaimed that "the methods war is over ”we won," basically declaring that they were going to achieve standardization the Microsoft way. A number of other methodologists suggested forming an Anti-Booch Coalition.

By OOPSLA '95, Grady and Jim had prepared their first public description of their merged method: version 0.8 of the Unified Method documentation. Even more significantly, they announced that Rational Software had bought Objectory, and that Ivar Jacobson would be joining the Unified team. Rational held a party to celebrate the release of the 0.8 draft that was very well attended. It was also quite a lot of fun, despite Jim Rumbaugh's singing .

During 1996, Grady, Jim, and Ivar, now widely referred to as the three amigos, worked on their method, under its new name : the Unified Modeling Language (UML). However, the other major players in the object methods community were not inclined to let the UML be the last word.

An OMG task force was formed to do standardization in the methods area. This represented a much more serious attempt to address the issues than previous OMG efforts in the methods area. Mary Loomis was given the chair; later Jim Odell joined as co- chair and took over leadership of the effort. Odell made it clear that he was prepared to give up his method to a standard, but he did not want a Rational-imposed standard.

In January 1997, various organizations submitted proposals for a methods standard to facilitate the interchange of models. These proposals focus on a meta-model and an optional notation. Rational released version 1.0 of the UML documentation as their proposal to the OMG.

There then followed a short period of arm-twisting while the various proposals were merged. The OMG adopted the resulting 1.1 as an official OMG standard. Since then, a Revision Task Force (RTF), led by Cris Kobryn, made some incremental revisions. Version 1.2 was cosmetic, but version 1.3, made public in early 1999, had more significance. The RTF expects to complete its work in the spring of 1999, releasing version 1.3 as the next official version of the UML.