Determinants of software maintenance profiles: an empirical investigation

Software maintenance is a task that is difficult to manage effectively. In part, this is because software managers have very little knowledge about the types of maintenance work that are likely to occur. If managers could forecast changes to software systems, they could more effectively plan, allocate workforce and manage change requests. But, the ability to forecast software modifications depends on whether there are predictable patterns in maintenance work. We posit that there are patterns in maintenance work and that certain characteristics of software modules are associated with these patterns. We examine modification profiles for 621 software modules in five different business systems of a commercial merchandiser. We find that only a small number of modules in these systems is likely to be modified frequently, and that certain maintenance patterns emerge. Modules frequently enhanced are in systems whose functionality is considered strategic. Modules frequently repaired have high software complexity, are large in size, and are relatively older. However, modules that have been code generated are less likely to be repaired. Older and larger modules are restructured and upgraded more frequently. Our results suggest that these characteristics of software modules are associated with predictable maintenance profiles. Such profile information can be used by software managers to predict and plan for maintenance more effectively. In addition, our results suggest the use of code generators as a means of reducing repair maintenance. © 1997 John Wiley & Sons, Ltd.

[1]  Chris F. Kemerer,et al.  Cyclomatic Complexity Density and Software Maintenance Productivity , 1991, IEEE Trans. Software Eng..

[2]  Capers Jones Software enhancement modelling , 1989, J. Softw. Maintenance Res. Pract..

[3]  Gordon B. Davis,et al.  Software Development Practices, Software Complexity, and Software Maintenance Performance: a Field Study , 1998 .

[4]  Charles R. Necco,et al.  Current usage of case software , 1989 .

[5]  William S. Davis,et al.  Systems Analysis and Design a Structured Approach , 1983, Int. CMG Conference.

[6]  Norman F. Schneidewind,et al.  The State of Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[7]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[8]  D. Potier,et al.  Experiments with computer software complexity and reliability , 1982, ICSE '82.

[9]  Randolph B. Cooper,et al.  A human information processing perspective on software maintenance , 1994 .

[10]  Anitesh Barua,et al.  On the Economics of the Software Replacement Problem , 1990, ICIS.

[11]  Gordon B. Davis,et al.  Management information systems : conceptual foundations, structure, and development , 1985 .

[12]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[13]  H Schaefer Metrics for optimal maintenance management , 1986 .

[14]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.

[15]  Rajiv D. Banker,et al.  A model to evaluate variables impacting the productivity of software maintenance projects , 1991 .

[16]  David Gefen,et al.  The non-homogeneous maintenance periods: a case study of software modifications , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[17]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation0 , 1984, CACM.

[18]  Chris F. Kemerer,et al.  Software complexity and software maintenance: A survey of empirical research , 1995, Ann. Softw. Eng..

[19]  Rajiv D. Banker,et al.  Software complexity and maintainability , 1989, ICIS '89.

[20]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[21]  Rajiv D. Banker,et al.  A Field Study of Scale Economies in Software Maintenance , 1997 .

[22]  Klaus Krippendorff,et al.  Content Analysis: An Introduction to Its Methodology , 1980 .

[23]  Ron Weber,et al.  Some factors affecting program repair maintenance: an empirical study , 1983, CACM.

[24]  Willa K. Ehrlich,et al.  Applying reliability measurement: a case study , 1990, IEEE Software.