next up previous
Next: The Design Process Up: Prelude to Dealing with Previous: Requirements

Architecture

The term architecture means the overall design or ``top-level design.'' The most important part is the conceptual integrity of the system--how the whole system ``hangs together.'' First and foremost, the architectural specification gives the overview of the system. It also should specify the interfaces between and among modules. A module is a collection of routines working together to perform some high-level function. These are not routines themselves. The kinds of information in the architectural specification are

  1. Each module is listed with its task.
  2. Major data structures defined--this means files, tables, etc.
  3. Key algorithms are given along with alternative strategies.
  4. Major objects [especially in this class].
  5. Generic functionality
    1. Any specific interface requirements.
    2. Input/Output
    3. Memory management
  6. Error Processing
    1. Attempt to recover?
    2. Active or passive?
    3. Do errors propagate upward?
    4. Error message conventions?
    5. Who validates what data?
  7. Robustness. Use of asserts is required in this class.
  8. Performance.

Again, there is no checklist for every case. A suggested set of questions that should be used in class are given in Figure 2.

   table103
Table 2: Architecture Concepts To Consider



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