Structured Design
Definition
Structured Design is a function-oriented design methodology that systematically transforms a DFD (Data Flow Diagram) into a Structure Chart, decomposing the system into a hierarchy of modules with well-defined interfaces, aiming for low coupling and high cohesion.
Process (Step-by-Step)
- Draw the DFD for the system (from requirement analysis)
- Identify the "center of the DFD" — classify the flow into:
- Afferent (incoming) data flow — data moving toward the center, being transformed/refined
- Efferent (outgoing) data flow — data moving away from the center toward output
- Central transform — the core processing where input becomes output
- Apply Transform Analysis or Transaction Analysis to convert the DFD into a Structure Chart
- Refine the structure chart — apply design heuristics (fan-in/fan-out, coupling/cohesion rules) to improve module quality
Two Key Analysis Techniques
Transform Analysis
- Used when the DFD has a clear input → processing → output flow
- Maps to a structure chart with 3 main branches: Input, Process (Central Transform), Output
Transaction Analysis
- Used when the DFD has a transaction center — one input that branches into multiple different processing paths depending on the transaction type
- Maps to a structure chart where a dispatcher module calls different sub-modules per transaction type
Output: Structure Chart
A hierarchical diagram showing modules, their calling relationships, and data/control passed between them (covered in detail in the next topic).
Advantages
- Systematic, repeatable process from analysis (DFD) to design (Structure Chart)
- Encourages modularity, low coupling, high cohesion
- Well-established, widely taught methodology
Disadvantages
- Rigid separation of data and function (less natural for OOP-style systems)
- Can be tedious for very large systems
Exam tip: Be ready to explain the DFD → Structure Chart transformation process and distinguish Transform Analysis (single input→output flow) from Transaction Analysis (branching by transaction type) — frequently tested.