Toward understanding the rhetoric of small source code changes

Understanding the impact of software changes has been a challenge since software systems were first developed. With the increasing size and complexity of systems, this problem has become more difficult. There are many ways to identify the impact of changes on the system from the plethora of software artifacts produced during development, maintenance, and evolution. We present the analysis of the software development process using change and defect history data. Specifically, we address the problem of small changes by focusing on the properties of the changes rather than the properties of the code itself. Our study reveals that 1) there is less than 4 percent probability that a one-line change introduces a fault in the code, 2) nearly 10 percent of all changes made during the maintenance of the software under consideration were one-line changes, 3) nearly 50 percent of the changes were small changes, 4) nearly 40 percent of changes to fix faults resulted in further faults, 5) the phenomena of change differs for additions, deletions, and modifications as well as for the number of lines affected, and 6) deletions of up to 10 lines did not cause faults.

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

[2]  Harvey P. Siy,et al.  Predicting Fault Incidence Using Software Change History , 2000, IEEE Trans. Software Eng..

[3]  Richard C. Holt,et al.  Studying the chaos of code development , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[4]  Victor R. Basili,et al.  Evaluating Software Development by Analysis of Changes: Some Data from the Software Engineering Laboratory , 1985, IEEE Transactions on Software Engineering.

[5]  Lawrence G. Votta,et al.  Design Process Improvement Case Study Using Process Waiver Data , 1995, ESEC.

[6]  David B. Leblang The CM challenge: configuration management that works , 1995 .

[7]  J. Meltzoff Critical Thinking About Research: Psychology and Related Fields , 2017 .

[8]  Dewayne E. Perry,et al.  Implications of evolution metrics on software maintenance , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[9]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation , 1993 .

[10]  Jr. Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[11]  Dewayne E. Perry,et al.  Challenges in Evolving a Large Scale Software Product , 1998 .

[12]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[13]  Myron Lipow Prediction of software failures , 1979, J. Syst. Softw..

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

[15]  Gerard J. Holzmann,et al.  The logic of bugs , 2002, SIGSOFT '02/FSE-10.

[16]  Dewayne E. Perry An Empirical Approach to Design Metrics and Judgments , 2001 .

[17]  K. E. Martersteck,et al.  The 5ESS switching system: Introduction , 1985, AT&T Technical Journal.

[18]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[19]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[20]  Audris Mockus,et al.  Identifying reasons for software changes using historic databases , 2000, Proceedings 2000 International Conference on Software Maintenance.

[21]  Ahmed E. Hassan,et al.  Mining Software Repositories to Assist Developers and Support Managers , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[22]  Dewayne E. Perry,et al.  Classification and evaluation of defects in a project retrospective , 2002, J. Syst. Softw..

[23]  David A. Gustafson,et al.  Classifying software maintenance , 1988, Proceedings. Conference on Software Maintenance, 1988..

[24]  Dewayne E. Perry,et al.  EMPIRICAL STUDY OF SOFTWARE INTERFACE FAULTS - AN UPDATE. , 1987 .

[25]  Dewayne E. Perry,et al.  Experiments in Process Interface Descriptions, Visualizations and Analyses , 1995, EWSPT.

[26]  Harvey P. Siy,et al.  Parallel changes in large scale software development: an observational case study , 1998, TSEM.

[27]  Les Hatton,et al.  Reexamining the Fault Density-Component Size Connection , 1997, IEEE Softw..

[28]  John D. Gannon,et al.  Analysis of the effects of programming factors on programming effort , 1980, J. Syst. Softw..

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

[30]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[31]  Audris Mockus,et al.  Predicting risk of software changes , 2000, Bell Labs Technical Journal.