Browse > Article
http://dx.doi.org/10.5392/JKCA.2022.22.10.754

Analyzing Characteristics of Code Refactoring for Python Deep-Learning Applications  

Kim, Dong Kwan (목포해양대학교 컴퓨터공학과)
Publication Information
Abstract
Code refactoring refers to a maintenance task to change the code of a software system in order to consider new requirements, fix bugs, and restructure code. There have been various studies of refactoring subjects such as refactoring types, refactoring benefits, and CASE tools. However, Java applications rather than python ones have been benefited by refactoring-based coding practices. There are few cases of refactoring stuides on Python applications. This paper finds and analyzes single refactoring operations and composite refactoring operations for Python-based deep learning systems. In addition, we find that there is a statistically significant difference in the frequency of occurrence of single and complex refactoring operations in the two groups of deep learning applications and typical Python applications. Furthermore, we analyze keywords of commit messages to catch refactoring intentions of software developers.
Keywords
Refactoring; Deep Learning; Code Changes; Repository Mining; Python;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 H. Atwi, B. Lin, N. Tsantalis, Y. Kashiwa, Y. Kamei, N. Ubayashi, G. Bavota, and M. Lanza. "PyRef: refactoring detection in Python projects," In 2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM), IEEE, 2021.
2 Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts, 1999. Refactoring: Improving The Design Of Existing Code (1st ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
3 G. Lacerda, F. Petrillo, M. Pimenta, and Y. G. Gueheneuc, "Code smells and refactoring: A tertiary systematic review of challenges and observations," Journal of Systems and Software Vol.167, 2020.
4 C. Tavares, M. Bigonha, and E. Figueiredo. "Analyzing the impact of refactoring on bad smells," In Proceedings of the 34th Brazilian Symposium on Software Engineering, 2020.
5 R. Haas and B. Hummel, "Deriving extract method refactoring suggestions for long methods," In International Conference on Software Quality, Springer, Cham, 2016.
6 M. Shahidi, M. Ashtiani, and M. Zakeri-Nasrabadi, "An automated extract method refactoring approach to correct the long method code smell," J. of Systems and Software, Vol.187, 2022.
7 C. Silva, A. Santana, E. Figueiredo, and M. A. S. Bigonha, "Revisiting the Bad Smell and Refactoring Relationship: A Systematic Literature Review," In Proceedings of the XXIII Iberoamerican Conference on Software Engineering (CIbSE), 2020.
8 P. S. Sagar, E. A. AlOmar, M. W. Mkaouer, A. Ouni, and C. D. Newman, "Comparing commit messages and source code metrics for the prediction refactoring activities," Algorithms 14, No.10, 2021.
9 A. Brito, A. Hora, and M. T. Valente. "Refactoring graphs: Assessing refactoring over time," In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), IEEE, 2020.
10 A. Brito, A. Hora, and M. T. Valente, "Towards a Catalog of Composite Refactorings," arXiv:2201.04599, 2022
11 M. Aniche, E. Maziero, R. Durelli, and V. Durelli, "The effectiveness of supervised machine learning algorithms in predicting software refactoring," IEEE Transactions on Software Engineering, Vol.48, Issue 4, 2020.
12 D. Spadini, M. Aniche, and A. Bacchelli. "Pydriller: Python framework for mining software repositories," In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2018.
13 H. Jebnoun, H. B. Braiek, M. M. Rahman, and F. Khomh, "The scent of deep learning code: An empirical study," Proceedings of the 17th International Conference on Mining Software Repositories, 2020.
14 L. Sousa, D. Cedrim, A. Garcia, W. Oizumi, A. C. Bibiano, D. Oliveira, M. Kim, and A. Oliveira, "Characterizing and identifying composite refactorings: Concepts, heuristics and patterns," In 17th International Conference on Mining Software Repositories (MSR), 2020.
15 A. C. Bibiano, E. Fernandes, D. Oliveira, A. Garcia, M. Kalinowski, B. Fonseca, R. Oliveira, A. Oliveira, and D. Cedrim "A quantitative study on characteristics and effect of batch refactoring on code smells," In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), IEEE, 2019.
16 M. Dilhara, A. Ketkar, N. Sannidhi, and D. Dig, "Discovering repetitive code changes in Python ML systems," In International Conference on Software Engineering, ACM/IEEE., 2022.
17 Z. Chen, C. Lin, M. Wanwangying, Z. Xiaoyu, Z. Yuming, and X. Baowen, "Understanding metric-based detectable smells in Python software: A comparative study," Information and Software Technology, Vol.94, 2018.