Predicting Co-Changed Files: An External, Conceptual Replication

A software project can be comprised of several, highly connected files. A software developer may not know the files that are connected to which are developed or that are changed by another developer. This may induce faults by missing necessary edits on all related files. We build a prediction model for identifying files that should be edited together during a code change, and evaluate the performance of our model on two Apache projects’ development history over more than 10 years. We conduct an external, conceptual replication study based on Wiese et al.'s prior work on predicting co-changed files. Our study shares the same goal but differentiates the experimental design in terms of data set construction, selection of file pairs, feature selection and the model output. Our prediction model’s results, although the same performance measures are used, are much lower than what is reported in Wiese et al.’s study, mainly due to the differences in calculating these measures. The models evaluated at commit granularity could achieve 20% and 45% lower recall and precision rates, respectively, than those aggregated over all file-pairs.  Although it is practically more useful, predicting all files that will be co-changed together during a commit is more challenging than predicting whether a particular file will be changed in that commit. More information about the context of a co-change, the degree of centrality of a file in the project, or project characteristics could reveal more insights in building such predictors in the future.

___

  • 1. Borg, M., Wnuk, K., Regnell, B., Runeson, P. 2017. Supporting change impact analysis using a recommendation system: an industrial case study in a safety- critical context. IEEE Transaction on Software Engineering, 43(3): 675-700.
  • 2. Kagdi, H., Maletic, J.I. Combining Single-version and Evolutionary Dependencies for Software-change Prediction, proceedings of the Fourth International Workshop on Mining Software Repositories (MSR), Minneapolis, USA, 2007, pp 17.
  • 3. Wiese, I.S., Ré, R., Steinmacher, I., Kuroda, R.T, Oliva, G.A., Treude C., Gerosa, M.A. 2017. Using contextual information to predict co-changes. Journal of Systems and Software, 128: 220-235.
  • 4. Ball, T., Kim, J., Porter, A.A., Siy, H.P. If Your Version Control System Could Talk, proceedings of the ICSE Workshop on Process Modeling and Empirical Studies of Software Engineering, 1997.
  • 5. Gall, H., Hajek K., Jazayeri, M. Detection of Logical Coupling Based on Product Release History, proceedings of the International Conference on Software Maintenance (ICSM), Washington, DC, USA, 1998, pp. 190-198.
  • 6. Zimmermann, T., Weisgerber, P., Diehl, S., Zeller, A. Mining Version Histories to Guide Software Changes, proceedings of the 26th International Conference on Software Engineering (ICSE), Washington, DC, USA, 2004, pp. 563-572.
  • 7. Canfora, G., Cerulo, L., Cimitile, M., Penta, M.D. 2014. How changes affect software entropy: an empirical study. Empirical Software Engineering, 19(1): 1-38.
  • 8. Hassan, A.E., Holt, R.C. Predicting Change Propagation in Software Systems, proceedings of the 20th IEEE International Conference on Software Maintenance, Chicago, IL, USA, 2004, pp. 284-293.
  • 9. Macho, C., McIntosh, S., Pinzger, M. Predicting Build Co-changes with Source Code Change and Commit Categories, proceedings of the 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Suita, Japan, 2016, pp. 541-551.
  • 10. Kouroshfa, E. Studying the Effect of Co-change Dispersion on Software Quality, proceedings of the International Conference on Software Engineering (ICSE), Piscataway, USA, 2013, pp. 1450-1452.
  • 11. Meyer, B., Nordio M. Empirical Software Engineering and Verification: International Summer Schools; Springer-Verlag: Berlin, Heidelberg, 2012.
  • 12. Shepperd, M., Ajienka, N., Counsell, S. 2018. The role and value of replication in empirical software engineering results. Information and Software Technology, 99: 120-132.
  • 13. Silva, F.Q., Suassuna, M., França, A.C., Grubb, A.M., Gouveia, T.B., Monteiro, C.V., Santos, I.E. 2014. Replication of empirical studies in software engineering research: a systematic mapping study. Empirical Software Engineering, 19(3): 501-557.
  • 14. Shull, F., Carver, J., Vegas, S., Juristo, N. 2008. The role of replications in empirical software engineering. Empirical Software Engineering, 13: 211-218.