Object-Oriented Design and the UML
There are several different object-oriented development methodologies in use today, each with its strengths and weaknesses. The older, more traditional methodologies are often called "heavyweight" methodologies, and are most useful for large software projects involving tens or even hundreds of programmers over years of development effort. The newer methodologies, called "lightweight" or "agile" methodologies, are more appropriate for smaller projects. Many of these are quite new and are still being standardized.
Design and development methodologies have always needed a graphical notation to express the designs. In the past, a major problem has been that each major methodology has had its own graphical notation. This all changed with the emergence of the UML as the standard notation. Any current design methodology, heavyweight or agile, uses or can benefit from the UML.
The UML originated in the mid-1990s from the efforts of James Rumbaugh, Ivar Jacobson, and Grady Booch (The Three Amigos). There is a standard specification of the UML coordinated by the Object Management Group (http://www.omg.org). OMG is an industry-sponsored organization devoted to supporting vendor-neutral standards for the object-oriented development community. The UML has become the de facto standard object-oriented notation.
The UML is designed for discussing object-oriented design. Its ability to show objects and object relationships is especially useful, and it will be used in examples throughout this book. The various features of the UML will be introduced as needed.