System Architecture :
Object Oriented Design and Development

Software development, object oriented design, prototyping, quality assurance, software tools.
Author: Kurt Fedra
Oskarsson, Ö, and Glass, R.L. (1996)
An ISO 9000 Approach to Building Quality Software. 274 pp., Prentice Hall, NJ, USA, ISBN 0-13-228925-3.
Rumbaugh,et al., (1991)
Object Oriented Modelling and Design. Prentice Hall, NJ, USA. ISBN 0-13-629841-9.
Booch, G. (1991)
Object Oriented Design with Applications. Benjamin/Cummings, California, USA. ISBN 0-8053-0091-0.
Shlaer, S, and Mellor, S. (1988)
Object oriented systems analysis. Modelling the world in data. Yourdon Press, NJ, USA. ISBN 0-13-622940-7

Object Oriented Design Methodology

Object oriented design and development is based on models organized around real-world concepts. The fundamental construct is the Object, which combined both data structure and behaviour in a single entity.

Definition and language use varies. Rumbaugh (1989) refers to classification as objects with the same data structures (attributes) and behaviour (operations) grouped into a class. Shlaer-Mellor (1990) uses the term object to be the abstraction of like things, and refers to individual objects as instances. However, OOD can conveniently be described as including, or using, the following concepts:

  • Abstraction denotes the essential characteristics of an object that distinguishes it from all other kinds of objects.

  • Encapsulation is the process of hiding all the details of an object that do not contribute to it's characteristics.

  • Modularity is the property of a system that can be decomposed into a set of strongly cohesive and loosely coupled modules.

  • Hierarchy is the ranking or ordering of abstractions. Two kinds of hierarchical relationships are important here:

    • Aggregation i.e., is part of ... and

    • Inheritance i.e., is a kind of ....

  • Typing is the enforcement of the class of an object such that objects of different types may not be interchanged.

  • Concurrency is the property that distinguishes an active object which has its own thread of control from an inactive one, which does not.

  • Persistence is the property of an object through which it's existence transcends time (i.e., the object continues to exist after its creator ceases to exist) and/or space (the object's location moves from the one in which it was created).

While we will primarily use Rumbaugh OMT to guide the development methodology, we will adopt the terminology of Shlaer-Mellor for Objects, classes, and instances. The choice of approach is based on the main characteristics of ECOSIM, which include research orientation and a high degree of innovation, a heterogeneous and distributed development team, approximate user specifications from a diverse user group, and the pre-competitive nature of the product.

The main characteristics of the Rumbaugh OMT approach include:

  • stresses readability and expressive power
  • informal and flexible, based on recommendations
  • focus on adding additional detail to OO analysis models to achieve OO design
  • relies on coding for implementation
  • assumes OO design and implementation
  • ecourages iteration and prototyping during OOA
  • common notation for OO analysis and OO design
  • does not require simulation of (life cycle) models
  • combines top-down and bottom up approach with most-difficult-first (middle-out approach of rapid prototyping)
  • well proven for commercial, event driven (OO/C++) software products
  • appropriate for interactive (event driven) GUI software
  • support for common analysis design and implementation notation and language
  • implementation though coding (prototyping) cycles
  • more informal, middle-out life cycle.

Copyright 1995-2002 by:   ESS   Environmental Software and Services GmbH AUSTRIA