Types of software evolution and software maintenance

Authors: 
Chapin, N.; Hale, J.E.; Khan, K.M.; Ramil, J.F.; Tan, W.
Author: 
Chapin, N
Hale, J
Khan, K
Ramil, J
Tan, W
Year: 
2001
Venue: 
Journal of Software Maintenance and Evolution: Research and Practice Volume 13, Issue 1 , Pages 3 - 30, February 2001
URL: 
http://doi.wiley.com/10.1002/smr.220.abs
DOI: 
10.1002/smr.220
Citations: 
276
Citations range: 
100 - 499

The past two decades have seen increasing sophistication in software work. Now and in the future, the work of both practitioners and researchers would be helped by a more objective and finer granularity recognition of types of software evolution and software maintenance activities as actually done. To these ends, this paper proposes a clarifying redefinition of the types of software evolution and software maintenance. The paper bases the proposed classification not on people's intentions but upon objective evidence of maintainers' activities ascertainable from observation of activities and artifacts, and/or a before and after comparison of the software documentation. The classification includes taking into account in a semi-hierarchical manner evidence of the change or lack thereof in: (1) the software, (2) the documentation, (3) the properties of the software, and (4) the customer-experienced functionality. A comparison is made with other classifications and typologies. The paper provides a classified list of maintenance activities and a condensed decision tree as a summary guide to the proposed evidence-based classification of the types of software evolution and software maintenance.