Pros of Waterfall Method
The waterfall model, as described above, offers numerous advantages for software developers. First, the staged development cycle enforces discipline: every phase has a defined start and end point, and progress can be conclusively identified by both vendor and client. The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or of customer expectations not being met. Getting the requirements and design out of the way first also improves quality; it’s much easier to catch and correct possible flaws at the design stage than at the testing stage, after all the components have been integrated and tracking down specific errors is more complex. Finally, because the first two phases end in the production of a formal specification, the waterfall model can aid efficient knowledge transfer when team members are dispersed in different locations.
Cons of waterfall method
1. 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.
2. No working software is produced until late during the life cycle.
3. High amounts of risk and uncertainty.
4. Not a good model for complex and object-oriented projects.
5. Poor model for long and ongoing projects.
6. Not suitable for the projects where requirements are at a moderate to high risk of changing.
Advantages of Spiral Model
1) Spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of the project. 2) Project monitoring is very easy and effective. Each phase, as well as each loop, requires a review from concerned people. This makes the model more transparent. 3) Risk management is one of the in-built features of the model, which makes it extra attractive compared to other models. 4) Changes can be introduced later in the life cycle as well. And coping with these changes isn’t a very big headache for the project manager. 5) Project estimates in terms of schedule, cost etc become more and more realistic as the project moves forward and loops in spiral get completed.
Disadvantages of Spiral Model
1) Cost involved in this model is usually high.
2) It is a complicated approach especially for projects with a clear SRS.
3) Skills required, to evaluate and review project from time to time, need expertise.
4) Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough.
5) Meeting budgetary and scheduling requirements is tough if this development process is followed.
Advantages of Prototype model
1. Strong Dialogue between users and developers
2. Missing functionality can be identified easily
3. Confusing or difficult functions can be identified
4. Requirements validation, Quick implementation of, incomplete, but functional, application
5. May generate specifications for a production application
6. Environment to resolve unclear objectives.
Disadvantages of Prototype model
1. Contract may be awarded without rigorous evaluation of Prototype.
2. Identifying non-functional elements difficult to document.
3. Incomplete application may cause application not to be used as the full system was designed.
4. Incomplete or inadequate problem analysis
5. Client may be unknowledgeable
Advantages of Incremental model:
1. Generates working software quickly and early during the software life cycle.
2. This model is more flexible – less costly to change scope and requirements.
3. It is easier to test and debug during a smaller iteration.
4. Lowers initial delivery cost.
Disadvantages of Incremental model:
1. Needs good planning and design.
2. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
3. Total cost is higher than waterfall.