Top-Down Design
Definition
Top-Down Design is a design approach that starts with the overall system as a single high-level module, then progressively decomposes it into smaller, more detailed sub-modules, until each sub-module is simple enough to implement directly.
How It Works
[Entire System]
/ │ \
[Module A] [Module B] [Module C]
/ \ / \
[A1] [A2] [C1] [C2]
- Start with the big picture (what the system does as a whole)
- Break it into major functional areas
- Keep decomposing each area into finer sub-functions until they're simple enough to code directly
- Also called Stepwise Refinement
Characteristics
- Design proceeds from abstract to concrete
- Each level of decomposition adds more detail
- Naturally produces a hierarchical structure (like a Structure Chart)
Advantages
- Keeps focus on the overall system goals early, avoiding getting lost in details prematurely
- Easier to manage complexity — break big problems into smaller, well-understood pieces
- Encourages good modularity — natural fit with Structured Design
- Design errors at a high level are caught early, before detailed implementation
Disadvantages
- Can be difficult to anticipate the right decomposition upfront, without knowing implementation details
- Lower-level modules may need existing/reusable components that don't fit the top-down breakdown cleanly
- Harder to leverage existing reusable code/components early in the process
When to Use
- Well-understood problems where the overall structure can be reasonably anticipated
- New systems being designed from scratch
- Structured/Function-Oriented Design methodology
Exam tip: Contrast directly with Bottom-Up Design — Top-Down starts from the whole and decomposes; Bottom-Up starts from parts and composes upward. Often asked as a compare/contrast question.