[go: up one dir, main page]

0% found this document useful (0 votes)
664 views8 pages

Waterfall Model

The waterfall model is a sequential approach to software development with distinct stages. It involves requirements analysis, design, implementation, testing, deployment, and maintenance phases. Each phase must be completed before moving to the next. While it provides structure, the waterfall model does not allow for much revision between phases and is not suitable for complex projects with changing requirements. It works best for smaller, well-defined projects where requirements are known upfront.

Uploaded by

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

Waterfall Model

The waterfall model is a sequential approach to software development with distinct stages. It involves requirements analysis, design, implementation, testing, deployment, and maintenance phases. Each phase must be completed before moving to the next. While it provides structure, the waterfall model does not allow for much revision between phases and is not suitable for complex projects with changing requirements. It works best for smaller, well-defined projects where requirements are known upfront.

Uploaded by

mohamedasd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

waterfall model

Posted by: Margaret Rouse

WhatIs.com

Contributor(s): Sarah Lewis

The waterfall model is a linear, sequential approach to the software development life cycle (SDLC) that is
popular in software engineering and product development. The waterfall model emphasizes a
logical progression of steps. Similar to the direction water flows over the edge of a cliff, distinct
endpoints or goals are set for each phase of development and cannot be revisited after completion. The
term was first introduced in a paper published in 1970 by Dr. Winston W. Royce and continues to be
used in applications of industrial design.

The waterfall methodology is composed of seven non-overlapping stages:

1. Requirements: Potential requirements, deadlines and guidelines for the project are analyzed
and placed into a functional specification. This stage handles the defining and planning of the
project without mentioning specific processes.

2. Analysis: The system specifications are analyzed to generate product models


and business logic that will guide production. This is also when financial and technical
resources are audited for feasibility.
3. Design: A design specification document is created to outline technical design requirements
such as programming language, hardware, data sources, architecture and services.

4. Coding/Implementation: The source code isdeveloped using the models, logic and requirements
designated in the prior stages. Typically, the system is designed in smaller components, or units,
before being implemented together.

5. Testing: This is when quality assurance, unit, system and beta tests take place to report issues
that may need to be resolved. This may cause a forced repeat of the coding stage for debugging.
If the system passes the tests, the waterfall continues forward.

6. Operation/Deployment: The product or application is deemed fully functional and is deployed to


a live environment.

7. Maintenance: Corrective, adaptive and perfective maintenance is carried out indefinitely to


improve, update and enhance the final product. This could include releasing patch updates or
releasing new versions.

Before moving to the next phase, there is usually a review and sign off process to ensure that all defined
goals have been met.
The waterfall approach is ideal for projects that have specific documentation, fixed requirements, ample
resources, an established timeline and well-understood technology. Alternatives to the waterfall model
include joint application development (JAD), rapid application development (RAD), sync-and-stabilize,
Agile project management (APM) and the spiral model.

Advantages of the waterfall model

While agile or dynamic methods often replace the waterfall model, there are some advantages:

 Upfront documentation and planning stages allow for large or shifting teams to remain
informed and move towards a common goal.

 Forces structured , disciplined organization.

 Is simple to understand, follow and arrange tasks.

 Facilitates departmentalization and managerial control based on schedule or deadlines.

 Reinforces good coding habits to define before design and then code.

 Allows for early design or specification changes to be made easily.

 Clearly defines milestones and deadlines.

Disadvantages of the waterfall model

The disadvantages of the waterfall model typically surround risk associated with a lack of revision,
including:

 Design is not adaptive; often when a flaw is found, the entire process needs to start over.

 Ignores the potential to receive mid-process user or client feedback and make changes based on
results.

 Delays testing until the end of the development life cycle.

 Does not consider error correction.

 Does not handle requests for changes, scope adjustments or updates well.

 Reduces efficiency by not allowing processes to overlap.

 No working product is available until the later stages of the life cycle.

 Not ideal for complex, high risk, ongoing or object-oriented projects.


Margaret Rouse asks:

What processes does your organization use the waterfall model to carry out?

Join the Discussion

Definition of 'Waterfall Model'

Definition: The waterfall model is a classical model used in system development life cycle to create a
system with a linear and sequential approach. It is termed as waterfall because the model develops
systematically from one phase to another in a downward fashion. This model is divided into different
phases and the output of one phase is used as the input of the next phase. Every phase has to be
completed before the next phase starts and there is no overlapping of the phases.

Description: The sequential phases described in the Waterfall model are:

1. Requirement Gathering- All possible requirements are captured in product requirement documents.

2. Analysis Read - the requirement and based on analysis define the schemas, models and business
rules.

3. System Design -- Based on analysis design the software architecture.

4. Implementation Development of the software in the small units with functional testing.

5. Integration and Testing Integrating of each unit developed in previous phase and post integration test
the entire system for any faults.

6. Deployment of system - Make the product live on production environment after all functional and
nonfunctional testing completed.

7. Maintenance Fixing issues and release new version with the issue patches as required.
Advantages: 1. Easy to use, simple and understandable, 2. Easy to manage as each phase has specific
outputs and review process, 3. Clearly-defined stages, 4. Works well for smaller projects where
requirements are very clear, 5. Process and output of each phase are clearly mentioned in the
document.

Disadvantages: 1. It doesn’t allow much reflection or revision. When the product is in testing phase, it is
very difficult to go back and change something which is left during the requirement analysis phase.

2. Risk and uncertainty are high.

3. Not advisable for complex and object-oriented projects.

4. Changing requirements can’t be accommodated in any phase.

5. As testing is done at a later phase. So, there is a chance that challenges and risks at earlier phases are
not identified.
What is Waterfall Model in SDLC? Advantages & Disadvantages

What is Waterfall Model?

Waterfall Model is a sequential model that divides software development into different phases. Each
phase is designed for performing specific activity during SDLC phase. It was introduced in 1970 by
Winston Royce.

Different Phases of Waterfall Model in Software Engineering

Different phases Activities performed in each stage

Requirement Gathering  During this phase, detailed requirements of the software system to be developed are
stage gathered from client

Design Stage  Plan the programming language, for Example Java, PHP, .net

 or database like Oracle, MySQL, etc.

 Or other high-level technical details of the project


Built Stage  After design stage, it is built stage, that is nothing but coding the software

Test Stage  In this phase, you test the software to verify that it is built as per the specifications
given by the client.

Deployment stage  Deploy the application in the respective environment

Maintenance stage  Once your system is ready to use, you may later require change the code as per
customer request

When to use SDLC Waterfall Model

Waterfall model can be used when

 Requirements are not changing frequently

 Application is not complicated and big

 Project is short

 Requirement is clear

 Environment is stable

 Technology and tools used are not dynamic and is stable

 Resources are available and trained

Advantages and Disadvantages of Waterfall-Model

Advantages Dis-Advantages

 Before the next phase of development,  Error can be fixed only during the phase
each phase must be completed

 Suited for smaller projects where  It is not desirable for complex project
requirements are well defined where requirement changes frequently

 They should perform quality assurance  Testing period comes quite late in the
test (Verification and Validation) before developmental process
completing each stage

 Elaborate documentation is done at every  Documentation occupies a lot of time of


phase of the software's development cycle developers and testers

 Project is completely dependent on  Clients valuable feedback cannot be


project team with minimum client included with ongoing development phase
intervention

 Any changes in software is made during  Small changes or errors that arise in the
the process of the development completed software may cause a lot of
problems

You might also like