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.