Ans: 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.