Guest editorial: special section on software maintenance and evolution

Massimiliano Di Penta, Jonathan I. Maletic
2015 Empirical Software Engineering  
As described in the IEEE Standard Glossary of Software Engineering Terminology (1994), software maintenance is "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." Since the first studies of software maintenance and evolution, (Lehman 1980; Lehman and Belady 1985) , research in the area has covered a wide variety of topics. Topics range from reverse engineering, program
more » ... n, software migration, refactoring, and regression testing. As such the five articles in this special issue cover differ aspects of software maintenance and evolution, namely traceability link recovery and usage, understanding of issue reports, and identification/refactoring of code smells specifically related to spreadsheets. In the paper "Do Developers Benefit From Requirements Traceability When Evolving and Maintaining a Software System?" the authors conduct a controlled experiment with 71 subjects to investigate whether the availability of traceability links helps developers to achieve higher productivity and correctness during maintenance tasks. Results of their study indicate that, when traceability links are available, developers perform their tasks 24% faster and with 50 % more correct solutions. This paper shows that traceability links can indeed be useful, however in practice these links are often unavailable or outdated. This fact led to the development of techniques, often based on Information Retrieval (IR) techniques, to help recover links (Antoniol et al.
doi:10.1007/s10664-015-9382-8 fatcat:ua3caockmnhjtiil6ceh54t5l4