Complex problems can be solved using Top-down design model, also known as Step-wise refinement, where we break the problem into parts and then break the parts into sub parts and finally soon, each of the parts will be easy to code and accomplish…
2. Top Down Design Model
» In top-down model, an overview of the system is
formulated, without going into detail for any part of
it.
» Each part of the system is then refined in more
details.
» Each new part may then be refined again, defining
it in yet more details until the entire specification is
detailed enough to validate the model.
2
https://www.facebook.com/Oxus20
3. Top Down Concept in Problem Solving
» If we look at a problem as a whole, it may seem
impossible to solve because it is so complex.
Examples:
˃ writing a University System program
˃ writing a word processor
» Complex problems can be solved using topdown design, also known as stepwise
refinement, where
˃ We break the problem into parts
˃ Then break the parts into parts
˃ Soon, each of the parts will be easy to do
3
https://www.facebook.com/Oxus20
6. Advantages of Top-Down Design
» Breaking the problem into parts helps us to clarify what
needs to be done.
» At each step of refinement, the new parts become less
complicated and, therefore, easier to figure out.
» Parts of the solution may turn out to be reusable.
» Breaking the problem into parts allows more than one
person to work on the solution.
6
https://www.facebook.com/Oxus20
7. Example
» Problem:
outline of
the house
chimney
» Write a program that
draws this picture of a
house.
Windows
Door
7
https://www.facebook.com/Oxus20
8. The Top Level
»
»
»
»
Draw the outline of the house
Draw the chimney
Draw the door
Draw the windows
Main
Draw
Outline
Draw
Chimney
Draw
Door
Draw
Windows
8
https://www.facebook.com/Oxus20
9. Observation
» The door has both a frame and knob. We could
break this into two steps.
Main
Draw
Outline
Draw
Chimney
Draw
Door Frame
Draw
Door
Draw
Windows
Draw
Knob
9
https://www.facebook.com/Oxus20
10. Bottom-up Design
» In bottom-up design individual parts of the system
are specified in details.
» The parts are then linked together to form larger
components, which are in turn linked until a
complete system is formed.
» Object-oriented languages such as C++ or JAVA use
bottom-up
approach
where
each
object
is
identified first.
10
https://www.facebook.com/Oxus20