Waterfall Method Basics

The Waterfall Model was the first Software Development Process ever created. It is a linear model of the life cycle development model and uses no iterations, this makes it very easy to understand and use. This method requires every phase to be complete before being able to move to the next phase, there can be no overlapping. The success of this model relies on very good planning and documentation.
This model is kind of the opposite of the Agile Model.
The phases:

img10

1. Requirement Gathering & Analysis: Ask the client what their needs and expectations are.
2. System Design: Requirements for the System and Hardware specification to define overall architecture.
3. Implementation: Program is developed in small units and tested (Unit Testing).
4. Integration and Testing: All units are put together and tested for faults and failures.
5. Deployment: After functional and non functional testing, the product is delivered.
6. Maintenance: Regular updates and issue resolving.

This model is called the waterfall method because the each phase cascades into the next one and there is no overlapping.
Advantages: Easy to understand and manage because of how specific each phase is. It allows a lot of control and departmentalization, scheduling and deadlines because of its strict order.
Disadvantages: It allows for very little revision and correction, it is very hard to go back to a previous stage after it has been completed. If documentation is not good it is very hard to maintain the product. This method has high amounts of risk and uncertainty and does not allow for flexible requirements.

Here is a little video on Agile vs Waterfall for better understanding.

Sources:

http://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm

Waterfall model

Waterfall.png

The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential.

The advantage of waterfall development is that it allows for departmentalization and managerial control.

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.

The Waterfall method makes the assumption that all requirements can be gathered up front during the Requirements phase (Kee, 2006). Communication with the user is front-loaded into this phase, as the Project Manager does his or her best to get a detailed understanding of the user’s requirements. Once this stage is complete, the process runs “downhill” (Hoffer, et al, 2008).

The Design phase is best described by breaking it up into Logical Design and Physical Design subphases. During the Logical Design phase, the system’s analysts makes use of the information collected in the Requirements phase to design the system independently of any hardware or software system (Hoffer, et al, 2008). Once the higher-level Logical Design is complete, the systems analyst then begins transforming it into a Physical Design dependent on the specifications of specific hardware and software technologies (“Software Development Lifecycle”, n.d.)