Software maintenance is defined as the process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment (NCSU, n.d.)
- Corrective Maintenance – This includes modifications and updates done in order to correct or fix problems, which are either discovered by user or concluded by user error reports.
- Adaptive Maintenance – This includes modifications applied to keep the software product up-to date and tuned to the ever changing world of technology and business environment.
- Perfective Maintenance – This includes updates done in order to keep the software usable over long period of time. It includes new features, new user requirements for refining the software and improve its reliability and performance.
- Preventive Maintenance – It aims to attend problems, which are not significant at this moment but may cause serious issues in future.
NC State University. (n.d.). Maintenance Refactoring. NC State University SE Materials. Retrieved from: http://agile.csc.ncsu.edu/SEMaterials/MaintenanceRefactoring.pdf
Tutorialspoint. (n.d.) Software Maintenance Overview. Tutorialspoint. Retrieved from: https://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm
Robbins, D. (2015). Chapter 5: Software Maintenance. Swebok. Retrieved from: http://swebokwiki.org/File:Software-maintenance.jpg