The types of maintenance involved involved in software maintenance may be grouped into the following:
- Corrective maintenance
- Adaptive maintenance
- Perfective maintenance
Corrective Maintenance: This type of maintenance can be broadly described to fit the word maintenance itself. It deals mostly with the fixing of errors or bugs that are found within the application. These corrections could range from design, logic, and even code. The bug report is usually generated from customer and user feedback.
Adaptive Maintenance : This type of maintenance is necessary to keep up with the market trend so as to project a software as modern and up to date. This maintenance is needed when the environment of the software changes. This change can be brought about by an advancement in operating systems, hardware or any software dependencies.
Perfective Maintenance : This simply refers to a type of maintenance that involves both the removing and adding of features to an application up to the point where it seems to be lacking nothing, but since the word perfect is an illusion, the process never ends, and the developer may continue to add or remove features as he sees fit in order to improve functionality, user interface and user experience.