There are Four Types of Software Maintenance, namely, corrective, adaptive, perfective, and preventive. Software maintenance is the process of keeping a software system continuously updated to full-fill the user requirements. Software maintenance is an important activity after the software is delivered to the end-user.
Four Types of Software Maintenance
1. Corrective Change
- Corrective change commonly referred to as bugs are the most typical change associated with maintenance work.
- Corrective changes address the errors and faults in the software that could affect different areas of your software; design, logic or code.
- Most commonly, these changes are sprung by the bug reports made by the users.
2. Adaptive Change
- Adaptive change is triggered by the changes in the environment the software lives in.
- The adaptive change can be triggered by the changes to the operating system, hardware, software dependencies, and even the organizational business rules and the policies.
- These modifications to the environment can trigger the changes within other parts of your software.
3. Perfective Change
- Perfective changes refer to the evolution of requirements and features in your existing system.
- As the software gets exposed to users they will think of another way to expand the system or suggest new features that they would like to see as the part of the software, which in turn can become the future enhancements to the system.
- Perfective changes also include removing features from a system that are not effective and functional to the end goal of the system.
4. Preventive Change
- Preventive changes refer to the changes created to boost the understanding and maintainability of your software in the long run.
- Preventive changes are focused on decreasing the deterioration of your software in the long run.
- Restructuring, optimizing code and updating the documentation are common preventive changes.
- Executing preventive changes reduces the number of unpredictable effects software can have in the long term and helps it become scalable, stable, understandable and maintainable.