0% found this document useful (0 votes)
29 views17 pages

Waterfall Model in Software Engineering

The document provides an overview of the Software Development Life Cycle (SDLC) with a focus on the Waterfall Model, detailing its phases, history, advantages, and disadvantages. It explains how the Waterfall Model operates in a linear fashion, requiring each phase to be completed before moving to the next, and highlights when it is most appropriate to use this model. The document also discusses the importance of documentation and the challenges associated with the rigidity of the Waterfall approach.

Uploaded by

mhassanajmal1
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views17 pages

Waterfall Model in Software Engineering

The document provides an overview of the Software Development Life Cycle (SDLC) with a focus on the Waterfall Model, detailing its phases, history, advantages, and disadvantages. It explains how the Waterfall Model operates in a linear fashion, requiring each phase to be completed before moving to the next, and highlights when it is most appropriate to use this model. The document also discusses the importance of documentation and the challenges associated with the rigidity of the Waterfall approach.

Uploaded by

mhassanajmal1
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

You might also like