Representation of Components, Relationships and rules
- Requirements analysis and specification
In this phase, the requirement will be developed. It also includes the functions of the software to be developed the programís constraints and the goal of the software.
- System and software design
In this phase, appropriate interfaces is determine and the major data types and operators.
- Coding and module testing
In this phase, programmers will start coding by using appropriate language and the modules are tested to meet their specification.
- Integration and system testing
In this phase, all the modules will be combined and the whole program will be tested. The program is done when the test is done successfully.
- Delivery and maintenance
In this phase, the finished version will be delivered and the programmers will continue to maintain the existing version.
Strength and Weakness of Waterfall Model
- The waterfall model strengthen the completion of each phase before continue to the next phase. This will simplify the management to the software and will reduce the costly iterations among phases.
- In each phrase, this model will provide quality gates. The quality gate is a checkpoint to determine the quality of each phase. The next phase will not proceed unless quality of each phase is achieved. By doing this, the finished product will have a better quality.
- This model is also simple and easy to follow.
- Lower problems risk for well-understood system by using familiar technology.
- In each phrase, the programmers must follow the freezing requirements in the earlier phrase.
- Due to the freezing requirements, this waterfall model does not allow programmers to make any changes for previous phrases.
- The waterfall model has become a little outdated but it is still widely used.
- This model emphasizes more on products rather than processes.
- This model also does not have feedback loops.
- Higher problems risk for new system. The specifications and design problems might not suitable for a new system.
- Everything may need to redo if something wrong found in the middle of the phrases.
- Complexity of software increases because waterfall model does not allow backtracking.
Appropriate and Inappropriate Domains of Application in Waterfall Model
- It is suitable for well-understood system so that the finished product will work perfectly.
- It is also suitable for short-term software program because mostly probably the program has to redo if the requirements and specifications do not match the new system.
- It is suitable for simple project. The reason is that the waterfall model does not allow backtracking which causes the complexity of the program increase from phrase to phrase.
- It is not suitable for long-term software.
- It is not suitable for complex project because the complexity increases from phrase to phrase. If something wrong in the middle, the chance of tracing the mistake is very low and the chance to redo is high.
- It is not suitable for clients who always change their requirements. It will not move to next phrase unless the clients have confirmed the requirements and specifications.
The waterfall model is also known as "linear sequential model" or "classic life cycle." It is the oldest life cycle model. It was proposed by Winston Royce in 1970. This model is called waterfall because it is usually drawn in waterfall shape (refer to the picture above). It is one of the most widely used life cycles although it is a little outdated.
Related Tools and Methodologies
- Case Assisted Software Engineering (CASE) a tool that is using to develop software by using waterfall model.
- Requirements and specification must be well defined first.
- To see any products, clients must wait until the final version of the software.
- No prototyping or little.
- Solution and domain to the problem are very stable.
- Upstream investments will save downstream cost.