next up previous
Next: Abstraction Up: Programming Projects Previous: Architecture

The Design Process

Computer systems, whether one program or a thousand programs, tend to arrange themselves into categories of operation.

  1. Problem-domain component. These elements directly deal with the user's problems.
  2. User-interface component. These elements allow for input and output in agreed-upon fashion.
  3. Task-management component. Task-management relates to hardware interfaces, operating system interfaces, window systems, etc.
  4. Data-management component. Data-management relates to maintenance of persistent data; i. e., databases, files, etc.
In some cases, there may be other components as well. At the end of the design process, most likely there will be elements from each component. The task of design is to organize components into a computer system that can be implemented, tested, maintained, and enhanced.

The design of the system is composed of both modules, data, and routines. The distinction is blurred. A module is a collection of routines that act on the (whatever the means) data. The quality of a particular choice of modularization (which means both modules and routines) is measured in terms of cohesion and coupling as described in Section 8.3. In informal terms, cohesion is a measure of how well data and routines have be brought together in one place and coupling measures how well two routines are separated. The third leg of the stool is called information hiding, discussed below.

There are several key concepts to design. In object-oriented design, we use abstraction, encapsulation, modularity, inheritance, classes, and objects. An integral part of the object-oriented design is the concept of information hiding.

The desirable characteristics of designs are shown in Figure 3.

   table127
Table 3: Desirable Design Characteristics.

Finally, some global considerations are shown in Figure 4.

   table134
Table 4:





Steve Stevenson
Wed Feb 26 10:54:45 EST 1997