Software Design · Software Engineering

Structured Design

Watch lectures

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)

  1. Draw the DFD for the system (from requirement analysis)
  2. 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
  3. Apply Transform Analysis or Transaction Analysis to convert the DFD into a Structure Chart
  4. 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.

Free AppAndroid App

Coursify Android App

Generate AI courses, take quick quizzes between classes, and master complex engineering concepts on the go.

← All Software Engineering modules