Open In App

Difference between Bottom-Up Model and Top-Down Model

Last Updated : 02 Dec, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Top-Down Design Model: 
In the top-down model, an overview of the system is formulated without going into detail for any part of it. Each part of it then refined into more details, defining it in yet more details until the entire specification is detailed enough to validate the model. if we glance at a haul as a full, it’s going to appear not possible as a result of it’s so complicated For example: Writing a University system program, writing a word processor. Complicated issues may be resolved victimization high down style, conjointly referred to as Stepwise refinement where, 

  1. We break the problem into parts,
  2. Then break the parts into parts soon and now each of parts will be easy to do. 
     

Advantages: 

  • Breaking problems into parts help us to identify what needs to be done.
  • At each step of refinement, new parts will become less complex and therefore easier to solve.
  • Parts of the solution may turn out to be reusable.
  • Breaking problems into parts allows more than one person to solve the problem. 
     

Bottom-Up Design Model: 
In this design, individual parts of the system are specified in detail. The parts are linked to form larger components, which are in turn linked until a complete system is formed. Object-oriented language such as C++ or java uses a bottom-up approach where each object is identified first. 

Advantage: 

  • Make decisions about reusable low-level utilities then decide how there will be put together to create high-level construct. ,

The contrast between Top-down design and bottom-up design. 
 

S. No.

TOP DOWN APPROACH

BOTTOM UP APPROACH

1. In this approach We focus on breaking up the problem into smaller parts. In bottom up approach, we solve smaller problems and integrate it as whole and complete the solution.
2. Mainly used by structured programming language such as COBOL, Fortran, C, etc. Mainly used by object oriented programming language such as C++, C#, Python.
3. Each part is programmed separately therefore contain redundancy. Redundancy is minimized by using data encapsulation and data hiding.
4. In this the communications is less among modules. In this module must have communication.
5. It is used in debugging, module documentation, etc. It is basically used in testing.
6. In top down approach, decomposition takes place. In bottom up approach composition takes place.
7. In this top function of system might be hard to identify. In this sometimes we can not build a program from the piece we have started.
8. In this implementation details may differ. This is not natural for people to assemble.
9.

Pros-

  • Easier isolation of interface errors
  • It benefits in the case error occurs towards the top of the program.
  • Defects in design get detected early and can be corrected as an early working module of the program is available.

Pros-

  • Easy to create test conditions
  • Test results are easy to observe
  • It is suited if defects occur at the bottom of the program.
10.

Cons-

  • Difficulty in observing the output of test case.
  • Stub writing is quite crucial as it leads to setting of output parameters.
  • When stubs are located far from the top level module, choosing test cases and designing stubs become more challenging.

Cons-

  • There is no representation of the working model once several modules have been constructed.
  • There is no existence of the program as an entity without the addition of the last module.
  • From a partially integrated system, test engineers cannot observe system-level functions.  It can be possible only with the installation of the top-level test driver.

 


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads