What is the Waterfall Model? Requirements Stage Design Stage Built Stage Integration and Test Stage Deployment Stage Maintenance Stage Pros and Cons Conclusion



We already uncovered the best way of developing SOFTWARE by doing WATERFALL and getting others to do it ! ! !                                                                     Wooosh!



Optimized for Internet Explorer 5 and Netscape Navigator


Best viewed in 640x480

free web counter

Click Here To View and Sign My Guestbook


What is the Waterfall Model?

The classical Waterfall model which is also known as the linear-sequential life cycle model is an essential software development model which can be understandable from the structure itself. The model is straightforward yet idealistic. When this model was first introduced, it used to be very popular, but time, the new model has come up with a change in features and requirements and hence it is used decidedly less but still a popular one which everyone must know. All the old software has been developed based on this model's life cycle. It is a sequential model which segregates software development into different phases. Each phase is designed with some unique functionality and use. The model was pioneered in the year 1970 by Winston Royce.



Stages of the Waterfall Model

The various phases of the Waterfall Model which are explained below:
  1. Requirement Gathering Stage/Feasibility Study
  2. Design Stage
  3. Built Stage
  4. Integration and Test Stage
  5. Deployment Stage
  6. Maintenance Stage

Requirement Gathering Stage/Feasibility Study

This phase has the purpose to establish whether it would be monetarily as well as technically practicable to expand the development of software. This has the achievability study with the understanding of the problem as well as determines the diverse potential strategies used for solving the problem.



Design Stage

There is a thorough study of the entire requirement specifications from the first phase, and then the system design is equipped. This phase helps developers to specify hardware as well as the system's requirement which ultimately helps in characterizing the system design as a whole.



Built Stage

This phase is also known as the coding phase of software development where the idea is converted into source code and UI plus UX design using programming language and tools. Hence, every designed module needs to be coded.



Integration and Test Stage

Once the coding of application is done, it is then integrated with all other modules with different functionality. During each step of integration, earlier planned modules are incorporated into the parts included the structure of the software and then the entire system is tested.
  1. α Testing: In this testing, the software is tested by the development team, i.e., the developers.
  2. β Testing: In this testing, the software is tested by friendly customers and other target users who will use the beta version of your product.
  3. Acceptance Testing: Once the application has been distributed, the customer carries out the acceptance test for determining if the product should be accepted as delivered or rejects it for further modification.

Deployment Stage

As all the functional, as well as non-functional tests, are completed, the software is installed in the customer's end or the environment or gets released in the market.



Maintenance Stage

Another important phase of this model is the maintenance model. Updating the product, patching any bugs and errors and developing other essential components as per feedback to make this full software is done in this stage. It is of three types:
  1. Corrective Maintenance: Corrective maintenance is where the maintenance is done to fix the errors.
  2. Perfective Maintenance: Perfective maintenance is done where the maintenance is done to increase the efficiency of any system according to customer's requirement.
  3. Adaptive Maintenance: Adaptive Maintenance is typically necessary for porting your application to a new work environment or porting from one type of OS to another.

When to use Waterfall Model?

Waterfall model is recommended to be used when:

  • Requirements are stable and not changed frequently.
  • An application is small.
  • There is no requirement which is not understood or not very clear.
  • The environment is stable
  • The tools and techniques used is stable and is not dynamic
  • Resources are well trained and are available.

Pros and Cons of Waterfall Model:

Advantages:

  • Simple and easy to understand and use.
  • For smaller projects, the Waterfall model works well and yield the appropriate results.
  • Since the phases are rigid and precise, one phase is done one at a time, it is easy to maintain.
  • The entry and exit criteria are well defined, so it easy and systematic to proceed with quality.
  • Results are well documented.

Disadvantages:

  • Cannot adopt the changes in requirements
  • It becomes very difficult to move back to the phase. For example, if the application has now moved to the testing stage and there is a change in requirement, It becomes difficult to go back and change it.
  • Delivery of the final product is late as there is no prototype which is demonstrated intermediately.
  • For bigger and complex projects, this model is not good as a risk factor is higher.
  • Not suitable for the projects where requirements are changed frequently.
  • Does not work for long and ongoing projects.
  • Since the testing is done at a later stage, it does not allow identifying the challenges and risks in the earlier phase so the risk mitigation strategy is difficult to prepare.

Conclusion

In the Waterfall model, it is very important to take the sign-off of the deliverables of each phase. As of today most of the projects are moving with Agile and Prototype models, Waterfall model still holds good for smaller projects. If requirements are straightforward and testable, Waterfall model would yield the best results.