The Top-Down Model is a software development process. The design starts at high-level abstraction objects, which are then defined by drilling down.

By contrast, the bottom-up design is a way to construct software from small pieces of code to the whole system. Tools and libraries are developed first. Reusable parts, modules, frameworks and so forth and developed independently, and debugged, and then the end product is built on top of them.

Modern design methodologies never mention these early forebearers, though they more closely resemble Bottom-up design in that code is reused, libraries purchased or downloaded, and in general, code is reused.

Some part of the article is from Perl Design Patterns Book