Skip to main content
Log in

Pieces of contextual information suitable for predicting co-changes? An empirical study

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Models that predict software artifact co-changes have been proposed to assist developers in altering a software system and they often rely on coupling. However, developers have not yet widely adopted these approaches, presumably because of the high number of false recommendations. In this work, we conjecture that the contextual information related to software changes, which is collected from issues (e.g., issue type and reporter), developers’ communication (e.g., number of issue comments, issue discussants and words in the discussion), and commit metadata (e.g., number of lines added, removed, and modified), improves the accuracy of co-change prediction. We built customized prediction models for each co-change and evaluated the approach on 129 releases from a curated set of 10 Apache Software Foundation projects. Comparing our approach with the widely used association rules as a baseline, we found that contextual information models and association rules provide a similar number of co-change recommendations, but our models achieved a significantly higher F-measure. In particular, we found that contextual information significantly reduces the number of false recommendations compared to the baseline model. We conclude that contextual information is an important source for supporting change prediction and may be used to warn developers when they are about to miss relevant artifacts while performing a software change.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Notes

  1. Dataset and scripts are available at https://zenodo.org/record/2635857

  2. https://github.com/MetricsGrimoire/Bicho

  3. https://github.com/MetricsGrimoire/CVSAnalY

  4. OpenHub can be accessed at https://www.openhub.net

  5. Example for Derby project: http://igor.pro.br/cochanges/derby.html

References

  • Ball, T., Kim, J., & Siy, H. P. (1997). If your version control system could talk. ICSE Work Process Model Empir Stud Softw Eng..

  • Bavota, G., Dit, B., Oliveto, R., et al. (2013). An empirical study on the developers’ perception of software coupling. Proc - Int Conf Softw Eng, 692–701. https://doi.org/10.1109/ICSE.2013.6606615.

  • Beyer D, Noack A (2005) Clustering software artifacts based on frequent common changes. In: 13th International Workshop on Program Comprehension (IWPC’05). pp 259–268.

  • Bird, C., Nagappan, N., Murphy, B., Gall, H., Devanbu, P., 2009. Putting it all together: using socio-technical networks to predict failures. In: Proceedings - International Symposium on Software Reliability Engineering, ISSRE. pp. 109–119.

  • Bohner, S. A., & Arnold, R. S. (1996). Software change impact analysis. IEEE Computer Society Press.

  • Breiman, L. (2001). Random forests. Machine Learning, 45(1), 5–32. https://doi.org/10.1023/A:1010933404324.

    Article  MATH  Google Scholar 

  • Briand LC, Wust J, Lounis H (1999) Using coupling measurement for impact analysis in object-orientedsystems. Proc IEEE Int Conf Softw Maint - 1999 (ICSM’99) Software Maint Bus Chang (Cat No99CB36360). https://doi.org/10.1109/ICSM.1999.792645.

  • Canfora, G., Cerulo, L., Cimitile, M., & Di Penta, M. (2014). How changes affect software entropy: an empirical study. Empirical Software Engineering, 19(1), 1–38. https://doi.org/10.1007/s10664-012-9214-z.

    Article  Google Scholar 

  • Conway, M. E. (1968). How do committees invent. Datamation, 14, 28–31.

    Google Scholar 

  • Powers, D. M. (2011). Evaluation: from precision, recall and F-measure to ROC, informedness, markedness and correlation. Journal of Machine Learning Technologies, 2, 37–63.

    Google Scholar 

  • Dias M, Bacchelli A, Gousios G, et al (2015) Untangling fine-grained code changes. In: 2015 IEEE 22nd international conference on software analysis, evolution, and reengineering, SANER 2015 - proceedings. pp 341–350.

  • Dit B., Wagner M., Wen S., et al (2014) ImpactMiner: a tool for change impact analysis. In: 36th international conference on software engineering, ICSE companion 2014 - proceedings. pp 540–543.

  • Gall, H., Hajek, K., & Jazayeri, M. (1998). Detection of logical coupling based on product release history. In Proceedings Int Conf Softw Maint (cat no 98CB36272). https://doi.org/10.1109/ICSM.1998.738508.

    Chapter  Google Scholar 

  • Gethers M, Dit B, Kagdi H, Poshyvanyk D (2012) Integrated impact analysis for managing software changes. In: Proceedings - International Conference on Software Engineering pp 430–440.

  • Gethers, M., & Poshyvanyk, D. (2010). Using relational topic models to capture coupling among classes in object-oriented software systems. IEEE International Conference on Software Maintenance, ICSM.

  • Hassan, A. E. (2009). Predicting faults using the complexity of code changes. Proceedings - International Conference on Software Engineering., 78–88.

  • Hassan, A. E., & Holt, R. C. (2004). Predicting change propagation in software systems. IEEE International Conference on Software Maintenance, ICSM., 284–293.

  • Herzig, K., & Zeller, A. (2013). The impact of tangled code changes. IEEE International Working Conference on Mining Software Repositories., 121–130.

  • Kagdi, H., Gethers, M., & Poshyvanyk, D. (2013). Integrating conceptual and logical couplings for change impact analysis in software. Empirical Software Engineering, 18(5), 933–969. https://doi.org/10.1007/s10664-012-9233-9.

    Article  Google Scholar 

  • Kuhn, M. (2008). Building predictive models in R using the caret package. Journal of Statistical Software, 28, 1–26.

    Article  Google Scholar 

  • Lessmann, S., Baesens, B., Mues, C., & Pietsch, S. (2008). Benchmarking classification models for software defect prediction: a proposed framework and novel findings. IEEE Transactions on Software Engineering, 34(4), 485–496. https://doi.org/10.1109/TSE.2008.35.

    Article  Google Scholar 

  • Macho, C., McIntosh, S., & Pinzger, M. (2016). Predicting build co-changes with source code change and commit categories. Proc. of the International Conference on Software Analysis, Evolution, and Reengineering (SANER)., 541–551.

  • McIntosh, S., Adams, B., Nagappan, M., & Hassan, A. E. (2014). Mining co-change information to understand when build changes are necessary. Proc. of the 30th Int’l Conf. on Software Maintenance and Evolution (ICSME)., 241–250.

  • Moonen L, Di Alesio S, Binkley D, Rolfsnes T (2016) Practical guidelines for change recommendation using association rule mining. In: International Conference on Automated Software Engineering (ASE). p 11.

  • Oliva GA, Gerosa MA (2015a) Experience report: how do structural dependencies influence change propagation? An empirical study. In: Proceedings of the 26th IEEE International Symposium on Software Reliability Engineering.

  • Oliva, G. A., & Gerosa, M. A. (2015b). Change coupling between software artifacts: learning from past changes. In C. Bird, T. Menzies, & T. Zimmermann (Eds.), The art and science of analyzing software data (pp. 285–324). Morgan Kaufmann.

  • Oliva, G. A., Steinmacher, I., Wiese, I., & Gerosa, M. A. (2013). What can commit metadata tell us about design degradation? In Proceedings of the 2013 international workshop on principles of software evolution - IWPSE 2013 (p. 18). ACM Press.

  • Orso, A., Apiwattanapong, T., Law, J., et al. (2004). An empirical comparison of dynamic impact analysis algorithms. Proceedings 26th Int Conf Softw Eng. https://doi.org/10.1109/ICSE.2004.1317471.

  • Revelle, M., Gethers, M., & Poshyvanyk, D. (2011). Using structural and textual information to capture feature coupling in object-oriented software. Empirical Software Engineering, 16(6), 773–811. https://doi.org/10.1007/s10664-011-9159-7.

    Article  Google Scholar 

  • Rolfsnes, T., Di, A. S., Behjati, R., et al. (2016). Generalizing the analysis of evolutionary coupling for software change impact analysis. 23rd IEEE Int Conf Softw Anal Evol Reengineering, 12. https://doi.org/10.1109/SANER.2016.101.

  • Steinmacher I, Treude C, Conte T, Gerosa MA (2016) Overcoming open source project entry barriers with a portal for newcomers". In: 38th International Conference on Software Engineering. pp 1–12.

  • Sun, X., Li, B., Leung, H., Li, B., & Zhu, J. (2015). Static change impact analysis techniques: a comparative study. Journal of Systems and Software, 109, 137–149. https://doi.org/10.1016/j.jss.2015.07.047.

    Article  Google Scholar 

  • Wasserman, S., & Faust, K. (1994). Social network analysis: methods and applications (structural analysis in the social sciences). Cambridge: Cambridge University Press. https://doi.org/10.1017/CBO9780511815478.

    Book  MATH  Google Scholar 

  • Wiese IS, Côgo FR, Ré R, et al (2014a) Social metrics included in prediction models on software engineering: a mapping study. In: Wagner S, Penta M Di (eds) The 10th International Conference on Predictive Models in Software Engineering, {PROMISE} ‘14, Torino, Italy, September 17, 2014. ACM, pp 72–81.

  • Wiese, I. S., Kuroda, R. T., Junior, D. N. R., et al. (2014b). Using structural holes metrics from communication networks to predict change dependencies. In N. Baloian, F. Burstein, H. Ogata, et al. (Eds.), Collaboration and Technology - 20th International Conference, {CRIWG} 2014, Santiago, Chile, September 7–10, 2014. Proceedings. Springer (pp. 294–310).

    Google Scholar 

  • Wiese, I. S., Ré, R., Steinmacher, I., Kuroda, R. T., Oliva, G. A., Treude, C., & Gerosa, M. A. (2016). Using contextual information to predict co-changes. Journal of Systems and Software, 128, 220–235. https://doi.org/10.1016/j.jss.2016.07.016.

    Article  Google Scholar 

  • Wiese IS, Ré R, Steinmacher I, et al (2015) Predicting change propagation from repository information. In: Proceedings - 29th Brazilian symposium on software engineering, SBES 2015. pp 100–109.

  • Ying, A. T. T., Murphy, G. C., Ng, R., & Chu-Carroll, M. C. (2004). Predicting source code changes by mining change history. IEEE Transactions on Software Engineering, 30(9), 574–586. https://doi.org/10.1109/TSE.2004.52.

    Article  Google Scholar 

  • Zhou, Y., Wursch, M., Giger, E., et al. (2008). A Bayesian network based approach for change coupling prediction. Fifteenth Work Conf Reverse Eng Proc, 27–36\r348.

  • Zimmermann, T., Weißgerber, P., Diehl, S., & Zeller, A. (2005). Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 31(6), 429–445. https://doi.org/10.1109/TSE.2005.72.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Igor Scaliante Wiese.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wiese, I.S., Kuroda, R.T., Steinmacher, I. et al. Pieces of contextual information suitable for predicting co-changes? An empirical study. Software Qual J 27, 1481–1503 (2019). https://doi.org/10.1007/s11219-019-09456-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-019-09456-3

Keywords

Navigation