Structured Design Strategies

Modern computer systems are large and complex requiring teams of expert designers. In order for teams to work effectively and for complexity to be managed a structured approach is required.

The structured approach allows team members to work independently on different partitions of the system and to communicate. The same structure is used for software, hardware and for system documentation.

Structure strategies are listed below. They represent a design philosophy, rather than hard and fast rules. It may be prudent to violate a rule or two on occasion.

Modularity

A top down approach is taken, where systems are divided then subdivided until a set of modules results. Each module ,

  • Performs one task.
  • Is independently testable.
  • Has well defined interfaces with other modules.
  • Module independence allows the system to be upgraded, maintained and debugged with a minimum of effort.

    Hierarchy

    Modules and submodules form an hierarctical structure.

    Regularity

    Modules, as far as possible will have identical appearance. Inputs and outputs will be similar. Each software module will have a similar header explaining the function of the module. The number of different modules is minimized, sometimes inefficient modules are used rather than creating new, more efficient but different, modules.

    Locality

    To minimize dependence of a module on external signals, signals are generated locally. Global variables are minimized. Complex functionality is hidden in submodules.