There are five types of software maintenance
- Preventive Maintenance – A system may be checked and maintained periodically
- Corrective Maintenance – Correct the deviation noticed under certain conditions of field use of the system
- Perfection or Enhancement Maintenance – development team delivers a system on schedule and then finds another design capable of working more accurately and effectively
- Adaptive Maintenance – Adapt the software to new conditions
- System Reengineering – previously developed system is reengineered.