In 1970 Winston Royce gives Waterfall model i.e, Sequential Software Product Life Cycle. In this approach, whole software development process in divided into different phases, each performing different activity. Next phase will starts after the completion of previous phase. Their should not be any overlapping between the stages because outcome of each phase act as the input to the next phase.
There are following 6 steps of this model:-
- Requirement Analysis:- In this phase, the basic aim is to understand the exact requirements of the customer and document them properly like its function, purpose and what needs to design.
- System Design:- The requirements specified in first phase are studied in this phase. System design phase helps in identifying software and hardware requirements and also helps in identifying and understanding overall architecture of the system.
- Implementation:- After getting outputs from system design, first the system will be designed in form of small programs, called units. After that, these units will be integrated into the next phase. And all these units will undergo for functionality testing, called Unit testing.
- Integration:- after testing all the units that are in the implementation phase we will integrate into a system. After integration of all the units , entire system is tested to determine that their should not be any kind of error.
- Deployment:- After completion of all kinds of functional or non-functional testing, the product, we deliver it to the customer.
- Maintenance:- As a result, whenever the products are deployed to the customer, some issues may come up. The main objective of this phase is to deliver the final product to the client after performing all the modifications.
- Clearly defined stages
- In addition, it is simple and easy to use and understand
- Next phase will starts after the completion of previous phase
- Also each phase has some specific output that works as the input to next phase
- Furthermore proper documentation of requirements, process and results.
- This is mostly suitable for small scale projects.
In short, waterfall model is a traditional software product life cycle, that divides the entire software development process into different phases.
Waterfall model is more of a traditional method. Agile methodology is the continuation of this model and you can refer this blog to know about this methodology, Link – HERE