Library · paper

Program Development by Stepwise Refinement

Niklaus Wirth
1971·Communications of the ACM

Fuente: https://dl.acm.org/doi/10.1145/362575.362577

Wirth's method is deceptively simple: start with a high-level statement of what the program should do, then refine it step by step into executable code, making one design decision at each level. The paper walks through a single example — the eight queens problem — and in doing so demonstrates that program design is a sequence of deliberate choices, not a burst of inspiration followed by debugging. Stepwise refinement is the intellectual ancestor of iterative development, top-down design, and every decomposition strategy used in modern engineering. The elegance is in the discipline: each step is small enough to verify and reversible enough to reconsider. For product people, it is a reminder that the best technical work proceeds by successive clarification, not by big-bang specification.

software-engineeringcraftdesignclassics