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.