A technique invented by John Wellum whereby there are nested levels of "control routines" such that the top level controls the large-scale behavior and the lower levels handle individual details. It reached its peak usage in the late '70s and early '80s, later replaced by ObjectOriented
thinking and the influence of RelationalDatabases
to create data-driven and EventDriven
control flow techniques instead.
The book ObjectOrientedSoftwareConstruction
, by BertrandMeyer
, contains a rather devastating critique of TopDownProgramming
. Meyer claims that it usually leads to software which is brittle, difficult to maintain, and difficult to extend. (Of course, TopMind
wrote a rather infamous criticism of Meyer's book...)
Meyer's error was that he made it appear that the only two options were OOP or top-down, as if all of procedural was heavy top-down. But that is a FalseDichotomy. It is roughly analogous to suggestions that I claim that all of OOP depends on hierarchies (which I did not). -- top
It could be argued that all sequence-based programming is top-down to some extent. The top-down-ness may be a matter of how dependent or independent each routine or module is.
I was taught top down programming at school, not so much as a technique but as one of several useful views of development. Top down was emphasized, but bottom up and middle out were useful alternatives.
Top down, bottom up, that's the way we like to RUP -- 2 Live Pair
Most of my programming is Top Down, i find this is the best way to get the most out of a program -- Rich
Top-down programming is the best way to program!
Wise man says "Before you can do top-down design, you must have bottom-up experience."
: Is there a significant difference between TopDown
? Or should they all be merged on one page, leaving the others as stubs pointing to that page ?)
are not the same thing, although they are clearly related. I think merging it all into TopDown
would not be a bad idea.
See also BottomUpProgramming