Program Design: Top Down vs. Bottom Up

Instructor: David Gloag

David has over 40 years of industry experience in software development and information technology and a bachelor of computer science

In this lesson, we'll take a look at program design and define it in terms of top down program design in comparison to bottom up program design. Why would you choose one over the other?

Program Control

Computers affect many parts of our lives. They control the operations of many machines in our factories, they allow us to communicate with people on the other side of the world, and we can even play games like Chess and Go with the best in the world. Is it any wonder that we are constantly looking for ways to efficiently and effectively program them? Not really. Their prevalence almost demands this. So, how do we meet those objectives? How do we ensure their proper operation? That can be tricky. One way we do it is through solid program design.

What is Program Design?

Program design is the process of converting a set of requirements into a collection of commands or a program that can be executed on a computer system. A program is a series of instructions that the computer executes in order to perform some meaningful work. For example, the developers at Microsoft created a program called Word that performs word processing activities for a user. Program design is an integral part of software development and depending on the methodology used, can be a significant step in the process. Generally, it consists of:

  • Translating requirements into general operations or commands.
  • Identifying important attributes and characteristics of the commands and grouping them.
  • Establishing an order and relationships between the groups.

The result is a framework that the program can use to deliver the required functionality.

Top Down Program Design

Top down program design is an approach to program design that starts with the general concept and repeatedly breaks it down into its component parts. In other words, it starts with the abstract and continually subdivides it until it reaches the specific. Consider creating the prime factorization of a number like 1540. The steps involved might look like:

  • 1540
  • 2 x 770
  • 2 x 2 x 385
  • 2 x 2 x 5 x 77
  • 2 x 2 x 5 x 7 x 11

Top down program design works the same way. We start with the overall objective and wind up with a series of steps needed to accomplish it.

Bottom Up Program Design

Bottom up program design works in the exact opposite way. It starts with the component parts and repeatedly combines them to achieve the general concept. In other words, it starts with the specific and continually combines it until it reaches the abstract. For example, consider the factorization from the previous section. For bottom up design the steps involved might look like:

  • 2 x 2 x 5 x 7 x 11
  • 2 x 2 x 5 x 77
  • 2 x 2 x 385
  • 2 x 770
  • 1540

For bottom up design we start with the steps needed to accomplish an objective and wind up with the overall goal.

To unlock this lesson you must be a Member.
Create your account

Register to view this lesson

Are you a student or a teacher?

Unlock Your Education

See for yourself why 30 million people use

Become a member and start learning now.
Become a Member  Back
What teachers are saying about
Try it now

Earning College Credit

Did you know… We have over 220 college courses that prepare you to earn credit by exam that is accepted by over 1,500 colleges and universities. You can test out of the first two years of college and save thousands off your degree. Anyone can earn credit-by-exam regardless of age or education level.

To learn more, visit our Earning Credit Page

Transferring credit to the school of your choice

Not sure what college you want to attend yet? has thousands of articles about every imaginable degree, area of study and career path that can help you find the school that's right for you.

Create an account to start this course today
Used by over 30 million students worldwide
Create an account