Abstract Software maintenance is the general name given to the set of activities undertaken on a software system following its release for operational use. Surveys have shown that for many projects, software maintenance consumes the majority of the overall software life-cycle costs, and there are indications that the proportion is increasing. Inability to cope with software maintenance can also result in a backlog of application modifications. Despite the importance of software maintenance, it has acquired the reputation of being a second-class area in which to work. The paper defines in more detail the term software maintenance, and then addresses the issues of maintaining existing code, and producing maintainable systems, stressing the role of reengineering. Three projects that focus on software maintenance are then summarized. All three aim to provide automated assistance to the software maintainer, but in contrasting ways. The ReForm project is based on a formal method to extract specifications from code using transformations. MACS and REDO are both transnational European projects funded by the Esprit collaborative programme of research; the former uses expert system technology to assist the maintainer, while REDO aims to provide a set of integratable tools within a single environment, to support the reverse engineering process.
[1]
E. Burton Swanson,et al.
Characteristics of application software maintenance
,
1978,
CACM.
[2]
James H. Cross,et al.
Reverse engineering and design recovery: a taxonomy
,
1990,
IEEE Software.
[3]
Edsger W. Dijkstra,et al.
A Discipline of Programming
,
1976
.
[4]
Meir M. Lehman.
Programs, life cycles, and laws of software evolution
,
1980
.
[5]
Ray Kemp.
Information systems factory study
,
1987
.
[6]
Stephen S. Yau,et al.
Ripple effect analysis of software maintenance
,
1978,
COMPSAC.
[7]
Cliff B. Jones,et al.
Systematic software development using VDM
,
1986,
Prentice Hall International Series in Computer Science.
[8]
John C. Shaw,et al.
Managing the EDP function
,
1971
.
[9]
Norman F. Schneidewind,et al.
The State of Software Maintenance
,
1987,
IEEE Transactions on Software Engineering.
[10]
K. H. Bennett,et al.
Software Engineering Environments: Research and Practice
,
1989
.
[11]
E. B. Swanson,et al.
Software maintenance management
,
1980
.