Software Maintenance

Program-Transformation.Org: The Program Transformation Wiki


Software maintenance is defined by the ANSI/IEEE Std. 729-1983 and IEEE Std. 1219-1998 as:

  • 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.

The ISO Std. 12207-1995 defines software maintenance as follows:

  • The software product undergoes modification to code and associated documentation due to a problem or the need for improvement. The objective is to modify the existing software while preserving its integrity.

The textbook PracticalSoftwareMaintenance (p, 356) provides a more elaborate definition:

  • the totality of activities required to provide cost-effective suport to a software system. Activites are performed during the predelivery stage as well as the postdelivery stage. Predelivery activities include planning for postdelivery operations, supportability, and logistics determination. Postdelivery activities include software modification, training, and operating a help desk.


A detailed list of resources on software maintenance and evolution

Other resources on software maintenance include:

Phases of software evolution

KeithBennett and VaclavRajlich ( A Staged Model for the Software Lifecycle , IEEE Computer, July 2000, pp 66-71) argue that software maintenance is not a single phase, but should be thought of as consisting of several stages:

  • Initial development (before maintenance)
  • SoftwareEvolution: the engineers extend the capabilities and functionality of the system to meet needs of its users, possibly in major ways
  • Servicing: minor defect repairs
  • Phase out: no more servicing, but still generating revenues
  • Close down: death.

Evolution could well be a phase in which ExtremeProgramming would be adopted (and XP would make initial development as short as possible, at most a couple of weeks). --ArieVanDeursen

Research areas

Software maintenance research areas from the SoftwareMaintenanceAndEvolutionARoadmap include:

CategorySoftwareEvolution | Contributions by ArieVanDeursen and TomMens