424
Views
0
CrossRef citations to date
0
Altmetric
Review

Deep Learning-Based Code Refactoring: A Review of Current Knowledge

, , &

References

  • Alizadeh V, Kessentini M, Mkaouer MW, Cinneide M, Ouni A, Cai Y. An interactive and dynamic search-based approach to software refactoring recommendations. IEEE Trans Softw Eng. 2020;46(9):932–61. doi:10.1109/TSE.2018.2872711.
  • Fowler M. Refactoring: improving the design of existing code. Boston (Massachusetts): Addison-Wesley Professional; 2018.
  • Zabard E, Gonzalez-Huerta J, Šmite D. Refactoring, bug fixing, and new development effect on technical debt: an industrial case study. Proceedings of the 46th Euromicro Conference on Software Engineering and Advanced Applications; 2020; Kranj, Slovenia.
  • Golubev Y, Kurbatova Z, AlOmar EA, Bryksin T, Mkaouer MW. One thousand and one stories: a large-scale survey of software refactoring. Proceedings of the 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering; 2021; Athens, Greece. p. 1303–13.
  • Abid C, Alizadeh V, Kessentini M, Ferreira T, Dig D. 30 years of software refactoring research: a systematic literature review. 2020. https://arxiv.org/abs/20307.02194.
  • Lacerda G, Petrillo F, Piment M, Guéhéneuc Y. Code smells and refactoring: a tertiary systematic review of challenges and observations. J Syst Softw. 2020;167:110610. doi:10.1016/j.jss.2020.110610.
  • dos Reis JP, Abreu FBE, de Figueiredo Carneiro G, Anslow C. Code smells detection and visualization: a systematic literature review. Arch Comput Methods Eng. 2022;29(1):47–94. doi:10.1007/s11831-021-09566-x.
  • Rasool G, Arshad Z. A review of code smell mining techniques. J Software. 2015;27(11):867–95. doi:10.1002/smr.1737.
  • Hadj-Kacem M, Bouassida N. A hybrid approach to detect code smells using deep learning. Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering; 2018; Funchal, Madeira Portugal. p. 137–46.
  • Liu H, Jin J, Xu Z, Zou Y, Bu Y, Zhang L. Deep learning based code smell detection. IEEE Trans Softw Eng. 2019;47:1811–37.
  • Mariani T, Vergilio SR. A systematic review on search-based refactoring. Inf Software Technol. 2017;83:14–34. doi:10.1016/j.infsof.2016.11.009.
  • Goodfellow I, Bengio Y, Courville A. Deep learning. Cambridge (Massachusetts): MIT Press; 2016.
  • Kelleher JD. Deep learning. Cambridge (Massachusetts): MIT Press Essential Knowledge Series; 2019.
  • Bishop CM. Neural networks for pattern recognition. New York (NY): Oxford University Press; 1995.
  • Aggarwal CC. Neural networks and deep learning: a textbook. Cham (Switzerland): Springer; 2018.
  • Balas VE, Roy S, Sharma D, Samui P. Handbook of deep learning applications. Cham (Switzerland): Springer; 2019.
  • Scarselli F, Gori M, Tsoi AC, Hagenbuchner M, Monfardini G. The graph neural network model. IEEE Trans Neural Netw. 2009;20(1):61–80. doi:10.1109/TNN.2008.2005605.
  • Mikolov T, Karafiát M, Burget L, Cernocký J, Khudanpur S. Recurrent neural network based language model. Proceedings of the 11th Annual Conference of the International Speech Communication Association; 2010; Chiba, Japan. p. 1045–48.
  • Dey R, Salem FM. Gate-variants of Gated Recurrent Unit (GRU) neural networks. Proceedings of the 60th IEEE International Midwest Symposium on Circuits and Systems; 2017; Boston, MA.
  • Wang W, Li G, Ma B, Xia X, Jin Z. Detecting code clones with graph neural network and flow-augmented abstract syntax tree. Proceedings of IEEE 27th International Conference on Software Analysis, Evolution and Reengineering; 2020; London, Canada. p. 1–11.
  • Mens T, Tourwe T. A survey of software refactoring. IEEE Trans Softw Eng. 2004;30(2):126–39. doi:10.1109/TSE.2004.1265817.
  • Lewis J, Fowler M. Microservices. 2014. www.martinfowler.com/articles/microservices.html.
  • Thones J. Microservices. IEEE Softw. 2015;3(1):113–16. doi:10.1109/MS.2015.11.
  • Mazlami G, Cito J, Leitner P. Extraction of microservices from monolithic software architectures. Proceedings of IEEE International Conference on Web Services; 2017; Honolulu, Hawaii. p. 524–31.
  • Kitchenham B, Charters S. “Guidelines for performing systematic literature reviews in software engineering,” school of computer science and mathematics. Keele (UK): Keele University. EBSE-2007-01; 2007 July.
  • Wohlin C. Guidelines for snowballing in systematic literature studies and a replication in software engineering. Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering; 2014; London, UK. p. 1–10.
  • Ahmadi H, Ashtiani M, Azgomi MA, Saheb-Nassagh R. A DQN-based agent for automatic software refactoring. Inf Software Technol. 2022;147:106893. doi:10.1016/j.infsof.2022.106893.
  • Aniche M, Maziero E, Durelli R, Durelli V. The effectiveness of supervised machine learning algorithms in predicting software refactoring. IEEE Trans Softw Eng. 2022;48(4):1432–50. doi:10.1109/TSE.2020.3021736.
  • Szalontai B, Vadász A, Borsi ZR, Várkonyi TA, Pintér B, Gregorics T. Detecting and fixing nonidiomatic snippets in python source code with deep learning. Proceedings of SAI Intelligent Systems Conference; 2021; Virtual. p. 129–47.
  • Mathai A, Bandyopadhyay S, Desai U, Tamilselvam S. Monolith to microservices: representing application software through heterogeneous graph neural network. Proceedings of the 31st International Joint Conference on Artificial Intelligence; 2022; Vienna, Austria. p. 1–15.
  • Liang J, Zou W, Zhang J, Huang Z, Sun C. A deep method renaming prediction and refinement approach for java projects. Proceedings of the 21st IEEE International Conference on Software Quality, Reliability and Security; 2021; Hainan, China. p. 404–13.
  • Desai U, Bandyopadhyay S, Tamilselvam SG. Graph neural network to dilute outliers for refactoring monolith application. Proceedings of the 35th AAAI Conference on Artificial Intelligence; 2021; Virtual. p. 1–13.
  • Al-Debagy O, Martinek P. A microservice decomposition method through using distributed representation of source code. Scalable Comput. 2021;22(1):39–52. doi:10.12694/scpe.v22i1.1836.
  • Alenezi M, Akour M, Qasem OA. Harnessing deep learning algorithms to predict software refactoring. TELKOMNIKA Telecomm Comput Electron Control. 2020;18(6):2977–82. doi:10.12928/telkomnika.v18i6.16743.
  • Panigrahi R, Kumar L, Kuanar SK. An empirical study to investigate different SMOTE data sampling techniques for improving software refactoring prediction. Proceedings of International Conference on Neural Information Processing; 2020; Bangkok, Thailand. p. 23–31.
  • Nyamawe AS, Liu H, Niu N, Umer Q, Niu Z. Feature requests-based recommendation of software refactorings. Empir Softw Eng. 2020;25(5):4315–47. doi:10.1007/s10664-020-09871-2.
  • Tufano M, Pantiuchina J, Watson C, Bavota G, Poshyvanyk D. On learning meaningful code changes via neural machine translation. Proceedings of the 41st IEEE/ACM International Conference on Software Engineering; 2019; Montreal, Canada. p. 25–36.
  • Liu K, Kim D, Bissyandé TF, Kim T, Kim K, Koyuncu A, Kim S, Le Traon Y. Learning to spot and refactor inconsistent method names. Proceedings of the 41st IEEE/ACM International Conference on Software Engineering; 2019; Montreal, Canada. p. 1–12.
  • Xu S, Zhang S, Wang W, Cao X, Guo C, Xu J. Method name suggestion with hierarchical attention networks. Proceedings of ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation; 2019; Cascais, Portugal. p. 10–21.
  • Liu H, Xu Z, Zou Y. Deep learning based feature envy detection. Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering; 2018; Montpellier, France. p. 385–96.
  • Kessentini M, Wang H, Dea JT, Ouni A. Improving web services design quality using heuristic search and machine learning. Proceedings of the IEEE International Conference on Web Services; 2017; Honolulu, Hawaii. p. 540–47.
  • Allamanis M, Peng H, Sutton C. A convolutional attention network for extreme summarization of source code. Proceedings of the 33rd International Conference on Machine Learning; 2016; New York, NY. p. 2091–100.
  • Mohan M, Greer D, McMullan P. Technical debt reduction using search based automated refactoring. J Syst Softw. 2016;120:183–94. doi:10.1016/j.jss.2016.05.019.
  • Liu H, Liu Q, Liu Y, Wang Z. Identifying renaming opportunities by expanding conducted rename refactorings. IEEE Trans Softw Eng. 2015;41(9):887–900. doi:10.1109/TSE.2015.2427831.
  • Perozzi B, Al-Rfou R, Skiena S. Deepwalk: online learning of social representations. Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining; 2014; New York, NY. p. 701–10.
  • Grover A, Leskovec J. Node2vec: scalable feature learning for networks. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining; 2016; San Francisco, California. p. 855–64.
  • Bandyopadhyay S, Lokesh N, Murty MN. Outlier aware network embedding for attributed networks. Proceedings of the AAAI Conference on Artificial Intelligence; 2019; Hilo, HI. p. 12–19.
  • Kipf TN, Welling M. Variational graph autoencoders. 2016. https://arxiv.org/abs/1611.07308.
  • Velickovic P, Fedus W, Hamilton WL, Lio P, Bengio Y, Hjelm RD. Deep graph infomax. Proceedings of the 7th International Conference on Learning Representations; 2019; New Orleans, LA. p. 1–17.
  • Jin W, Liu T, Zheng Q, Cui D, Cai Y. Functionality-oriented microservice extraction based on execution trace clustering. Proceedings of the IEEE International Conference on Web Services; 2018; Seattle, USA. p. 211–18.
  • Saidani I, Ouni A, Mkaouer MW, Saied A. Towards automated microservices extraction using muti-objective evolutionary search. Proceedings of International Conference on Service-Oriented Computing; 2019; Toulouse, France. p. 58–63.
  • Niu N, Bhowmik T, Liu H, Niu Z. Traceability-enabled refactoring for managing just-in-time requirements. Proceedings of the 22nd IEEE International Requirements Engineering Conference; 2014; Karlskrona, Sweden. p. 133–42.
  • Suzuki T, Sakamoto K, Ishikawa F, Honiden S. An approach for evaluating and suggesting method names using n-gram models. Proceedings of the 22nd International Conference on Program Comprehension; 2014; Hyderabad, India. p. 271–74.
  • Moha N, Gueheneuc Y-G, Duchien L, Meur A-FL. DECOR: a method for the specification and detection of code and design smells. IEEE Trans Softw Eng. 2010;36(1):20–36. doi:10.1109/TSE.2009.50.
  • Palomba F, Panichella A, Lucia AD, Oliveto R, Zaidman A. A textual-based technique for smell detection. Proceedings of the 24th IEEE International Conference Program Comprehension; 2016; Austin, Texas. p. 1–10.
  • Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate. 2014. https://arxiv.org/abs/1409.0473.
  • Tsantalis N, Chatzigeorgiou A. Identification of move method refactoring opportunities. IEEE Trans Serv Comput. 2009;35(3):347–67. doi:10.1109/TSE.2009.1.
  • Terra R, Valente MT, Miranda S, Sales V. Jmove: a novel heuristic and tool to detect move method refactoring opportunities. J Syst Softw. 2018;138:19–36. doi:10.1016/j.jss.2017.11.073.
  • Ouni A, Salem Z, Inoue K, Soui M. SIM: an automated approach to improve web service interface modularization. Proceedings of the IEEE International Conference on Web Services; 2016; San Francisco, USA. p. 91–98.
  • Athanasopoulos D, Zarras AV, Miskos G, Issarny V, Vassiliadis P. Cohesion-driven decomposition of service interfaces without access to source code. IEEE Trans Serv Comput. 2015;8(4):1–18. doi:10.1109/TSC.2014.2310195.
  • Mikolov T, Chen K, Corrado G, Dean J. Efficient estimation of word representations in vector space. 2013. https://arxiv.org/abs/1301.3781.
  • Alon U, Zilberstein M, Levy O, Yahav E. Code2vec: learning distributed representations of code. Proc ACM Program Lang. Vol. 3. 2019;3:1–29 Article No: 40.
  • Devlin J, Chang MW, Lee K, Toutanova K. BERT: pretraining of deep bidirectional transformers for language understanding. Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics: Human LanguageTechnologies; 2019; Minneapolis, Minnesota. p. 4171–86
  • Kim Y. Convolutional neural networks for sentence classification. Proceedings of the Conference on Empirical Methods in NaturalLanguage Processing; 2014; Doha, Qatar. p. 1746–51.
  • Frey BJ, Dueck D. Clustering by passing messages between data points. Science. 2014;315(5814):972–76. doi:10.1126/science.1136800.
  • Wu Y, Schuster M, Chen Z, Le QV, Norouzi M, Macherey W, Krikun M, Cao Y, Gao Q, Macherey K, Klingner J. Google’s neural machine translation system: bridging the gap between human and machine translation. 2016. https://arxiv.org/abs/1609.08144.
  • Gerrit. OVirt Gerrit. [accessed 2022 Oct 27]. https://gerrit.ovirt.org/.
  • Dai AM, Olah C, Le QV. Document embedding with paragraph vectors. 2015. https://arxiv.org/abs/1507.07998.
  • Hua W, Sui Y, Wan Y, Liu G, Xu G. FCCA: hybrid code representation for functional clone detection using attention networks. IEEE Trans Reliab; 2020;70:1304–318.
  • Sheneamer A. CCDLC detection framework-combining clustering with deep learning classification for semantic clones. Proceedings of the 17th IEEE International Conference on Machine Learning and Applications; 2018; Orlando, Florida.
  • Narayanan A, Chandramohan M, Venkatesan R, Chen L, Liu Y, Jaiswal S. Graph2vec: learning distributed representations of graphs. 2017. http://arxiv.org/abs/1707.05005.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.