| Concept | Scope | Primary Focus |
|---|---|---|
| Decomposition | General | The act of breaking things down into parts. |
| Top-Down Design | Strategic | The planning approach of starting from the goal and moving to details. |
| Stepwise Refinement | Procedural | The actual step-by-step implementation of the top-down strategy. |
Identify the 'Leaf' Nodes: In exam questions involving refinement trees, ensure that the bottom-most tasks (leaf nodes) are specific actions rather than vague goals.
Check for Logic Flow: Always verify that the sum of the sub-tasks actually equals the parent task. If a sub-task is missing, the logic of the entire algorithm will fail.
Subroutine Independence: When asked to justify refinement, mention that it allows for Unit Testing, where each small part can be tested for errors independently of the rest of the system.
Keywords: Use terms like 'manageable', 'modular', 'top-down', and 'decomposition' to gain marks in descriptive questions.
Under-refining: Stopping the process while a task is still too complex. This leads to long, messy subroutines that are difficult to debug and reuse.
Over-refining: Breaking tasks down into such trivial steps that the overhead of managing subroutines outweighs the benefits of the breakdown.
Losing the Big Picture: Focusing so much on individual sub-tasks that the developer forgets how they integrate back into the main program flow.