Огляд шляхів автоматизації рефакторингу кодових клонів
DOI: 10.31673/2412-9070.2024.050575
Анотація
Сучасний розвиток технологій у сфері програмної інженерії вимагає постійних зусиль з оптимізації та покращення якості коду. Однією з нагальних проблем є наявність кодових клонів, які можуть призводити до помилок та ускладнення подальшого обслуговування програмних систем. Автоматизація рефакторингу кодових клонів представляє значний інтерес для дослідників і практиків у цій області.
Основні задачі дослідження охоплюють декілька ключових аспектів. Перш за все, дослідження зосереджується на глибокому аналізі наявних методів і технік, які вже використовуються для автоматизації рефакторингу клонів. Це включає вивчення ефективності існуючих підходів та виявлення їхніх обмежень. Важливою частиною є аналіз алгоритмів, які можуть покращити точність виявлення клонів та ефективність їхнього рефакторингу. Крім того, дослідження аналізує вплив автоматизації на якість і обслуговуваність програмних систем, що допомагає визначити, як такі технології можуть бути інтегровані у реальні проєкти розробки програмного забезпечення.
Дослідження покликане виявити обмеження поточних підходів та запропонувати шляхи їх оптимізації, враховуючи сучасні технологічні можливості та потреби ринку програмного забезпечення. Дослідження включає критичний огляд літератури, вивчення звітів про застосування інструментів на практиці та аналіз результатів використання автоматизованих систем у реальних проєктах. Це дає можливість оцінити ефективність різних алгоритмів і методик виявлення та рефакторингу кодових клонів, а також їхній вплив на якість кінцевого продукту та ефективність розробки. Висновки, запропоновані в рамках дослідження, включатимуть рекомендації щодо усунення виявлених прогалин у поточних методиках, пропозицію нового підходу до автоматизації рефакторингу клонів, що зможе забезпечити більшу адаптивність та ефективність.
Ключові слова: кодові клони, автоматизація рефакторингу, машинне навчання, статичний аналіз, оптимізація коду, якість програмного коду.
Список використаної літератури
1. Darshan Radadiya, Roopini Jayakumar, Saranya Haridass, “A Systematic Analysis of Code Clone Refactoring Techniques: A Comparative Review” DOI:10.13140/RG.2.2.33628.87685, March 2023.
2. M. Mondal, C. K. Roy, and K. A. Schneider, "Automatic Identification of Important Clones for Refactoring and Tracking," in 2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation.
3. Z. Chen, M. Mohanavilasam, Y.-W. Kwon, and M. Song, "Tool Support for Managing Clone Refactorings to Facilitate Code Review in Evolving Software," in 2017 IEEE 41st Annual Computer Software and Applications Conference.
4. Y. Lin, Z. Xing, X. Peng, Y. Liu, J. Sun, W. Zhao, and J. Dong, "Clonepedia: Summarizing Code Clones by Common Syntactic Context for Software Maintenance," in 2014 IEEE International Conference on Software Maintenance and Evolution.
5. T. Hatano and A. Matsuo, "Removing Code Clones from Industrial Systems Using Compiler Directives," in 2017 IEEE 25th International Conference on Program Comprehension (ICPC).
6. Jiang, J., Liu, H., Wu, Z., & Zhang, H. (2017). Scalable and accurate large-scale code clone detection using deep learning. IEEE Transactions on Parallel and Distributed Systems.
7. Li, H., Zhang, W., & Liu, H. (2018). JAnalyzer: A tool for detecting and visualizing code clones in Java programs. Journal of Systems and Software.
8. Hannes Thaller, Rudolf Ramler, Josef Pichler and Alexander Egyed, “Exploring Code Clones in Programmable Logic Controller Software”, Institute for Software Systems Engineering, Johannes Kepler University Linz, Austria, arXiv:1706.03934v1 [cs.SE] 13 Jun 2017.
9. Umberto Azadi, “Automation of duplicate code detection and refactoring”, Università degli Studi di Milano-Bicocca, April 2020.
10. Jaweria Kanwal, Onaiza Maqbool, Hamid Abdul Basit, Muddassar Azam Sindhu, Katsuro Inoue, “Historical perspective of code clone refactorings in evolving software”, Jacopo Soldani, University of Pisa, ITALY, December 1, 2022.