Chapter 3.  UML Based OOA&D

Table of Contents

3.1. Background to UML
3.2. UML Based Processes for OOA&D
3.2.1. Types of Process
3.2.2. A Development Process for This Tutorial
3.3. Why ArgoUML is Different
3.3.1. Cognitive Psychology
3.3.2. Open Standards
3.3.3. 100% Pure Java
3.3.4. Open Source
3.4. ArgoUML Basics
3.4.1. Getting Started
3.4.2. The ArgoUML User Interface
3.4.3. Output
3.4.4. Working With Design Critics
3.5. The Case Study (To be written)

In this chapter, we look at how UML as a notation is used within OOA&D.

3.1.  Background to UML

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.

  1. 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.

  2. 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.

  3. 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.