1. Project Planning
In this first stage, there is a meeting with the customer to understand the requirements. This stage is the most fundamental phase as any miscommunication or misinterpretation (at this stage) may give rise to the software that is being developed. The key activity of project planning is the process of clear, discrete activities and the work needed to complete each activity within a single project. If this phase is completed successfully, it ensures a smooth working of the remaining phases, as the programmer is not burdened to make changes at later stages because of changes in requirements.
The objective of the project planning process is the development of a Baseline Project Plan (BPP) and the Project Scope Statement (PSS).
As per the requirements, the software and hardware needed for the proper completion of the project is analysed in this phase.
Such features are decided at this stage; from deciding which computer language should be used for designing the software, to the database system that can be used for the smooth functioning of the software.
3. System Design
The requirements, that are gathered in the previous phase are broken down into logical units, so that the software process becomes easy for implementation. This is the stage, when the software requirements along with the hardware requirements for every unit are identified. Then the designs are made accordingly. The interrelation between the various units of the software are identified and the connections are made, using algorithms and diagrams.
To sum it up, this is the phase, where the fundamental work for actual programming and implementation is done.
4. System Implementation
In this phase the actual development of the software takes place. This phase is also known as coding and verification phase. Based on the algorithms written in the previous phase, software program is written. For every module, software code is written and tested, to check if the correct output is received.
5. System Integration and Testing
With the coding of the application complete, the testing of the written code now comes into scene. Testing checks if there are any flaws in the designed software and if the software has been designed as per the listed specifications. A proper execution of this stage ensures that the customer interested in the created software, will be satisfied with the finished product. If there are any flaws, the software development process must step back to the design phase.
This makes for the final phase of the waterfall model, where the software is organised at the clients side, after it has undergone thorough testing. After the deployment of the software, routine maintenance work is carried out. Once the software has been deployed, in case the customer asks for any changes or enhancements, then the entire process is restarted.