The waterfall model is a software development model in which the results of one activity is flowed sequentially into the next and seen as flowing steadily downwards (like a water) through different phases.
- It is the first formally defined software development life cycle model.
- In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.
Fig: The waterfall model of Software development lifecycle
- Quality assurance:
- Oversees each steps of model towards producing useful, reliable software rather than connection of modules.
- All the phases are governed by quality assurance.
- Concept and analysis
- Problem described in human language.
- Model the concept with mathematical formulas and algorithms.
- Analyze the software within the framework of the system description and concept.
- Analyze on the interactions and interfaces between the software, the hardware and data inputs.
- All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.
- The requirement specifications from first phase are studied in this phase and the system design is prepared.
- This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.
- The methods of programming – assembly language, high level languages.
- CASE tools are on the horizon.
- Source file (Assembly language mnemonics) –> assembler –> object file –> linker –> Binary machine code –> Burn –> PROM
- A fully programmed software is then implemented.
- Testing and verification
- All the units developed in the implementation phase are integrated into a system after testing of each unit.
- The entire system is tested for any faults and failures.
- Testing are done through alfa test, beta test , black box testing and white box testing.
- There are some issues which come up in the client environment. To fix those issues, patches are released.
- Also to enhance the product some better versions are released.
- Maintenance is done to deliver these changes in the customer environment.
Advantages of waterfall model:
- This model is simple and easy to understand and use.
- It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
- In this model phases are processed and completed one at a time. Phases do not overlap.
- Waterfall model works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:
- 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.
- No working software is produced until late during the life cycle.
- High amounts of risk and uncertainty.
- Not a good model for complex and object-oriented projects.
- Poor model for long and ongoing projects.
- Not suitable for the projects where requirements are at a moderate to high risk of changing.
When to use the waterfall model:
- This model is used only when the requirements are very well known, clear and fixed.
- Product definition is stable.
- Technology is understood.
- There are no ambiguous requirements
- Ample resources with required expertise are available freely
- The project is short.
206 total views, 0 views today