Useful as both a design and an implementation
methodology.
Top-down design is a process in which a large problem is broken
down into smaller subproblems and then each of those subproblems
is further reduced into its subproblems. This process continues
until each subproblem is small. It results in having many easy
subproblems.
Begin with the top-level, user-invoked function, main(), and work
toward the lowest level functions that do not call any other
functions.