Труды КНЦ. Технические науки. – 2026. - № 1
Автомати зация докум ентирования унаследованны х систем Проблема документирования унаследованного кода является одной из наиболее актуальных в инженерии программного обеспечения. Сопровождение таких систем часто затруднено из-за устаревших, неполных или отсутствующих описаний, что ведет к увеличению временных затрат и риску внесения ошибок [Aghajani et al., 2019]. Автоматизация процесса создания документации рассматривается как ключевое направление для снижения этих издержек. Традиционно для извлечения структуры исходного кода и генерирования документации используются инструменты статического анализа. Например, для экосистемы Delphi и Object Pascal одним из немногих специализированных решений является PasDoc. Этот инструмент анализирует исходные файлы, комментарии в специальном формате и создает документацию в различных форматах (HTML, LaTeX, SimpleXML) [PasDoc: Documentation...]. PasDoc служит основой для многих проектов по документированию, однако его возможности ограничены присутствующими в коде комментариями, и он не предназначен для семантического анализа или генерирования описаний на естественном языке. Среди альтернативных систем, используемых в других экосистемах, можно выделить Doxygen (для C++, Java и других языков), Javadoc (для Java) и Sphinx (для Python), которые также используют комментарии, встроенные в код [van Deursen, van V liet, 2000]. В последние годы появились исследования и инструменты, которые интегрируют ИИ-компоненты в процесс документирования. Например, проект "CodeT5" [Wang et al., 2021] и "Codex" [Chen et al., 2021] демонстрируют возможности языковых моделей для генерирования комментариев к коду, но они фокусируются на уровне отдельных функций, а не на создании комплексной проектной документации. Коммерческие решения вроде Swimm [Swimm] предлагают синхронизацию документации с кодом, но требуют ручной настройки и интеграции в рабочий процесс разработки. Инструменты типа M intlify [Mintlify] используют ИИ для автоматического создания README-файлов, однако они ограничиваются описанием репозитория в целом, не предоставляя детализированной документации по отдельным модулям и классам. Существуют также научные работы по автоматическому документированию. Исследование [Wang et al., 2022] предлагает подход к генерированию документации с использованием нейросетей, но он требует предварительного обучения на специфичных датасетах и не обеспечивает интеграции с системами контроля версий. Работа [Chen et al., 2020] исследует автоматическое извлечение знаний из кода, но не фокусируется на создании связанной вики-документации. В отличие от этих решений, предложенное в данной работе решение предлагает комплексный подход, который сочетает статический анализ, интеллектуальное обогащение в виде генерирования аннотаций на основе локальных языковых моделей, автоматическое связывание сущностей и публикацию в вики-системах коллективной разработки. Для организации коллективной работы над документацией широкое распространение получили вики-системы, интегрированные с платформами контроля версий. Например, Gitea — самостоятельная, легковесная платформа для хостинга Git-репозиториев, которая включает встроенный механизм вики, основанный на Git [Gitea]. Это позволяет хранить документацию в виде Markdown-файлов в отдельном репозитории, обеспечивая историю изменений, ветвление и возможность совместного редактирования. Идея интеграции автоматически генерируемой технической документации с подобными вики-системами не нова, однако существующие подходы , как правило, предполагают односторонний экспорт сгенерированных статических страниц, а не создание живой, связанной базы знаний [Ayer et al., 2016]. Параллельно развивается концепция персональных баз знаний (Personal Knowledge Management, PKM). Инструменты вроде Obsidian используют локальные хранилища Markdown-файлов с двунаправленными ссылками, что позволяет создавать сложные семантические сети из заметок [Obsidian]. Этот подход, доказавший свою эффективность для организации личных знаний, может быть адаптирован и для структурирования технической документации, где связи между модулями, классами и функциями имеют первостепенное значение. В последние годы для решения проблемы недостаточной документации активно исследуется применение технологий искусственного интеллекта, в частности больших языковых моделей (Large Language Models, LLM). Исследования показывают, что LLM способны анализировать синтаксис и в определенной степени семантику исходного кода, генерируя релевантные текстовые описания Труды Кольского научного центра РАН. Серия: Технические науки. 2026. Т. 17, № 1. С. 115-128. Transactions of the Kola Science Centre of RAS. Series: Engineering Sciences. 2026. Vol. 17, No. 1. P. 115-128. © Федоров А. М., Датьев И. О., Илясов М. О., Вишняков И. Г., 2026 1 1 7
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz