In this chapter, we look at how UML as a notation is used
within OOA&D.
Object orientation as a concept has
been around since the 1960's, and as a design concept
since 1972. However it was in the 1980's that it started
to develop as a credible alternative to a functional
approach in analysis and design. We can identify a
number of drivers.
The emergence of mainstream OO programming languages
like SmallTalk and particularly C++. C++ was a pragmatic OO
language derived from C, widely used because of its
association with Unix.
The development of powerful workstations, and with
them the emergence into the mainstream of windowing
operating user environments. Graphical User Interfaces
(GUI) have an inherent object structure.
A number of very public major project failures,
suggesting that current approaches were not
satisfactory.
A number of researchers proposed OOA&D processes, and
with them notations. Those that achieved some success include
Coad-Yourdon, Booch, Rumbaugh OMT, OOSE/Jacobson,
Shlaer-Mellor, ROOM (for real-time design) and the hybrid
Jackson Structured Development.
During the early 1990's it became clear that these
approaches had many good ideas, often very similar. A major
stumbling block was the diversity of notation, meaning
engineers tended to be familiar with one OOA&D methodology,
rather than the approach in general.
UML was conceived as a common notation, that would be in
the interests of all involved. The original standard was driven
by Rational Software (
www.rational.com,
in which three of the key researchers in the field (Booch,
Jacobson and Rumbaugh were involved). They produced documents
describing UML v0.9 and v0.91 during 1996. The effort was taken
industry wide through the Object Management Group (OMG),
already well known for the CORBA standard. A first proposal,
1.0 was published in early 1997, with an improved version 1.1
approved that autumn.
ArgoUML is based on UML v1.4, which was adopted by OMG in
March 2000. The current official version is UML v1.5 dated
March 2003, soon to be replaced by a major revision, UML v2.0,
which is in the final stages of standardization and is
expected to be complete in 2006.