Home »
Software Engineering
The different phases of the Classical waterfall model
This article is in continuation of the previous article on the topic: The classical waterfall model. In this article, we are going to define each phase of the classical waterfall model in detail.
Submitted by Monika Sharma, on October 02, 2019
The different phases that are included in the classical waterfall model are:
- Feasibility study
- Requirement analysis and specification
- Design
- Coding and unit testing
- Integration and system testing
- Maintenance
Now, let us explain the different processes that are followed in each of these phases while the entire software development process.
1) Feasibility study
In the feasibility study, we try to study the software in terms of technical and business aspects, to determine whether it would be beneficial for the company (or the organization) to build the particular software, whether the consumers will be satisfied through it or not and how much profit the software will be able to provide us.
The feasibility study takes place as follows:
- A rough understanding of the project by the team leaders and heads from the client-side.
- Analyzing every aspect of the client's views and reaching a state overall understanding of the project is made.
- Picking up the best solution.
2) Analysis and specification
Here, all the requirements of the software are analyzed and documented properly. This is a very important phase because, in the classical waterfall model, each requirement must be documented in this phase itself because we cannot add or modify any of them in the later phases of development. This phase mainly involves two things:
- Requirements gathering
- Requirements specification
3) Design
In the design phase, a blueprint of the entire software is created. How the software must appear as a final product is decided in the designing phase itself. Hence, the design of the software gives an overview of the software to the developers so that they can work on that accordingly. This is done so that all the requirements are transformed into a structural manner which now makes it easier for the developers to implement.
The designing team can follow different approaches like the traditional approach, the procedural approach, the object-oriented approach, etc.
4) Coding and unit testing
In the coding phase, the developers code the program in any suitable programming language. While developing any feature of the software, the developers also have to test the feature on their level to check whether it is working fine or not. Therefore, the testing involved in this phase is termed as unit testing.
5) Integration and system testing
Different developers work on different subprograms. Now, all these subprograms need to be integrated to get our final software. Also, when the subprograms (or modules) are integrated, then they may function in a different manner which is not expected. SO, it is the job of the tester now to check the software for each functionality. There are three testing rounds that software must undergo before the deployment of the final software. They are:
- Alpha testing
- Beta testing
- Acceptance testing
6) Maintenance
After the final testing, the software may require some maintenance before getting deployed. Even after getting deployed, there can occur certain problems that may occur in the software with the use. All these are also handled and maintained in the maintenance phase of the software lifecycle.