Roughly speaking, from top to bottom comes from decomposing the problem space into sub-tasks, while from bottom to top it comes from organizing parts of the solution space to larger pieces.
To make effective use from top to bottom, you need a very clear understanding of the problem, i.e. have firm demands in hand. To be effective from the bottom up, you need to solve the โstandardโ problem, whose parts are well known, but where precise assembly may be required for some experiments before you fix it.
You should read Parnyโs brilliant paper The rational design process and how to fake it for much more. Answer: use both options if necessary. When everything is ready, do it all (in your specifications, project documentation and user documentation), as if you did everything from top to bottom.
Jacques carette
source share