2.1 Origins of UML
Modeling
languages for object-oriented software have been around since the
1970s and began to proliferate in the late 1980s. The profusion of
modeling options caused problems, and no single approach managed to
reach critical mass. Thus, while many approaches were helpful in the
design process itself, no common vocabulary emerged. The debates
between the practitioners of different modeling systems are sometimes
referred to as the "method wars,"
which brings to mind some fairly amusing images of the goings-on at
academic conferences in the late 1980s and early 90s.
The UML specification developed out of the method wars. Grady
Booch, James
Rumbaugh,
and Ivar Jacobson emerged as the leading lights in
the modeling movement. Booch's approach was
design-oriented, while Rumbaugh's Object Modeling
Technique was geared toward data analysis. Jacobson created the
Object Oriented Software Engineering
(OOSE) method, which focused on developing "use
cases" to feed system design. Jacobsen is known as
the Father of Use Cases.
In 1994, Rumbaugh joined Booch at Rational Software, and introduced
Version .8 of UML in October. A year later Jacobson arrived at
Rational, and the three focused on merging their different, yet
largely complementary approaches into a single model. Booch,
Jacobson, and Rumbaugh became known as the Three Amigos. The Software
Development Life Cycle (SDLC) they developed at Rational is known as
the Rational Unified Process, but the modeling language associated
with it can be applied in any number of frameworks.
In 1996, in response to a request for standards proposals from the
Object Management Group, Rational formed the UML Partners Consortium
to gather support for the standard. UML 1.0 was submitted to the OMG
in January 1997 as a suggested specification.
The consortium followed up with the UML 1.1 proposal, and in November
1997, the UML specification was accepted as a standard. Subsequent
iterations have brought the UML to Version 1.4, and a substantially
improved version, 2.0, is currently in the advanced preparatory
stages. The rest of this chapter focuses on key elements of UML 1.4.
|