What Were You Thinking? An LLM-Driven Large-Scale Study of Refactoring Motivations in Open-Source Projects

2509.07763v1 cs.SE, cs.AI, cs.PL 2025-09-11
Авторы:

Mikel Robredo, Matteo Esposito, Fabio Palomba, Rafael Peñaloza, Valentina Lenarduzzi

Резюме на русском

## Контекст Refactoring — процесс улучшения кода без изменения его внешнего поведения — является важной практикой для повышения качества программного обеспечения. Однако его применение связано с высокими затратами времени и ресурсов. Одним из основных вопросов является понимание, почему разработчики проводят refactoring, и какие метрики могут быть эффективными для оценки этих мотиваций. Это понимание может помочь улучшить использование refactoring в практических задачах и сделать его более эффективным. ## Метод Для исследования мотиваций разработчиков во время refactoring был проведен широкомасштабный анализ данных версий управления кодом с использованием Large Language Models (LLMs). Эти модели использовались для определения основных причин refactoring, а результаты были сравнены с мотивациями, предлагаемыми в современной литературе. Также были использованы различные метрики, отражающие качество кода и его читаемость, для оценки их влияния на мотивации. ## Результаты LLMs показали высокую точность в 80% случаев, согласовываясь с мотивациями, известными из литературы в 47% случаев. Они также добавили детальные пояснения к 22% мотиваций, основываясь на сигнатах, версиях, комментариях и других данных из version control. Основные мотивации включали в себя упрощение кода, повышение читаемости и улучшение структуры. Однако метрики, отражающие качество кода и читаемость, показали слабую корреляцию с мотивациями разработчиков. ## Значимость Полученные результаты могут быть применены в различных областях, таких как анализ качества кода, автоматизированные инструменты для поддержки refactoring и системы мониторинга. Использование LLMs для понимания мотиваций может улучшить возможности для решения проблем принятия решений в коде. Более того, LLM-driven гибридные подходы, сочетающие статистические метрики и локализованные пояснения, могут помочь более систематично оптимизировать refactoring и выравнивать короткосрочные улучшения с длительными целями архитектуры. ## Выводы Результаты исследования показали, что LLM-based модели эффективно идентифицируют мотивации на уровне синтаксиса и семантики кода, но сталкиваются с трудностями при понимании архитектурных мотиваций. Будущие исследования будут сконцентрированы на улучшении моделей для повышения точности в архитектурных задачах и на интеграции LLMs с кодовыми метриками для создания более сильных инструментов для принятия рефакторинг-решений.

Abstract

Context. Code refactoring improves software quality without changing external behavior. Despite its advantages, its benefits are hindered by the considerable cost of time, resources, and continuous effort it demands. Aim. Understanding why developers refactor, and which metrics capture these motivations, may support wider and more effective use of refactoring in practice. Method. We performed a large-scale empirical study to analyze developers refactoring activity, leveraging Large Language Models (LLMs) to identify underlying motivations from version control data, comparing our findings with previous motivations reported in the literature. Results. LLMs matched human judgment in 80% of cases, but aligned with literature-based motivations in only 47%. They enriched 22% of motivations with more detailed rationale, often highlighting readability, clarity, and structural improvements. Most motivations were pragmatic, focused on simplification and maintainability. While metrics related to developer experience and code readability ranked highest, their correlation with motivation categories was weak. Conclusions. We conclude that LLMs effectively capture surface-level motivations but struggle with architectural reasoning. Their value lies in providing localized explanations, which, when combined with software metrics, can form hybrid approaches. Such integration offers a promising path toward prioritizing refactoring more systematically and balancing short-term improvements with long-term architectural goals.

Ссылки и действия