Table of Contents
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.