Structure Chart
Definition
A Structure Chart is a hierarchical diagram that shows the decomposition of a system into modules, the calling relationships between them (which module invokes which), and the data/control information passed between modules — the primary output of Structured Design.
Notation
| Symbol | Meaning |
|---|---|
| Rectangle | A module |
| Arrow (line connecting boxes) | Calling relationship (parent calls child) |
| Arrow with open circle (data arrow) | Data passed between modules |
| Arrow with filled/solid circle (control arrow/flag) | Control information passed (e.g., a flag) |
| Diamond at branch | Conditional call (module calls one of several children based on a condition) |
| Curved arrow at branch | Iterative call (module calls children repeatedly in a loop) |
Example Structure Chart (simplified)
[Process Order]
/ │ \
[Get Order] [Validate] [Generate Invoice]
│
(data: order)
- Top module = highest level of control (the "boss" module)
- Lower modules = more detailed, specific tasks
- Modules communicate via parameters (data) shown as labeled arrows
Key Concepts Shown in a Structure Chart
- Fan-out — number of modules directly called by a given module (should be moderate; too high = overly complex controller)
- Fan-in — number of modules that call a given module (high fan-in = good reuse)
- Depth — number of levels in the hierarchy
- Width — total span of modules at the widest level
Purpose
- Visualize the modular decomposition of the system
- Communicate the architecture to the development team
- Basis for evaluating coupling and cohesion of the design
Relationship to DFD
The Structure Chart is derived from the DFD via Transform Analysis or Transaction Analysis (see Structured Design topic) — DFD shows what data flows, Structure Chart shows how modules call each other to process it.
Exam tip: Practice drawing a structure chart for a simple system (e.g., "Process Order," "Student Registration") given its DFD — a very common practical diagram question. Know the data-flow arrow (open circle) vs control-flow arrow (filled circle) distinction.