Structure Chart

Structure Chart for Program Design

In software engineering, a structure chart (SC) is a top-down hierarchical diagram used to illustrate the modular breakdown of a software system. Employed especially in the era of structured programming, structure charts facilitate the organization and design of complex programs by decomposing the system into manageable components.


Structure charts help achieve the following goals in program design:

  • Modularity: Break down large, complex programs into smaller, more easily comprehensible modules.
  • Abstraction: Hide implementation details within modules, promoting clear interfaces and better maintainability.
  • Top-down Design: Provide a structured approach to problem-solving by starting with high-level concepts and progressively refining them.
  • Visualization: Create a visual representation of the program's hierarchical structure, making it easier to understand relationships between components.

Symbols and Notations

Structure charts use a standard set of symbols to represent different elements:

  • Module: A rectangle represents a module or functional unit within the program. The module's name is written inside the box.
  • Control Flow: Lines between modules depict the flow of control, indicating the order in which modules are executed.
  • Data Flow: Arrows attached to lines show the direction of data passed between modules. Data items are labeled above or below the arrows.
  • Conditional Calls: A diamond shape above a line signifies a conditional call. Modules below the diamond are executed selectively based on a condition.
  • Iterative Calls: A curved arrow looping back to the connecting line denotes iteration (repetition) of a module.


  • Clarity: Structure charts effectively communicate the program's organization, easing understanding.
  • Maintenance: Modularity improves program maintainability as changes can be isolated to specific parts of the system.
  • Design Aid: The process of creating structure charts facilitates organized and structured program design.


  • Complexity: Structure charts can become cumbersome for very large and complex systems.
  • Object-Oriented Paradigm: Less commonly used in modern object-oriented programming, where tools like UML diagrams better reflect class relationships.