Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Amoui, M., Salehie, M., Tahvildari, L.: Temporal software change prediction using neural networks. Int. J. Softw. Eng. Knowl. Eng. 19(07), 995–1014 (2009)
Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Trans. Softw. Eng. 28(1), 4–17 (2002)
Chidamber, S.R., Kemerer, C.F.: Towards a metrics suite for object oriented design, vol. 26. ACM (1991)
Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)
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)
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)
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)
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)
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)
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)
Henderson-Sellers, B.: Object-Oriented Metrics: Measures of Complexity. Prentice-Hall, Inc., Upper Saddle River (1995)
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)
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)
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)
Malhotra, R., Khanna, M.: Inter project validation for change proneness prediction using object-oriented metrics. Softw. Eng.: Int. J. 3(1), 21–31 (2013)
Malhotra, R., Khanna, M.: Investigation of relationship between object-oriented metrics and change proneness. Int. J. Mach. Learn. Cybern. 4(4), 273–286 (2013)
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)
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)
Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Upper Saddle River (2002)
Tsantalis, N., Chatzigeorgiou, A., Stephanides, G.: Predicting the probability of change in object-oriented systems. IEEE Trans. Softw. Eng. 31(7), 601–614 (2005)
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)
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)
Acknowledgment
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Zhang, D., Chen, S., He, Q., Feng, Z., Huang, K. (2018). What Strokes to Modify in the Painting? Code Changes Prediction for Object-Oriented Software. In: Bu, L., Xiong, Y. (eds) Software Analysis, Testing, and Evolution. SATE 2018. Lecture Notes in Computer Science(), vol 11293. Springer, Cham. https://doi.org/10.1007/978-3-030-04272-1_7
Download citation
DOI: https://doi.org/10.1007/978-3-030-04272-1_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-04271-4
Online ISBN: 978-3-030-04272-1
eBook Packages: Computer ScienceComputer Science (R0)