Software Maintenance
Program-Transformation.Org: The Program Transformation Wiki
Definitions
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.
Resources
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