CISC 121 Lecture 10: Program design, top-down design, stepwise refinement, functions as part of refinement, algorithms, program design versus programming language
CISC 121 verified notes
10/38View all
9
CISC 121 Lecture Notes - Lecture 9: Newline
10
CISC 121 Lecture 10: Program design, top-down design, stepwise refinement, functions as part of refinement, algorithms, program design versus programming language
11
CISC 121 Lecture 11: Reuse, modules as part of refinement, bottom-up design, top-down design, hybrids, example
Document Summary
Program design: topic worthy of an entire university degree. A natural (or human) language decomposition of a system into successively smaller parts done in order to reduce the system to a set of trivial programming tasks. The starting state for a top-down design is a broad and abstract statement of what an unwritten software system (a program or a colleciton of related programs) is supposed to do. Following analysis, a decomposition of the broad task into a set of sub-tasks is made. These are also likely to be abstract - they will not immediately be implementable in code. Each newly identified subtask is analyzed, then decomposed into a new set of subtasks. These new subtasks are also likely to be abstract, but less so; that is, they will be closer to the stage at which a very short coded solution (no more than a few program statements) becomes obvious.