An Empirical Study of the Relation Between Strong Change Coupling and Defects Using History and Social Metrics in the Apache Aries Project

  • Igor Scaliante Wiese
  • Rodrigo Takashi Kuroda
  • Reginaldo Re
  • Gustavo Ansaldi Oliva
  • Marco Aurélio Gerosa
Conference paper
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT, volume 451)

Abstract

Change coupling is an implicit relationship observed when artifacts change together during software evolution. The literature leverages change coupling analysis for several purposes. For example, researchers discovered that change coupling is associated with software defects and reveals relationships between software artifacts that cannot be found by scanning code or documentation. In this paper, we empirically investigate the strongest change couplings from the Apache Aries project to characterize and identify their impact in software development. We used historical and social metrics collected from commits and issue reports to build classification models to identify strong change couplings. Historical metrics were used because change coupling is a phenomenon associated with recurrent co-changes found in the software history. In turn, social metrics were used because developers often interact with each other in issue trackers to accomplish the tasks. Our classification models showed high accuracy, with 70−99 % F-measure and 88−99 % AUC. Using the same set of metrics, we also predicted the number of future defects for the artifacts involved in strong change couplings. More specifically, we were able to predict 45.7 % of defects where these strong change couplings reoccurred in the post-release. These findings suggest that developers and projects managers should detect and monitor strong change couplings, because they can be associated with defects and tend to happen again in the subsequent release.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Gall, H., Hajek, K., Jazayeri, M.: Detection of logical coupling based on product release history. In: Proceedings of the International Conference on Software Maintenance, p. 190. IEEE Computer Society, Washington, DC, USA (1998)Google Scholar
  2. D’Ambros, M., Lanza, M., Lungu, M.: Visualizing co-change information with the evolution radar. IEEE Trans. Software Eng. 35, 720–735 (2009)CrossRefGoogle Scholar
  3. Kirbas, S., Sen, A., Caglayan, B., Bener, A., Mahmutogullari, R.: The effect of evolutionary coupling on software defects: an industrial case study on a legacy system. In: Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 6:1–6:7. Torino (2014)Google Scholar
  4. D’Ambros, M., Lanza, M., Robbes, R.: On the relationship between change coupling and software defects. WCRE 2009, pp. 135–144 (2009)Google Scholar
  5. Ying, A.T.T., Murphy, G.C., Ng, R., Chu-Carroll, M.C.: Predicting source code changes by mining change history. IEEE Trans. Softw. Eng. 30, 574–586 (2004)CrossRefGoogle Scholar
  6. Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S.: Mining version histories to guide software changes. IEEE Trans. Software Eng. 31, 429–445 (2005)CrossRefGoogle Scholar
  7. Cataldo, M., Mockus, A., Roberts, J.A., Herbsleb, J.D.: Software dependencies, work dependencies, and their impact on failures. IEEE Trans. Software Eng. 35, 864–878 (2009)CrossRefGoogle Scholar
  8. Cataldo, M., Nambiar, S.: The impact of geographic distribution and the nature of technical coupling on the quality of global software development projects. Journal of Software Maintenance and Evolution: Research and Practice (2010)Google Scholar
  9. Breiman, L.: Random forests. Mach. Learn. 45, 5–32 (2001)CrossRefMATHGoogle Scholar
  10. McIntosh, S., Adams, B., Nagappan, M., Hassan, A.E.: Mining co-change information to understand when build changes are necessary. In: Proc. of the 30th Int’l Conf. on Software Maintenance and Evolution (ICSME), pp. 241–250 (2014)Google Scholar
  11. Beck, F., Diehl, S.: On the congruence of modularity and code coupling. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, pp. 354–364. ACM, Szeged (2011)Google Scholar
  12. Silva, L.L., Valente, M.T., de A. Maia, M.: Assessing modularity using co-change clusters. In: Proceedings of the 13th International Conference on Modularity, pp. 49–60. ACM, Lugano (2014)Google Scholar
  13. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972)CrossRefGoogle Scholar
  14. Geipel, M.M., Schweitzer, F.: The link between dependency and cochange: empirical evidence. IEEE Trans. Software Eng. 38, 1432–1444 (2012)CrossRefGoogle Scholar
  15. Oliva, G.A., Gerosa, M.A.: On the interplay between structural and logical dependencies in open-source software. Simpósio Brasileiro de Engenharia de Software, pp. 144–153 (2011)Google Scholar
  16. Herzig K., Zeller, A.: The impact of tangled code changes. In: Proceedings of the 10th Working Conference on Mining Software Repositories, pp. 121–130. IEEE Press, San Francisco (2013)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2015

Authors and Affiliations

  • Igor Scaliante Wiese
    • 1
  • Rodrigo Takashi Kuroda
    • 2
  • Reginaldo Re
    • 1
  • Gustavo Ansaldi Oliva
    • 3
  • Marco Aurélio Gerosa
    • 3
  1. 1.Departament of ComputingUTFPR – Universidade Tecnológica Federal Do Paraná/Campus Campo MourãoCampo MourãoBrazil
  2. 2.PPGI - UTFPR/Campus Cornélio ProcópioCornélio ProcópioBrazil
  3. 3.Departament of Computer ScienceIME/USP – University of Sao PauloSao PauloBrazil

Personalised recommendations