The modification of a software product, after delivery, to correct faults, to improve performance or other attributes, or to adapt the product to a changed environment.
Maintenance is an important part of the software life-cycle. It is expensive in manpower and resources, and one of the aims of software engineering is to reduce its cost.
The most important problem during maintenance is the before correcting or modifying a program, the programmer must first understand it.
The problems are:
- Often another person or group of persons working over the years in isolation from each other writes the program.
- Often the program is changed by person who did not understand it clearly, resulting in a deterioration of the program's original organization.
- There is a high staff turnover within information technology industry. Due to this persons who are not the original authors maintain many systems. These persons may not have adequate knowledge about the system.
Some problems only become clearer when a system is in use. Many users know what they want but lack the ability to express it in a form understandable to programmers. This is primarily due to information gap.