Пожалуйста, используйте этот идентификатор, чтобы цитировать или ссылаться на этот ресурс: http://dspace.opu.ua/jspui/handle/123456789/15477
Полная запись метаданных
Поле DCЗначениеЯзык
dc.contributor.authorHodovychenko, Mykola A.-
dc.contributor.authorГодовиченко, Микола Анатолійович-
dc.contributor.authorKurinko, Dmytro D.-
dc.contributor.authorКурінько, Дмитро Дмитрович-
dc.date.accessioned2025-07-05T21:42:41Z-
dc.date.available2025-07-05T21:42:41Z-
dc.date.issued2025-06-27-
dc.identifier.issn2663-0176-
dc.identifier.issn2663-7731-
dc.identifier.urihttp://dspace.opu.ua/jspui/handle/123456789/15477-
dc.description.abstractAutomated 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.isoenen
dc.publisherOdessа Polytechnic National Universityen
dc.subjectAutomated refactoringen
dc.subjectobject-oriented programmingen
dc.subjectdeep learningen
dc.subjectsoftware maintenanceen
dc.subjectcode smellsen
dc.subjectgraph neural networksen
dc.subjectsoftware engineeringen
dc.subjectcode transformationen
dc.subjectsource code analysisen
dc.subjectsemantic code modelingen
dc.subjectsoftware metricsen
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.titleAnalysis of existing approaches to automated refactoring of object-oriented software systemsen
dc.title.alternativeАналіз існуючих підходів до автоматизації рефакторингу об’єктно-орієнтованих програмних системen
dc.typeArticleen
opu.citation.journalHerald of Advanced Information Technologyen
opu.citation.volume2en
opu.citation.firstpage179en
opu.citation.lastpage196en
opu.citation.issue8en
Располагается в коллекциях:2025, Vol. 8, № 2

Файлы этого ресурса:
Файл Описание РазмерФормат 
3_Hodovychenko.pdf780.18 kBAdobe PDFПросмотреть/Открыть


Все ресурсы в архиве электронных ресурсов защищены авторским правом, все права сохранены.