Top Down Programming

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! --Jeff

Wise man says "Before you can do top-down design, you must have bottom-up experience."


(EditHint: Is there a significant difference between TopDown, TopDownDesign, TopDownProgramming ? Or should they all be merged on one page, leaving the others as stubs pointing to that page ?)

TopDownDesign and TopDownProgramming 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, MiddleOut, ProvingTopDownDesignHarmful

EditText of this page (last edited February 17, 2011) or FindPage with title or text search