Пожалуйста, используйте этот идентификатор, чтобы цитировать или ссылаться на этот ресурс:
http://dspace.opu.ua/jspui/handle/123456789/15477
Название: | Analysis of existing approaches to automated refactoring of object-oriented software systems |
Другие названия: | Аналіз існуючих підходів до автоматизації рефакторингу об’єктно-орієнтованих програмних систем |
Авторы: | Hodovychenko, Mykola A. Годовиченко, Микола Анатолійович Kurinko, Dmytro D. Курінько, Дмитро Дмитрович |
Ключевые слова: | Automated refactoring object-oriented programming deep learning software maintenance code smells graph neural networks software engineering code transformation source code analysis semantic code modeling software metrics автоматизований рефакторинг об’єктно-орієнтоване програмування глибоке навчання супровід програмного забезпечення запахи коду графові нейронні мережі інженерія програмного забезпечення трансформація коду аналіз вихідного коду семантичне моделювання коду метрики якості програмного забезпечення |
Дата публикации: | 27-Июн-2025 |
Издательство: | Odessа Polytechnic National University |
Краткий осмотр (реферат): | Automated refactoring plays a crucial role in the maintenance and evolution of object-oriented software systems, where improving internal code structure directly impacts maintainability, scalability, and technical debt reduction. This paper presents an extended review of current approaches to automated refactoring, emphasizing methodological foundations, automation levels, the application of artificial intelligence, and practical integration into CI/CD workflows. We examine rule-based, graph-based, machine learning–based (CNNs, GNNs, LLMs), and history-aware (MSR) techniques, along with hybrid systems incorporating human-in-the-loop feedback.The taxonomy of refactoring types is aligned with established terminology–particularly Fowler’s classification–distinguishing structural, semantic (architectural), and behavioral transformations, all grounded in the principle of behavior preservation. Formal models are introduced to describe refactorings as graph transformations governed by preconditions and postconditions that ensure semantic equivalence between program versions.The paper provides a concrete example of a transformation generated by the DeepSmells tool, demonstrating the «before/after»change and explaining the rationale behind the AI-driven recommendation. The study also addresses the challenges of explainability and semantic drift, proposing mitigation strategies such as SHAP-based analysis, attention visualization in transformer architectures, integration with formal verification tools (e.g., SMT solvers, symbolic execution), and explainable AI recommendations.Special attention is given to the limitations of automated refactoring in dynamically typed languages (e.g., Python, JavaScript), where the lack of statictype information reduces the effectiveness of traditional techniques. Generalization to multilingual systems is supported through models like CodeBERT, CodeT5, and PLBART, which operate over token-level, syntactic, and graph-based representations to enable language-agnostic refactoring.The paper also discusses real-world integration of automated refactoring into CI/CD environments, including the use of bots, refactoring-aware quality gates, and scheduled transformations applied at commit or merge time. Practical examples illustrate the verification of behavior preservation through regression testing or formal methods.This work targets software engineers, researchers, and tool developers engaged in intelligent software maintenance and automated quality assurance. By offering a consolidated classification, tool selection criteria, and practical scenarios, the paper delivers applied value for designingcustom refactoring solutions or adopting existing technologies across diverse project constraints–ranging from safety-critical systems to large-scale continuous delivery pipelines. Автоматизований рефакторинг відіграє ключову роль у супроводі й еволюції об’єктно-орієнтованих програмних систем, де покращення внутрішньої структури коду є визначальним чинником підтримуваності, масштабованості та зменшення технічного боргу. У цій роботі представлено розширений огляд сучасних підходів до автоматизованого рефакторингу з акцентом на методологічні засади, рівень автоматизації, застосування штучного інтелекту та практичну інтеграцію в CI/CD-процеси. Розглянуто традиційні rule-basedта graph-basedметоди, моделі глибокого навчання (CNN, GNN, LLM), історично обґрунтовані техніки (MSR), а також гібридні підходи із залученням людського контролю (human-in-the-loop).Особливу увагу приділено класифікації трансформацій згідно з авторитетною термінологією (Fowler): структурним, архітектурним (semantic) та поведінковим перетворенням з фокусом на збереження інваріантів поведінки. Окремо розглянуто формалізовані моделі рефакторингу як графові перетворення з чітко визначеними передумовами та постумовами, щодозволяє гарантувати семантичну еквівалентність між версіями програми.У роботі представлено приклад реального застосування інструмента DeepSmells, що демонструє змістовну трансформацію «до/після» та коментує обґрунтованість запропонованих змін. Досліджено виклики explainabilityта semanticdrift, а також запропоновано способи їх усунення через SHAP-аналіз, attention-візуалізацію в трансформерах, інтеграцію з формальними верифікаторами (SMT, symbolicexecution) та пояснювані AI-рекомендації.Окремий акцентзроблено на обмеженнях у динамічно типізованих мовах (Python, JavaScript), де типова статична перевірка втрачає ефективність. Узагальнення на мультимовні проєкти підтримується завдяки застосуванню моделей CodeBERT, CodeT5, PLBART, які працюють із графами,токенами та кросмовними узагальненнями.Показано практичну інтеграцію автоматизованого рефакторингу у CI/CD-середовище –через боти, refactoring-awarequalitygates, періодичне застосування трансформацій у pre-commit/merge-циклах, а також перевірку інваріантів за допомогою тестів або формальних засобів.Стаття орієнтована на інженерів, дослідників і розробників інструментів, які працюють у галузі інтелектуального супроводу ПЗ та автоматизації процесів підтримки якості коду. Представлені класифікації, практичні сценарії та критерії вибору інструментів забезпечують прикладну цінність огляду для розробки власних рішень або впровадження існуючих технологій у проєкти з різними вимогами до стабільності, масштабування та рівня автоматизації. |
URI (Унифицированный идентификатор ресурса): | http://dspace.opu.ua/jspui/handle/123456789/15477 |
ISSN: | 2663-0176 2663-7731 |
Располагается в коллекциях: | 2025, Vol. 8, № 2 |
Файлы этого ресурса:
Файл | Описание | Размер | Формат | |
---|---|---|---|---|
3_Hodovychenko.pdf | 780.18 kB | Adobe PDF | Просмотреть/Открыть |
Все ресурсы в архиве электронных ресурсов защищены авторским правом, все права сохранены.