eONPUIR

Analysis of existing approaches to automated refactoring of object-oriented software systems

Показать сокращенную информацию

dc.contributor.author Hodovychenko, Mykola A.
dc.contributor.author Годовиченко, Микола Анатолійович
dc.contributor.author Kurinko, Dmytro D.
dc.contributor.author Курінько, Дмитро Дмитрович
dc.date.accessioned 2025-07-05T21:42:41Z
dc.date.available 2025-07-05T21:42:41Z
dc.date.issued 2025-06-27
dc.identifier.issn 2663-0176
dc.identifier.issn 2663-7731
dc.identifier.uri http://dspace.opu.ua/jspui/handle/123456789/15477
dc.description.abstract 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. en
dc.description.abstract Автоматизований рефакторинг відіграє ключову роль у супроводі й еволюції об’єктно-орієнтованих програмних систем, де покращення внутрішньої структури коду є визначальним чинником підтримуваності, масштабованості та зменшення технічного боргу. У цій роботі представлено розширений огляд сучасних підходів до автоматизованого рефакторингу з акцентом на методологічні засади, рівень автоматизації, застосування штучного інтелекту та практичну інтеграцію в 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-циклах, а також перевірку інваріантів за допомогою тестів або формальних засобів.Стаття орієнтована на інженерів, дослідників і розробників інструментів, які працюють у галузі інтелектуального супроводу ПЗ та автоматизації процесів підтримки якості коду. Представлені класифікації, практичні сценарії та критерії вибору інструментів забезпечують прикладну цінність огляду для розробки власних рішень або впровадження існуючих технологій у проєкти з різними вимогами до стабільності, масштабування та рівня автоматизації. en
dc.language.iso en en
dc.publisher Odessа Polytechnic National University en
dc.subject Automated refactoring en
dc.subject object-oriented programming en
dc.subject deep learning en
dc.subject software maintenance en
dc.subject code smells en
dc.subject graph neural networks en
dc.subject software engineering en
dc.subject code transformation en
dc.subject source code analysis en
dc.subject semantic code modeling en
dc.subject software metrics en
dc.subject автоматизований рефакторинг en
dc.subject об’єктно-орієнтоване програмування en
dc.subject глибоке навчання en
dc.subject супровід програмного забезпечення en
dc.subject запахи коду en
dc.subject графові нейронні мережі en
dc.subject інженерія програмного забезпечення en
dc.subject трансформація коду en
dc.subject аналіз вихідного коду en
dc.subject семантичне моделювання коду en
dc.subject метрики якості програмного забезпечення en
dc.title Analysis of existing approaches to automated refactoring of object-oriented software systems en
dc.title.alternative Аналіз існуючих підходів до автоматизації рефакторингу об’єктно-орієнтованих програмних систем en
dc.type Article en
opu.citation.journal Herald of Advanced Information Technology en
opu.citation.volume 2 en
opu.citation.firstpage 179 en
opu.citation.lastpage 196 en
opu.citation.issue 8 en


Файлы, содержащиеся в элементе

Этот элемент содержится в следующих коллекциях

Показать сокращенную информацию