The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment
Software Maintenance
Kinds of maintenance activities
correcting errors
Corrective maintenance
adapting to changes in the environment (both hardware and software)
Adaptive maintenance
adapting to changing user requirements
Perfective maintenance
increasing the system’s maintainability
Preventive maintenance
Major causes of maintenance problems (3)
result is at higher level of abstraction
Design recovery
result is at same level of abstraction
Redocumentation