The effect of evolutionary coupling on software defects: an industrial case study on a legacy system

Evolutionary coupling is defined as the implicit relationship between two or more software artifacts that are frequently changed together. In this study we investigate the effect of evolutionary coupling on defect proneness of a large financial legacy software in an industrial software development environment. We collected historical data for 5 years from 3 different software repositories containing 150 thousand files on 274 modules. Our results indicate that there is a positive correlation between evolutionary coupling and defect measures. Furthermore, we built linear and logistic regression models by using evolutionary coupling measures in order to explain defects. Although regression analysis results show that evolutionary coupling measures can be useful to explain defects, especially for modules in which high correlation is detected, explanatory power decreases dramatically with the decreasing correlation.

[1]  Christian Bauer,et al.  Hibernate in action , 2005 .

[2]  Thomas Zimmermann,et al.  Mining Aspects from Version History , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[3]  Ehsan Kouroshfar,et al.  Studying the effect of co-change dispersion on software quality , 2013, 2013 35th International Conference on Software Engineering (ICSE).

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

[5]  Abraham Bernstein,et al.  Predicting defect densities in source code files with decision tree learners , 2006, MSR '06.

[6]  Gail C. Murphy,et al.  Predicting source code changes by mining change history , 2004, IEEE Transactions on Software Engineering.

[7]  Ken-ichi Matsumoto,et al.  Using Co-change Histories to Improve Bug Localization Performance , 2013, 2013 14th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing.

[8]  Harald C. Gall,et al.  CVS release history data for detecting logical couplings , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[9]  Michele Lanza,et al.  On the Relationship Between Change Coupling and Software Defects , 2009, 2009 16th Working Conference on Reverse Engineering.

[10]  Will G. Hopkins,et al.  A new view of statistics , 2002 .

[11]  Jean Hartley,et al.  Case study research , 2004 .

[12]  Dirk Beyer,et al.  Animated Visualization of Software History using Evolution Storyboards , 2006, 2006 13th Working Conference on Reverse Engineering.

[13]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[14]  Barbara Russo,et al.  Co-evolution of logical couplings and commits for defect estimation , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[15]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[16]  Yuming Zhou,et al.  The ability of object-oriented metrics to predict change-proneness: a meta-analysis , 2011, Empirical Software Engineering.

[17]  Harald C. Gall,et al.  Visualizing multiple evolution metrics , 2005, SoftVis '05.

[18]  R. Stephenson A and V , 1962, The British journal of ophthalmology.

[19]  Harvey P. Siy,et al.  If your ver-sion control system could talk , 1997 .

[20]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .