SlideShare a Scribd company logo
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.

More Related Content

What's hot

unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
KarthigaGunasekaran1
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya
 
software cost factor
software cost factorsoftware cost factor
software cost factor
Abinaya B
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
NancyBeaulah_R
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
Stephennancy
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
janani thirupathi
 
Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specification
kirupasuchi1996
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
Umaselvi_R
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
Kasun Ranga Wijeweera
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
lavanya marichamy
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
lalithambiga kamaraj
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
NancyBeaulah_R
 
source code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniquessource code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniques
Siva Priya
 
Software cost estimation techniques presentation
Software cost estimation techniques presentationSoftware cost estimation techniques presentation
Software cost estimation techniques presentation
Kudzai Rerayi
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
software design
software designsoftware design
software design
PRIYADARSINISK
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
MohamedIbrahim1408
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Context model
Context modelContext model
Context model
Ubaid423
 

What's hot (20)

unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specification
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
 
source code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniquessource code metrics and other maintenance tools and techniques
source code metrics and other maintenance tools and techniques
 
Software cost estimation techniques presentation
Software cost estimation techniques presentationSoftware cost estimation techniques presentation
Software cost estimation techniques presentation
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
software design
software designsoftware design
software design
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Software design
Software designSoftware design
Software design
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Context model
Context modelContext model
Context model
 

Similar to Design techniques

Software design
Software designSoftware design
Software design
Inocentshuja Ahmad
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
Satyanandaram Nandigam
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
HaifaMohd3
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
Ahmad sohail Kakar
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
Dr. Radhey Shyam
 
design-concept.ppt
design-concept.pptdesign-concept.ppt
design-concept.ppt
MangeshKetkar1
 
Design final
Design finalDesign final
Design final
Indu Sharma Bhardwaj
 
SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
kirtisatpute4
 
Week 6
Week 6Week 6
Software design
Software designSoftware design
Software design
Himanshu Awasthi
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
kiruthikamurugesan2628
 
Unit1
Unit1Unit1
Sdlc overview
Sdlc overviewSdlc overview
Sdlc overview
heripra
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
Vivek Kumar Sinha
 
MODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxMODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptx
pawan745387
 

Similar to Design techniques (20)

Software design
Software designSoftware design
Software design
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
06 fse design
06 fse design06 fse design
06 fse design
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
 
Process of design
Process of designProcess of design
Process of design
 
design-concept.ppt
design-concept.pptdesign-concept.ppt
design-concept.ppt
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Design final
Design finalDesign final
Design final
 
SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
 
Week 6
Week 6Week 6
Week 6
 
Software design
Software designSoftware design
Software design
 
5 software design
5 software design5 software design
5 software design
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
Unit1
Unit1Unit1
Unit1
 
Sdlc overview
Sdlc overviewSdlc overview
Sdlc overview
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 
MODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxMODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptx
 

Design techniques

  • 2. 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.
  • 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 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
  • 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.