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
September 2001. The current official version, supported by ArgoUML,
is UML v1.4.2 dated July 2004, adopted as ISO/IEC 19501.
The latest UML version is UML v2.1.2, from November 2007.