Waterfall Model is a non iterative sequential design process used in software development. This model is easy to use and understand.In waterfall model whole process of software development is divided in to different phases. The output of one phase will act as input to the next phase. The process flows steadily downwards-like a waterfall-from one phase to the other, so the name Waterfall Model. Phases do not overlap in this model.
Different phases of waterfall model are :
System Engineering :
The purpose of this phase is to define the scope of the project. User requirements are the output of this phase.
Requirement Analysis :
Understanding all the required functional and non-functional requirements of the system to be developed and documenting them in to requirement specification document. The deliverables of this phase are SRS document, Acceptance Test Plan, System Test Plan.
System Design :
The requirement specifications from the previous phase are studied and system architecture is defined in this phase. Hardware and System requirements are specified here. The deliverables are HLD(High Level Design), DLD(Detailed Level Design), ITP(Integrated Testing Plan) and UTP(Unit Testing Paln).
Coding or Implementation :
Building the software and unit testing is done here. Taking inputs from system design, the software is developed in to small programs called units. Each unit developed is tested for its functionality and it is called unit testing.
Integration and Testing :
All the developed units from previous phase are integrated here in to a system. After integration, entire is system is tested for faults, failures and to ensure that requirements are met.
Once assembling and end user testing (to check whether functional and non functional requirements are met) is done, the product is deployed in the customer environment.
Patches are released at times to fix some issues that come up in client environment. Also some better versions are released to enhance the product. Maintenance is done to deliver these changes in the customer environment.
Click here for details about Cubox-i4, the tiniest computer
in the world.
When to use Waterfall Model :
Usage of suitable SDLC is based on some Internal and External factors. Situations where the usage of Waterfall model is appropriate are
- Requirements are well documented and fixed(no change in requirements).
- Deliverables are expected in every stage.
- Project is short and have carried a similar kind of project earlier.
- Technology is well understood and is static.
Pros of Waterfall Model:
- Simple and Systematic model.
- Follows a disciplined approach.
- Well understood milestones.
- Easily arranged tasks.
Cons of Waterfall Model:
- Not suitable for carrying any change.
- Risk and Uncertainty levels are high
- Not suitable for large and ongoing projects.
- Not suitable for complex and object-oriented projects.
- Potential delay in identifying risks.