0% found this document useful (2 votes)
4K views

Waterfall Model

The Waterfall Model is a sequential software development process that consists of distinct phases: requirements analysis, system design, implementation, testing, and maintenance. Each phase proceeds in strict order, with no overlap or iteration between phases. Requirements are fully defined before design begins, design is complete before implementation starts, and so on. While simple and easy to understand, the Waterfall Model has disadvantages like inability to incorporate changes later in the process and lack of user involvement.

Uploaded by

avinashaviavi
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (2 votes)
4K views

Waterfall Model

The Waterfall Model is a sequential software development process that consists of distinct phases: requirements analysis, system design, implementation, testing, and maintenance. Each phase proceeds in strict order, with no overlap or iteration between phases. Requirements are fully defined before design begins, design is complete before implementation starts, and so on. While simple and easy to understand, the Waterfall Model has disadvantages like inability to incorporate changes later in the process and lack of user involvement.

Uploaded by

avinashaviavi
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Waterfall Model

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 and
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.


The Waterfall Model
Requirements analysis
All possible requirements of the system to be developed are
captured in this phase. Requirements are set of functionalities
and constraints that the end-user (who will be using the
system) expects from the system. The requirements are
gathered from the end-user by consultation, these
requirements are analyzed for their validity and the
possibility of incorporating the requirements in the system to
be development is also studied. Finally, a Requirement
Specification document is created which serves the purpose
of guideline for the next phase of the model.
This phase involves interaction between the user and the
software engineer, and produces a document known as
Software Requirement Specification (SRS).
System Design
Before a starting for actual coding, it is highly important
to understand what we are going to create and what it
should look like? The requirement specifications from
first phase are studied in this phase and system design is
prepared. System Design helps in specifying hardware
and system requirements and also helps in defining
overall system architecture. The system design
specifications serve as input for the next phase of the
model. In this phase, the emphasis is on finding a
solution to the problems defined in the requirement
analysis phase. The software engineer is mainly
concerned with the data structure, algorithmic detail and
interface representations.
Implementation & Unit Testing

On receiving system design documents, the work is


divided in modules/units and actual coding is started.
The system is first developed in small programs called
units, which are integrated in the next phase. Each unit
is developed and tested for its functionality; this is
referred to as Unit Testing. Unit testing mainly verifies
if the modules/units meet their specifications.
Integration & System Testing
As specified above, the system is first divided in units which
are developed and tested for their functionalities. These units
are integrated into a complete system during Integration phase
and tested to check if all modules/units coordinate between
each other and the system as a whole behaves as per the
specifications. After successfully testing the software, it is
delivered to the customer.
Operations & Maintenance
This phase of "The Waterfall Model" is virtually never
ending phase (Very long). Generally, problems with
the system developed (which are not found during the
development life cycle) come up after its practical use
starts, so the issues related to the system are solved
after deployment of the system. Not all the problems
come in picture directly but they arise time to time and
needs to be solved; hence this process is referred as
Maintenance.
Advantages
The advantage of waterfall development is that it
allows for departmentalization and managerial control.
A schedule can be set with deadlines for each stage of
development and a product can proceed through the
development process like a car in a carwash, and
theoretically, be delivered on time. Development
moves from concept, through design, implementation,
testing, installation, troubleshooting, and ends up at
operation and maintenance. Each phase of
development proceeds in strict order, without any
overlapping or iterative steps.
Disadvantages
The disadvantage of waterfall development
is that it does not allow for much reflection
or revision. Once an application is in the
testing stage, it is very difficult to go back
and change something that was not well-
thought out in the concept stage.
Alternatives to the waterfall model include
joint application development (JAD), rapid
application development (RAD), synch and
stabilize, build and fix, and the spiral
model.
Advantages Disadvantages
Relatively simple to understand Requirements need to be specified
before the development proceeds.
Each phase of development proceeds Changes of requirements in later
sequentially. phases of the waterfall model cannot
be done. This implies that once an
application is in the testing phase, it is
difficult to incorporate changes.
Allows managerial control where a No user involvement and working
schedule with deadlines is set for each version of the software is available
stage of development. when the software is developed.
Helps in controlling schedules, Does not involve risk management
budgets and documentation.
Assumes that the requirements are
stable and are frozen across the project
span
CASE STUDY: Library Management System
In Waterfall model, first stage is preliminary analysis, which deals with the
study of the current system, finding problems and establishing whether the
new system will benefit the organization. In this library presently all
transactions are done manually. Each member is allowed a certain number
of books to borrow. He/she has cards to borrow books. Against each card a
member can borrow one book from library. Whenever a member wishes to
issue a book and there are spare cards, then the book is issued. Otherwise
that request is not entertained. The numbers of members are increasing day
by day. It is becoming a problem to manage the cards of members. So an
automated system is required that can maintain the details about the books
borrowed by different system. As we have studied the system, we now know
about the existing problems. And we can positively establish the need for
the automated record keeping system. After this preliminary investigation,
second phase of Waterfall model, i.e., analysis phase begins. In analysis, a
detail study of system is performed. Each operation is looked into more
details. From the preliminary analysis we know that the members are
increasing and managing their cards is now difficult task for the library
staff. Let us find out why increasing members is a problem.
There might be a case when a card gets misplaced either by library staff or
by member itself. If this is indeed the case then a duplicate card is made.
But a member can lie about it and can make a duplicate card even if the card
is not lost. In that case that particular member is having more than
maximum allowed cards. There is no means to identify such members.
Presently there is a need to have a system that can record the details about
the books issued to members. Card system needs to be discarded. To solve
this situation our library needs a computer application that has a database
that contains details corresponding to each book issued. It should also have
facilities to check if the number of books issued to a particular member
doesn’t exceed the maximum books allowed to him/her. Now we know what
type of system is required, we can move to the next stage of waterfall model
that is design stage. From analysis phase it is clear that we need a database
to implement our new system. In design stage it is decided as to which type
of database will be used in system. Secondly we’ll identify what data should
this database store and in what format. After that various operations like
issuing and returning books are finalized. Various checks like number of
books issued not to exceed the maximum number are finalized. Various
interfaces that are to be used for input are decided. Once all these details are
finalized, these are properly documented.
Using the design details the new system is built. Only things that are identified
during the design stage are incorporated into the system. There is no deviation from
the design specifications. Suppose in the design phase the database to be used in
the system is decided to be Oracle RDBMS then during development of the system
only Oracle database is used. Similarly each design specification is taken care of
and whole new
system is build. Now we have developed our new system. But before it is
implemented at our user’s site it needs to be tested for accuracy. So the system is
tested to determine if it is performing correctly according to the requirements
identified during the analysis phase. Each function of the system is tested. For
example, we have issue book and return book functions. In return function it is
checked if it is incrementing the count of variable that signifies how many books
that member can issue more. In the issue function, it should be tested that this
variable is decreased by one unit. Similarly whole of the system is tested. After
testing the system, it is implemented at the user’s site. Now we have tested our new
system for the library, it is implemented at the user’s site i.e., library in our case.
After implementation, the systems require time to time maintenance. Maintenance
can be for the software and hardware. Suppose two years after the implementation
of the system, there occurs an alarming increase in number of members of the
library. A situation can arise when all the memory for keeping the details has been
exhausted then there will be a need to increase the memory of the system. Similarly
the speed of processing requests might slow down. Then there will be a need for a
faster processor. All these issues are maintenance issues. So maintenance , though it
is final stage of the system development, is equally important.
THANK YOU

You might also like