Structure Charts


The recommended tool for designing a modular, top-down system is a structure chart. A structure chart is a diagram consisting of rectangular boxes, which represent the modules, and connecting arrows. Structure charts encourage top-down design and support the concepts of modularity and top-down structured design. Top-down structured design deals with the size and complexity of an application by breaking it up into a hierarchy of modules that result in an application that is easier to implement and maintain.

Top-down design allows the systems analyst to ascertain overall organizational objectives along with ascertaining how they are best met in an overall system. Then, the analyst moves to dividing that system into subsystems and their requirements. The modular programming concept is useful for the top-down approach: once the top-down approach is taken, the whole system is broken into logical, manageable-sized modules, or subprograms. (The bottom-up approach to design, on the other hand, refers to identifying the processes that need computerization as they arise, analyzing them as systems, and either coding them or purchasing packaged software to address the immediate problem.)

Modular design is the decomposition of a program or application into modules. A module is a group of executable instructions (code) with a single point of entry and a single point of exit. A module could be a subroutine, subprogram, or main program. It also could be a smaller unit of measure such as a paragraph in a COBOL program.

Data passed between structure chart modules has either Data Coupling where only the data required by the module is passed, or Stamp Coupling where more data than necessary is passed between modules.

The modules in a structure chart fall into three categories:

  1. Control modules, determining the overall program logic
  2. Transformational modules, changing input into output
  3. Specialized modules, performing detailed, functional work

A lower level module should not be required to perform any function of the calling, higher level module. This would be "improper subordination."

A structure chart is a graphic tool that shows the hierarchy of program modules and interfaces between them. Structure charts include annotations for data flowing between modules.

Modules are represented by rectangles or boxes that include the name of the module. The highest level module is called the system, root, supervisor, or executive module. It calls the modules directly beneath it which in turn call the modules beneath them.

A connection is represented by an arrow and denotes the calling of one module by another. The arrow points from the calling (higher) module to the called (subordinate) module.

Note: The structure charts drawn in the Kendall and Kendall text book do not include the arrowhead on the connections between modules. Kendall and Kendall draw plain lines between module boxes.

A data couple indicates that a data field is passed from one module to another for operation and is depicted by an arrow with an open circle at the end.

A flag, or control couple, is a data field (message, control parameter) that is passed from one module to another and tested to determine some condition. Control flags are depicted by an arrow with a darkened circle at the end. Sometimes a distinction is made between a control switch (which may have two values, e.g., yes-no, on-off, one-zero, etc.) and a control flag (which may have more than two values).

Modules that perform input are referred to as afferent while those that produce output are called efferent.