DESIGN TECHNIQUES
Design techniques are based on the “Top-down” or
“Bottom-up” strategies.

TOP-DOWN DESIGN:
                 A Top-down design approach starts by identifying the
major modules of the system, decomposing them into their lower level
modules and iterating until the desired level of detail is achieved.


BOTTOM-UP DESIGN:
                   In the bottom-up approach to software design, the
designer first attempt to identify a set of primitive objects, actions and
relationships that will provide a basis for problem solution.
STEPWISE REFINEMENT:
                   Stepwise refinement is a top-down design strategy
proposed by NIKLAWS WIRTH.
                   Stepwise refinement provides a general framework
for problem solving by placing emphasis on the importance of
proceeding from general concerns to specific details in small increment
steps.
                   The process of program refinement is analogous to
the process of refinement and partitioning that is used during
requirement analysis.

Stepwise refinement involves the following activities.
 Decomposing design decisions to elementary levels.
 Insolating design aspects that are not truly interdependent.
 Postponing decisions concerning representation details as long as
possible.
 Carefully demonstrating that each successive step in the refinement
process is a faithful expansion of previous steps.
LEVELS OF ABSTRACTION:
                    Levels of Abstraction is a bottom-by design
technique, in which operating system was designed as a layering of
hierarchical level starting at level 0 and building up to level of
processing independent user programs.
                    Each level of abstraction performs a step of services
for the functions on the next level of abstraction.


STRUCTURED DESIGN:
                  The primary goal of structured design is to divide a
problem into modules such that coupling between different modules is
reduced while the cohesion of different module is enhanced.
                  In structured design methodology , structure charts
represent the design. The structure of a program is made up of modules
of that program together with the inter connection between them.
A


            B                        C                       D


                  There are some modules that obtain information from
their subordinates, and the pass it to their subordinates. This kind of
module is an input module. An out put module takes information from its
subordinates and passes it on to its subordinates.




         INPUT MODULE                       OUTPUT MODULE
INTEGRATED TOP-DOWN DEVELOPMENT:
                 Integrated top-down development integrates
design, implementation and testing.



                             MAIN




      GET                  PROCESS                       PUT




                SUB1                         SUB2
DESIGN MAIN
CODE MAIN
STUBS FOR GET,PROCESS,PUT
TEST MAIN
DESIGN GET
CODE GET
TEST MAIN,GET
DESIGN PROCESS
CODE PROCESS
STUBS FOR SUB1,SUB2
TEST MAIN,GET,PROCESS
DESIGN PUT
CODE PUT
TEST MAIN,GET,PROCESS,PUT
DESIGN SUB1
CODE SUB1
TEST MAIN,GET,PROCESS,PUT,SUB1
DESIGN SUB2
CODE SUB2
TEST MAIN,GET,PROCESS,PUT,SUB1,SUB2
JACKSON STRUCTURED PROGRAMING:
                  Jackson Structured Programming was developed by
Micale Jackson as a systematic technique for mapping the structure of a
problem into program structure of a problem to solve the problem.


The mapping is accomplished in three steps:

1. The problem is modeled by specifying input and output data structures
   using tree structured diagram.
2. The input-output model is converted into a structural model for the
   program by identifying points of correspondence between nodes in the
   input and output trees.
3. The structure model of the program is expanded into a detailed design
   model, that contains the operations needed to solve the problem.

Design techniques

  • 1.
  • 2.
    Design techniques arebased on the “Top-down” or “Bottom-up” strategies. TOP-DOWN DESIGN: A Top-down design approach starts by identifying the major modules of the system, decomposing them into their lower level modules and iterating until the desired level of detail is achieved. BOTTOM-UP DESIGN: In the bottom-up approach to software design, the designer first attempt to identify a set of primitive objects, actions and relationships that will provide a basis for problem solution.
  • 3.
    STEPWISE REFINEMENT: Stepwise refinement is a top-down design strategy proposed by NIKLAWS WIRTH. Stepwise refinement provides a general framework for problem solving by placing emphasis on the importance of proceeding from general concerns to specific details in small increment steps. The process of program refinement is analogous to the process of refinement and partitioning that is used during requirement analysis. Stepwise refinement involves the following activities.  Decomposing design decisions to elementary levels.  Insolating design aspects that are not truly interdependent.  Postponing decisions concerning representation details as long as possible.  Carefully demonstrating that each successive step in the refinement process is a faithful expansion of previous steps.
  • 4.
    LEVELS OF ABSTRACTION: Levels of Abstraction is a bottom-by design technique, in which operating system was designed as a layering of hierarchical level starting at level 0 and building up to level of processing independent user programs. Each level of abstraction performs a step of services for the functions on the next level of abstraction. STRUCTURED DESIGN: The primary goal of structured design is to divide a problem into modules such that coupling between different modules is reduced while the cohesion of different module is enhanced. In structured design methodology , structure charts represent the design. The structure of a program is made up of modules of that program together with the inter connection between them.
  • 5.
    A B C D There are some modules that obtain information from their subordinates, and the pass it to their subordinates. This kind of module is an input module. An out put module takes information from its subordinates and passes it on to its subordinates. INPUT MODULE OUTPUT MODULE
  • 6.
    INTEGRATED TOP-DOWN DEVELOPMENT: Integrated top-down development integrates design, implementation and testing. MAIN GET PROCESS PUT SUB1 SUB2
  • 7.
    DESIGN MAIN CODE MAIN STUBSFOR GET,PROCESS,PUT TEST MAIN DESIGN GET CODE GET TEST MAIN,GET DESIGN PROCESS CODE PROCESS STUBS FOR SUB1,SUB2 TEST MAIN,GET,PROCESS DESIGN PUT CODE PUT TEST MAIN,GET,PROCESS,PUT DESIGN SUB1 CODE SUB1 TEST MAIN,GET,PROCESS,PUT,SUB1 DESIGN SUB2 CODE SUB2 TEST MAIN,GET,PROCESS,PUT,SUB1,SUB2
  • 8.
    JACKSON STRUCTURED PROGRAMING: Jackson Structured Programming was developed by Micale Jackson as a systematic technique for mapping the structure of a problem into program structure of a problem to solve the problem. The mapping is accomplished in three steps: 1. The problem is modeled by specifying input and output data structures using tree structured diagram. 2. The input-output model is converted into a structural model for the program by identifying points of correspondence between nodes in the input and output trees. 3. The structure model of the program is expanded into a detailed design model, that contains the operations needed to solve the problem.