A controlled experiment in assessing and estimating software maintenance tasks

Context: Software maintenance is an important software engineering activity that has been reported to account for the majority of the software total cost. Thus, understanding the factors that influence the cost of software maintenance tasks helps maintainers to make informed decisions about their work. Objective: This paper describes a controlled experiment of student programmers performing maintenance tasks on a C++ program. The objective of the study is to assess the maintenance size, effort, and effort distributions of three different maintenance types and to describe estimation models to predict the programmer's effort spent on maintenance tasks. Method: Twenty-three graduate students and a senior majoring in computer science participated in the experiment. Each student was asked to perform maintenance tasks required for one of the three task groups. The impact of different LOC metrics on maintenance effort was also evaluated by fitting the data collected into four estimation models. Results: The results indicate that corrective maintenance is much less productive than enhancive and reductive maintenance and program comprehension activities require as much as 50% of the total effort in corrective maintenance. Moreover, the best software effort model can estimate the time of 79% of the programmers with the error of or less than 30%. Conclusion: Our study suggests that the LOC added, modified, and deleted metrics are good predictors for estimating the cost of software maintenance. Effort estimation models for maintenance work may use the LOC added, modified, deleted metrics as the independent parameters instead of the simple sum of the three. Another implication is that reducing business rules of the software requires a sizable proportion of the software maintenance effort. Finally, the differences in effort distribution among the maintenance types suggest that assigning maintenance tasks properly is important to effectively and efficiently utilize human resources.

[1]  Qi Li,et al.  An empirical analysis on distribution patterns of software maintenance effort , 2008, 2008 IEEE International Conference on Software Maintenance.

[2]  Barry W. Boehm,et al.  A SLOC Counting Standard , 2007 .

[3]  Victor R. Basili,et al.  Understanding and predicting the process of software maintenance releases , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[4]  H. E. Dunsmore,et al.  Software engineering metrics and models , 1986 .

[5]  Barry W. Boehm,et al.  Software development cost estimation approaches — A survey , 2000, Ann. Softw. Eng..

[6]  N. Schneidewind,et al.  Towards an Ontology of software maintenance , 1999 .

[7]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[8]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[9]  Magne Jørgensen,et al.  A Systematic Review of Software Development Cost Estimation Studies , 2007 .

[10]  José Javier Dolado,et al.  On the problem of the software cost function , 2001, Inf. Softw. Technol..

[11]  Brad A. Myers,et al.  Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks , 2005, ICSE.

[12]  Andrea De Lucia,et al.  Assessing the maintenance processes of a software organization: an empirical analysis of a large industrial project , 2003, J. Syst. Softw..

[13]  Audris Mockus,et al.  Inferring change effort from configuration management databases , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[14]  Taizan Chan Impact of programming and application-specific knowledge on maintenance effort:A hazard rate model , 2008, 2008 IEEE International Conference on Software Maintenance.

[15]  Magne Jørgensen,et al.  A Systematic Review of Software Development Cost Estimation Studies , 2007, IEEE Transactions on Software Engineering.

[16]  Andrea De Lucia,et al.  Assessing effort estimation models for corrective maintenance through empirical studies , 2005, Inf. Softw. Technol..

[17]  Vu Nguyen,et al.  Improved size and effort estimation models for software maintenance , 2010, 2010 IEEE International Conference on Software Maintenance.

[18]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[19]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[20]  Thomas M. Pigoski Practical Software Maintenance: Best Practices for Managing Your Software Investment , 1996 .

[21]  Girish Parikh,et al.  Tutorial on Software Maintenance , 1983 .

[22]  Daniel Port,et al.  Comparative studies of the model evaluation criterions mmre and pred in software cost estimation research , 2008, ESEM '08.

[23]  Barry W. Boehm,et al.  A constrained regression technique for cocomo calibration , 2008, ESEM '08.

[24]  Victor R. Basili,et al.  Viewing maintenance as reuse-oriented software development , 1990, IEEE Software.

[25]  Sandrine Blazy,et al.  Software maintenance: an analysis of industrial needs and constraints , 1992, Proceedings Conference on Software Maintenance 1992.

[26]  Alain Abran,et al.  Analysis of maintenance work categories through measurement , 1991, Proceedings. Conference on Software Maintenance 1991.

[27]  Michael Mattsson Effort distribution in a six year industrial application framework project , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[28]  Andrea De Lucia,et al.  Assessing Effort Prediction Models for Corrective Software Maintenance - An Empirical Study , 2004, ICEIS.

[29]  Magne Jørgensen,et al.  Experience With the Accuracy of Software Maintenance Task Effort Prediction Models , 1995, IEEE Trans. Software Eng..

[30]  Ned Chapin,et al.  Types of software evolution and software maintenance , 2001, J. Softw. Maintenance Res. Pract..

[31]  Barry W. Boehm Understanding and Controlling Software Costs , 1988 .