Waterfall model was the first software development model. It was used by many software organization to ensure the quality development of software. Now a day’s not many companies use this model. It has its own advantages and some disadvantages. There are many models which is just improved version of the waterfall model.
Waterfall model has six phases and which should be followed in sequential order means next phase cannot be started before current phases is completed. This put the company in trouble if clients changes his requirement in later phase. So they need to make change in each phase to overcome this there are other client oriented Software development models are there like iterative, incremental, agile etc. those model are more client oriented and very compatible to requirement changes.
Water fall model is as shown below:
It has six phase: requirement analysis, system design, and implementation, Testing, Deployment and Maintained. You might have seen these phases in other development life cycles. Those are just revision of waterfall model, just some improvement is there.
Let me explain you each phases one by one:
Requirement Analysis :
- Requirement analysis means the requirement of client is listened here and document here. What client want what are their exact expectation this everything is listened here and documented here.
- This phase is important, here all the clients’ requirement should be noted well. Many client does not know what he wants. Client has only basic idea of the software.
- This requirement gathering from client is basically done by business analyst.
System Design :
- Once first phase is completed then we need to proceed for second phase which is System Design.
- Here the Requirement which is gathered in first phase is usedas a input and system is designed as per the requirements.
- High level design and low level design is done in this phase basically architecture, data base design, component level design is done in this phase.
- Coding of the software is done in this phase and System design phases is taken as a input for this phase.
- Developer apply his logic to satisfy and fulfill the requirement.
- Once the development is done then it’s time for testing the software. Here testing of the application is take places.
- Here required testing done, it may be functional testing, security testing or performance testing etc. depending on the scope of the application tester performs testing activity in this phase.
- Discovered bugs is reported and then retesting is done.
- Once the software is developed and functional and non-functional testing is done and found well working then it’s time for delivering that software to the client or making that software live and made available for the user.
- Maintenance is the phase which comes after deployment. Here the bugs found at the clients end is resolved
- Sometime client’s wants new change to its software or client want to add new functionality to his software then that is also done in this phase.
In this way waterfall model works. Top down like water falls and it is also called linear-sequential model. Each phase need to be completed to start next phase. Unlike other model here testing start after the development completed so tester have to wait till software completion. Which is not good for company as tester don’t have any work to do.
- This is simple model no complexity is there so it is easy to understand.
- Each phase is well planned. And has specific goal to achieve.
- It is good for little project but not good for bigger once.
- Easy to manage.
- Not good for the bigger projects because changed requirement effect on each phase.
- Testing is started after development.
- Not compatible for continuously changing requirement projects.
- Not a client oriented model.