Monday

Top-Down and Bottom-Up Strategies

  • A system consists of components, which have components of their own; indeed a system is a hierarchy of components. The highest-level component correspond to the total system.
  • To design such a hierarchy there are two possible approaches: top-down and bottom-up.
  • A top-down design approach starts by identifying the major components of the system, decomposing them into their lower-level components and iterating until the desired level of detail is achieved.
  • Top-down design methods often result in some form of stepwise refinement .
  • Starting from an abstract design, in each step the design is refined to a more concrete level, until we reach a level where no more refinement is needed and the design can be implemented directly.
  • Most design methodologies are based on the top-down approach.
  • A bottom-up design approach starts with designing the most basic or primitive components and proceeds to higher-level components that use these lower-level components.
  • Bottom-up methods work with layers of abstraction.
  • Starting from the very bottom, operations that provide a layer of abstraction are implemented.
  • The operations of this layer are then used to implement more powerful operations and a still higher layer of abstraction, until the stage is reached where the operations supported by the layer are those desired by the system.
  • A top-down approach is suitable only if the specifications of the system are clearly known and the system development is from scratch.
  • If a system is to be built from an existing system, a bottom-up approach is more suitable, as it starts from some existing components.
- for example, if an iterative enhancement type of process is being followed, in later iterations, the bottom-up approach could be more suitable (in the first iteration a top down approach can be used).
  • Pure top-down or pure bottom-up approaches are often not practical.
  • Combine approaches is also use full for layer of abstraction.
  • This approach is frequently used for developing systems.

2 comments: