Software Development Life Cycle
Waterfall Model
Introduction to Software Engineering
Prepared by
Prof. Muhammad Saad
Software Engineer (PUCIT)
Agenda
• SDLC Overview
• Waterfall Model in the Models Development
• Waterfall Model overview
• Waterfall Model History (it was not waterfall)
• How does it work(which most Activity involved)
• Model derivable
• When to use
• Advantages
• Disadvantage
• What is Next
SDLC Overveiw
• A framework that describes the activities performed
at each stage of a software development project.
• Software lifecycle:
– Set of activities and their relationships to each other to
support the development of a software system
• Software lifecycle modeling: Attempt to deal with
complexity and change
Object
Build & Fix oriented
SDLC Models
Incremental
Waterfall
Spiral Rapid
Prototype
Waterfall Model overview
• Waterfall approach was first Process Model to be introduced and
followed widely in Software Engineering to ensure success of the
project.
• In "The Waterfall" approach, the whole process of software
development is divided into separate process phases.
• The phases in Waterfall model are:
• Requirement Specifications phase.
• Software Design.
• Implementation .
• Testing
• Maintenance.
• All these phases are cascaded to each other so that second phase is
started as and when defined set of goals are achieved for first phase
and it is signed off, so the name "Waterfall Model". All the methods
and processes undertaken in Waterfall Model are more visible.
Waterfall Model overview
Requirements
Analysis
Design
Implementation
Testing
Delivery and Installation
History of Waterfall (it was not waterfall)
• The waterfall development model originates in the
manufacturing and construction industries
• In 1970 Royce proposed what is now popularly referred to as
the waterfall model as an initial concept, a model which he
argued was flawed (Royce 1970).
• In Royce's original waterfall model, the following phases are
followed in order:
1. Requirements specification
2. Design
3. Construction (AKA implementation or coding)
4. Integration
5. Testing and debugging (AKA Validation)
6. Installation
7. Maintenance
How does it work(which most Activity involved)
• The project moves forward in a linear fashion just as
you would paddle down the stream.
• A preceding phase must be completed before the
next starts. And, once you go over a waterfall (i.e.,
complete a phase) you can't go back.
• This is the earliest method of structured system
development.
How does it work(cont…)
❑ System Conceptualization.
System Conceptualization refers to the consideration of all aspects of
the targeted business function or process, with the goals of
determining how each of those aspects relates with one another, and
which aspects will be incorporated into the system.
❑ Systems Analysis:
This is the second phase refers to the gathering of system
requirements, with the goal of determining how these requirements
will be accommodated in the system. Extensive communication
between the customer and the developer is essential.
❑ System Design:
Once the requirements have been collected and analyzed, it is necessary to
identify in detail how the system will be constructed to perform necessary
tasks. More specifically, the System Design phase is focused on the data
requirements
How does it work(cont…)
❑Coding:
Also known as programming or the coding phase, this step
involves the creation of the system software. Requirements and
systems specifications from the System Design step are
translated into machine-readable computer code.
❑Testing:
As the software is created and added to the developing system,
testing is performed to ensure that it is working correctly and
efficiently.
Waterfall Model (again)
Requirements
Analysis
Design
Implementation
Testing
Delivery and Installation
Waterfall Model derivables
• Project plan and feasibility report
• Requirements document
(SRS : Software Requirement Specifications)
• System design document
• Detailed design document
• Test plans and test reports
• Source code
• Software manuals
(user manual, installation manual)
• Review reports
When to use Waterfall
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
Advantages
• A waterfall model helps find problems earlier on which
can cost a business less than if it was found later on.
• Requirements will be set and these wouldn't be changed.
• As everything is documented a new team member can
easily understand what's to be done.
• Implementers have to follow the design accurately
• Clear project objectives.
• Stable project requirements.
• Progress of system is measurable.
• Although the model is old fashioned, it remains a
reasonable approach when requirements are well
understood.
• It is very simple model to implement.
Disadvantages
• Many believe it is impossible to make one stage of the projects life cycle
perfect.
• Difficult to estimate time and cost for each stage of the development
process.
• Constant testing of the design is needed.
• At the beginning of most projects there is often a great deal of
uncertainty about requirements and goals, and it is therefore difficult for
customers to identify these criteria on a detailed level. The model does
not accommodate this natural uncertainty very well.
Disadvantages(cont…)
• In recent years it rigid design and inflexible procedure has come under
attack, due to its.
• Criticisms fall into the following categories:
o Time consuming (time is money)
o In this model there is no back tracking. For example if any error
occurred an any stage of software development, it can't be
corrected in that build.
o An error if undetected until the final product is produced may
be disastrous.
Any Questions ??
Feel Free to contact at
+92 309 3200023