What Strokes to Modify in the Painting? Code Changes Prediction for Object-Oriented Software

  • Dinan Zhang
  • Shizhan Chen
  • Qiang HeEmail author
  • Zhiyong Feng
  • Keman Huang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11293)


Software systems shall evolve to fulfill users’ increasingly various and sophisticated needs. As they become larger and more complex, the corresponding testing and maintenance have become a practical research challenge. In this paper, we employ an approach that can identify the change-proneness in the source code of new object-oriented software releases and predict the corresponding change sizes. We first define two metrics, namely Class Change Metric and Change Size Metric, to describe the features and sizes of code changes. A new software release may be based on several previous releases. Thus, we employ an Entropy Weight Method to calculate the best window size for determining the number of previous releases to use in the prediction of change-proneness in the new release. Based on a series of change evolution matrices, a code change prediction approach is proposed based on the Gauss Process Regression (GPR) algorithm. Experiments are conducted on 17 software systems collected from GitHub to evaluate our prediction approach. The results show that our approach outperforms three existing state-of-the-art approaches with significantly higher prediction accuracy.


Change histories Software evolution Object-oriented software Software metrics Change-prone source code 



This work is supported by the National Natural Science Foundation of China grants 61572350 and the National Key R&D Program of China grant NO.2017YF-B1401201.


  1. 1.
    Amoui, M., Salehie, M., Tahvildari, L.: Temporal software change prediction using neural networks. Int. J. Softw. Eng. Knowl. Eng. 19(07), 995–1014 (2009)CrossRefGoogle Scholar
  2. 2.
    Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Trans. Softw. Eng. 28(1), 4–17 (2002)CrossRefGoogle Scholar
  3. 3.
    Chidamber, S.R., Kemerer, C.F.: Towards a metrics suite for object oriented design, vol. 26. ACM (1991)Google Scholar
  4. 4.
    Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)CrossRefGoogle Scholar
  5. 5.
    D’Ambros, M., Lanza, M., Robbes, R.: On the relationship between change coupling and software defects. In: 16th Working Conference on Reverse Engineering, WCRE 2009, pp. 135–144. IEEE (2009)Google Scholar
  6. 6.
    Elish, M.O., Al-Rahman Al-Khiaty, M.: A suite of metrics for quantifying historical changes to predict future change-prone classes in object-oriented software. J. Softw. Evol. Process 25(5), 407–437 (2013)CrossRefGoogle Scholar
  7. 7.
    Eski, S., Buzluca, F.: An empirical study on object-oriented metrics and software evolution in order to reduce testing costs by predicting change-prone classes. In: 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 566–571. IEEE (2011)Google Scholar
  8. 8.
    Giger, E., Pinzger, M., Gall, H.C.: Can we predict types of code changes? An empirical analysis. In: 2012 9th IEEE Working Conference on Mining Software Repositories (MSR), pp. 217–226. IEEE (2012)Google Scholar
  9. 9.
    Girba, T., Ducasse, S., Lanza, M.: Yesterday’s weather: guiding early reverse engineering efforts by summarizing the evolution of changes. In: Proceedings of 20th IEEE International Conference on Software Maintenance, pp. 40–49. IEEE (2004)Google Scholar
  10. 10.
    Graves, T.L., Karr, A.F., Marron, J.S., Siy, H.: Predicting fault incidence using software change history. IEEE Trans. Softw. Eng. 26(7), 653–661 (2000)CrossRefGoogle Scholar
  11. 11.
    Henderson-Sellers, B.: Object-Oriented Metrics: Measures of Complexity. Prentice-Hall, Inc., Upper Saddle River (1995)Google Scholar
  12. 12.
    Koru, A.G., Liu, H.: Identifying and characterizing change-prone classes in two large-scale open-source products. J. Syst. Softw. 80(1), 63–73 (2007)CrossRefGoogle Scholar
  13. 13.
    Koru, A.G., Tian, J.: Comparing high-change modules and modules with the highest measurement values in two large-scale open-source products. IEEE Trans. Softw. Eng. 31(8), 625–642 (2005)CrossRefGoogle Scholar
  14. 14.
    Lu, H., Zhou, Y., Xu, B., Leung, H., Chen, L.: The ability of object-oriented metrics to predict change-proneness: a meta-analysis. Empir. Softw. Eng. 17(3), 200–242 (2012)CrossRefGoogle Scholar
  15. 15.
    Malhotra, R., Khanna, M.: Inter project validation for change proneness prediction using object-oriented metrics. Softw. Eng.: Int. J. 3(1), 21–31 (2013)Google Scholar
  16. 16.
    Malhotra, R., Khanna, M.: Investigation of relationship between object-oriented metrics and change proneness. Int. J. Mach. Learn. Cybern. 4(4), 273–286 (2013)CrossRefGoogle Scholar
  17. 17.
    Malhotra, R., Khanna, M.: An exploratory study for software change prediction in object-oriented systems using hybridized techniques. Autom. Softw. Eng. 24(3), 673–717 (2017)CrossRefGoogle Scholar
  18. 18.
    Malhotra, R., Khanna, M., Raje, R.R.: On the application of search-based techniques for software engineering predictive modeling: a systematic review and future directions. Swarm Evol. Comput. 32, 85–109 (2017)CrossRefGoogle Scholar
  19. 19.
    Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Upper Saddle River (2002)Google Scholar
  20. 20.
    Tsantalis, N., Chatzigeorgiou, A., Stephanides, G.: Predicting the probability of change in object-oriented systems. IEEE Trans. Softw. Eng. 31(7), 601–614 (2005)CrossRefGoogle Scholar
  21. 21.
    Zhou, B., Neamtiu, I., Gupta, R.: A cross-platform analysis of bugs and bug-fixing in open source projects: desktop vs. android vs. iOS. In: Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, p. 7. ACM (2015)Google Scholar
  22. 22.
    Zhou, Y., Leung, H., Xu, B.: Examining the potentially confounding effect of class size on the associations between object-oriented metrics and change-proneness. IEEE Trans. Softw. Eng. 35(5), 607–623 (2009)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  • Dinan Zhang
    • 1
    • 2
  • Shizhan Chen
    • 1
    • 2
  • Qiang He
    • 3
    Email author
  • Zhiyong Feng
    • 1
    • 4
  • Keman Huang
    • 5
  1. 1.Tianjin Key Laboratory of Cognitive Computing and ApplicationTianjinChina
  2. 2.School of Computer Science and TechnologyTianjin UniversityTianjinChina
  3. 3.School of Software and Electrical EngineeringSwinburne University of TechnologyHawthornAustralia
  4. 4.School of Computer SoftwareTianjin UniversityTianjinChina
  5. 5.Sloan School of ManagementMITCambridgeUSA

Personalised recommendations