Top-down Approach Vs Bottom-up Approach

Top-down Approach Vs Bottom-up Approach

Last updated on 30th Sep 2020, Artciles, Blog

About author

Sivaguru (Sr Project Manager )

He is a Award Winning Respective Industry Expert with 11+ Years Of Experience Also, He is a TOP Rated Technical Blog Writer Share's 1000+ Blogs for Freshers. Now He Share's this For Us.

(5.0) | 14571 Ratings 1935

When talking in terms of computer science and programming, the algorithms we use to solve complex problems in a systematic and controlled way are designed on the basis of two approaches that is Top-down and Bottom-up approach. The ideology behind top-down approach is, a bigger problem is divided into some smaller sub-problems called modules, these modules are then solved individually and then integrated together to get the complete solution to the problem. In bottom-up approach on the other hand, the process starts with elementary modules and then combining together to get the desired result. Let us now quickly see in brief what these two approaches has to offer, how they differ from each other and what are the similarities.

Subscribe For Free Demo

Error: Contact form not found.

Definition of Top-down Approach

The top-down approach basically divides a complex problem or algorithm into multiple smaller parts (modules). These modules are further decomposed until the resulting module is the fundamental program essentially understood and can not be further decomposed. After achieving a certain level of modularity, the decomposition of modules is ceased. The top-down approach is the stepwise process of breaking the large program module into simpler and smaller modules to organise and code the program in an efficient way. The flow of control in this approach is always in the downward direction. The top-down approach is implemented in the “C” programming language by using functions.

Thus, the top-down method begins with abstract design and then sequentially this design is refined to create more concrete levels until there is no requirement of additional refinement.

Definition of Bottom-up Approach

The bottom-up approach works in just the opposite manner to the top-down approach. Initially, it includes the designing of the most fundamental parts which are then combined to make the higher level module. This integration of submodules and modules into the higher level module is repeatedly performed until the required complete algorithm is obtained.

Bottom-up approach functions with layers of abstraction. The primary application of the bottom-up approach is testing as each fundamental module is first tested before merging it to the bigger one. The testing is accomplished using certain low-level functions.

The Pros and Cons of a Top-Down Approach

Top-down project management remains very common, and it is well suited to projects in which there are few unfamiliar tasks and few unique challenges to be met. Its pros include:

  • Straightforward planning phase because decision-making is centralized
  • Expectations are unified while roles and responsibilities are clear

However, many organizations have begun to find that the top-down approach has its limitations in some modern projects. Possible cons include:

  • Demoralizing and demotivating team culture in which members have little control over their responsibilities and methods
  • Risk of surprises and issues down the road due to gaps in leaders’ expectations and team members’ capacities
BASIS FOR COMPARISONTOP-DOWN APPROACHBOTTOM-UP APPROACH
BasicBreaks the massive problem into smaller subproblems.Solves the fundamental low-level problem and integrates them into a larger one.
ProcessSubmodules are solitarily analysed.Examine what data is to be encapsulated, and implies the concept of information hiding.
CommunicationNot required in the top-down approach.Needs a specific amount of communication.
RedundancyContain redundant information.Redundancy can be eliminated.
Programming languagesStructure/procedural oriented programming languages (i.e. C) follows the top-down approach.Object-oriented programming languages (like C++, Java, etc.) follows the bottom-up approach.
Mainly used inModule documentation, test case creation, code implementation and debugging.Testing

Key Differences Between Top-down and Bottom-up Approach

  • Top-down approach decomposes the large task into smaller subtasks whereas bottom-up approach first chooses to solve the different fundamental parts of the task directly then combine those parts into a whole program.
  • Each submodule is separately processed in a top-down approach. As against, bottom-up approach implements the concept of the information hiding by examining the data to be encapsulated.
  • The different modules in top-down approach don’t require much communication. On the contrary, the bottom-up approach needs interaction between the separate fundamental modules to combine them later.
  • Top-down approach can produce redundancy while bottom-up approach does not include redundant information.
  • The procedural programming languages such as Fortran, COBOL and C follows a top-down approach. In contrast, object-oriented programming languages like C++, Java, C#, Perl, Python abides the bottom-up approach.
  • Bottom-up approach is priorly used in testing. Conversely, the top-down approach is utilized in module documentation, test case creation, debugging, etcetera.
PMP Sample Resumes! Download & Edit, Get Noticed by Top Employers! Download

Conclusion

The top-down approach and bottom-up approach are the algorithm design methods where top-down is a conventional approach which decomposes the system from high-level specification to low-level specification. On the other hand, the bottom-up approach is more efficient and works in an inverse manner where the primitive components are designed at first then proceeded to the higher level.

The top-down approach emphasizes on the isolation of the submodules (signifies the low coupling between the modules) while ignores the identification of communication and reusability concept. While in the bottom-up approach, information hiding and reusability are the prominent factors.

Are you looking training with Right Jobs?

Contact Us

Popular Courses