Skip to main content
Prepared by R.Nancy Beaulah
 Segments the software life cycles in to series
of successive activities.
 Each phase requires
 Well defined input information
 Well defined processes
 Well defined products
 Resources are needed for each phase
 Each phase utilizes explicit methods, tools
and techniques
Analysis
Design
Implementation
SystemTesting
Maintenance
Sometimes it
is called as
Water Fall
Chart
 Consist of two phases
▪ Planning
▪ Requirements Definition
 Activities of Planning
▪ Understanding the Problem
▪ Perform a feasibility study
▪ Developing a solution
▪ Determine acceptance criteria
▪ Planning the development process
 Products
▪ System definition
▪ Project plan
 System definition
▪ Expressed in English or in any natural language
▪ May use charts, figures, graphs, tables and equations
▪ Notations used depend upon the problem
 Project plan
▪ Life cycle model to be used
▪ Organizational structure
▪ Preliminary development schedule
▪ Preliminary cost schedule
▪ Preliminary resource schedule
▪ Preliminary staffing schedule
▪ Tools and techniques used
 Time and cost are basically calculated
because it is not possible to estimate exactly
without doing basic design.
 PreliminaryCost Estimate – Planning Stage
 Refined Cost Estimate – Preliminary Design
Review
 FinalCost Estimate – Critical Design Review
 Requirements Definition
 It includes basic functions of software
components in hardware, software, and people
subsystem.
 The product of requirements definition
 The product of requirements definition is a
specification that describes
▪ The processing environment
▪ The required software functions.
▪ Performance constraints on the software.
▪ Exception handling
▪ Acceptance criteria
 Design phase:
 In the phased model, software design follows analysis
 Design phase identified software components
1. Functions.
2. Data streams
3. Data stores
 It specifies relationship among components.
 It specifies software structures.
 Maintains a record of design decision.
 Blueprint for the implementation phase.
 Design phase consist of
1. Architectural design
2. Detailed design
 Architectural design:
 It involves identifying the software components
dividing them into software modules and
conceptual data structures, specifying
interconnection among components.
 Detailed design
 It is concerned with the details of “how to”
▪ Package the processing modules.
▪ Implement the processing, algorithm, data structures
and interconnection among modules.
 Implementation phase:
 It involves translation of design specification into
source code and debugging, documentation and
unit testing of source code.
 Errors:
 Implementation phase may include errors in
routines, functions, logical errors,and algorithm,
errors in data structure layout.
 System testing:
 It involves 2 kinds of activities
▪ 1. Integration testing
▪ 2. Acceptance testing
 Integration testing:
 Developing a strategy for integrating the software
components into a function requires careful
planning so that modules are available for
integration when needed.
 Acceptance testing:
 It involves planning an execution of various type
of test that software system satisfied
requirements documents.
 After getting the acceptance from the customer
software system of released for production work
and maintenance phase.
 Maintenance Phase:
 It Includes
▪ the enhancement of capabilities.
▪ Adaptation of software to new processing environment.
▪ correction of software bugs.
 Phases are Linear
 Development Process is not Linear
 Development activities never proceed as in
water fall chart
 Only possible when it is possible to specify
everything at the beginning itself
 Suitable for developers who developed
similar systems
 Software EngineeringConcepts, Richard
Fairley