Testing is part of every phase of the Waterfall Model. Testing is not a separate phase to be performed only after the product has been constructed; it is not to be performed only at the end of each phase. Instead it is done continuously throughout the software process.

Explain the purpose of iteration in the Waterfall Model.

Iteration in the Waterfall Model reflects that fact that the products in this model are developed through progressive refinement. The iteration arrows show how the development of one product can influence the development of previous products.

Provide an example of a software project that would be amenable to the Waterfall Model.

The waterfall model is appropriate for projects with the following characteristics: (1) the problem is well understood (requirements are well-defined); (2) the delivery date is realistic; (3) it's unlikely that major changes in requirements will be requested as the project proceeds. Specific examples might be: (1) a well understood modification to an existing program; (2) a straightforward implementation of a numerical calculation or business rule, even if it's complex; (3) a constrained enhancement to an existing program

What are the situations where Waterfall Model is most appropriate?

1. Project is for development of a mainframe-based or transaction-oriented batch system.
2. Project is large, expensive, and complicated.
3. Project has clear objectives and solution.
4. Pressure does not exist for immediate implementation.
5. Project requirements can be stated unambiguously and comprehensively.
6. Project requirements are stable or unchanging during the system development life cycle.
7. User community is fully knowledgeable in the business and application.
8. Team members may be inexperienced.
9. Team composition is unstable and expected to fluctuate.
10. Project manager may not be fully experienced.
11. Resources need to be conserved.
12. Strict requirement exists for formal approvals at designated milestones.

What are the situations where Waterfall Model is Least appropriate?

1. Large projects where the requirements are not well understood or are changing for any reasons such as external changes, changing expectations, budget changes or rapidly changing technology.
2. Web Information Systems (WIS) primarily due to the pressure of implementing a WIS project quickly; the continual evolution of the project requirements; the need for experienced, flexible team members drawn from multiple disciplines; and the inability to make assumptions regarding the users’ knowledge level.
3. Real-time systems.
4. Event-driven systems.
5. Leading-edge applications.

Briefly describe at least four GOOD things about the Waterfall Model.

• Provides clear phasing of activities.
• Separates requirements from design/development
• Uses intermediate documents for communicating between the phases.
• Allows specialists to work in phases (as opposed to someone who has to work across all phases).
• It is simple.
• There is provision for cycling back to previous phases.

Describe at least two ways in which the Waterfall Modelis a POOR guide to software development.

• Requires all requirements to be complete before beginning design.
• None of the benefits of the spiral model.

When is the Waterfall Model an appropriate software life cycle model to use?

The Waterfall Model works when the software requirements are well understood and the nature of the software development involves contractual agreements. The Waterfall Model is a natural fit for contract-based software development since this model is document driven, that is, many of the products such as the requirements specification and the design are documents. These documents then become the basis for the software development contract.

The waterfall model is described as a "document-driven" model, whereas the spiral model is described as a “risk-driven” model. Answer the following questions regarding these models:

(a) What determines when to progress to the next phase or iteration in each model?
Answer: In the waterfall model, we progress to the next stage when the document (requirements document, specification, design document, etc.) is completed and approved. In the spiral model, we progress to the next iteration using the results of risk analysis on the previous iteration.

(b)How are changes in requirements accommodated in each model?
Answer: In the waterfall model, a change in requirements is accommodated by going back to the previous stage or stages and regenerating the document with the appropriate change and then performing the stage or stages again. In the spiral model, a change in requirements is accommodated as the result of risk analysis in
the next iteration.

Waterfall or RAD? The application may dictate your choice. One member contends that the waterfall methodology means delayed client feedback and inflexibility. Does that make RAD a better approach? Project management expert Tom Mochal says your choice of methodology will often depend on the type of application.