Integration Plan:
Object Oriented Design and Development
- Keywords:
- Software development, object oriented design, prototyping,
quality assurance, software tools.
- Release 0.2, 10 December 1998
- Author: Kurt Fedra
- Reference:
- 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.