Reasons of doing it? Well, software is a model of reality and reality changes. If software is found to be useful, satisfied users want to extend the functionality of the system. Software is much cheaper to change than hardware. As a result, changes are made in software wherever possible. Successful software survives well beyond the lifetime of the hardware for which it was written. Software need to be modified to run on new hardware and operating system.
There are some types of maintenance based on their characteristics:
- 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.
Here’s a little video about the software maintenance process: