Reverse Engineering User Stories from Code using Large Language Models
2509.19587v1
cs.SE, cs.AI
2025-09-26
Авторы:
Mohamed Ouf, Haoyu Li, Michael Zhang, Mariam Guizani
Резюме на русском
## Контекст
Reverse engineering user stories из исходного кода является важной задачей в современном программном обеспечении, особенно в случае старых или гетерогенных систем. Такие системы часто отсутствуют документации, что приводит к чрезмерному времени и стоимости восстановления пользовательских историй для поддержки и развития систем. Несмотря на важность пользовательских историй в адаптивном прогрессе, их восстановление из исходного кода остается трудоемкой и человекозависимой задачей. Мы исследуем возможность использования бо LARGE LANGUAGE MODELS (LLMs) для автоматизации этого процесса, а также анализируем, как проектирование подсказок (prompt design) влияет на качество полученных результатов.
## Метод
Мы использовали 1,750 C++-сниппетов разной сложности, каждый из которых был помечен вручную. Для экспериментов использовались пять современных LLMs с различными размерами моделей (от 8B до 70B параметров). Мы провели исследования по сравнению различных стилей подсказок (prompting strategies), включая простой текст, воспроизведение задачи, иллюстративные примеры, и цепочку мыслей (Chain-of-Thought). Эксперименты были проведены с целью определить, какие модели и стили подсказок дают лучшие результаты в зависимости от сложности и размера кода.
## Результаты
Наши результаты показывают, что все модели LLMs демонстрируют приемлемую точность (F1-метрика ~0.8) при обработке кода не более 200 NLOC (номера логических строк кода). Мы также обнаружили, что даже самая маленькая модель (8B параметров) может достичь той же точности, что и более крупная модель (70B параметров), если использовать иллюстративный пример в подсказке. Тем не менее, мы не обнаружили существенных выигрышей от использования более сложных стилей подсказок, таких как Chain-of-Thought, хотя они могут давать небольшие улучшения для более крупных моделей.
## Значимость
Наше исследование показывает, что LLMs могут быть эффективными инструментами для автоматического восстановления пользовательских историй из исходного кода, особенно когда используются эффективные подсказки. Это может существенно сократить время и стоимость восстановления документации в ручном режиме. Наше исследование также открывает новые возможности для использования LLMs в автоматизации процессов системного анализа, тестирования и документационного обеспечения в программном обеспечении.
## Выводы
Мы сделали вывод, что LLMs могут автоматически восстанавливать пользовательские истории из исходного кода с приемлемой точностью. Мы также показали, что использование иллюстративных примеров в подсказках может значительно повысить качество результатов, даже для небольших моделей. На
Abstract
User stories are essential in agile development, yet often missing or
outdated in legacy and poorly documented systems. We investigate whether large
language models (LLMs) can automatically recover user stories directly from
source code and how prompt design impacts output quality. Using 1,750 annotated
C++ snippets of varying complexity, we evaluate five state-of-the-art LLMs
across six prompting strategies. Results show that all models achieve, on
average, an F1 score of 0.8 for code up to 200 NLOC. Our findings show that a
single illustrative example enables the smallest model (8B) to match the
performance of a much larger 70B model. In contrast, structured reasoning via
Chain-of-Thought offers only marginal gains, primarily for larger models.
Ссылки и действия
Дополнительные ресурсы: