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.
Ссылки и действия
Дополнительные ресурсы: