Труды КНЦ. Технические науки. – 2026. - № 1
функций, классов и их взаимодействий [Husain et al., 2019; Obsidian]. Применение искусственного интеллекта для дополнения существующей документации или ее создания «с нуля» рассматривается как прорывное направление, способное кардинально снизить трудозатраты [Li et al., 2019]. Ключевой задачей при этом становится интеграция подобного интеллектуального компонента в автоматизированные конвейеры сборки и развертывания. Таким образом, несмотря на наличие отдельных инструментов для автодокументации (PasDoc), систем для совместной работы над документацией (Gitea W iki) и перспективных исследований по применению ИИ, отсутствует целостное решение, которое интегрирует эти компоненты в единый, полностью автоматизированный конвейер, предназначенный специально для документирования унаследованных систем, обеспечивая не только извлечение структуры, но и интеллектуальное обогащение контента с последующей публикацией в формате связанной, поддерживаемой сообществом базы знаний. Разработке основных компонентов такого конвейера посвящена данная работа. А рхитектура системы автоматизированного докум ентирования Предлагаемое решение представляет собой последовательный конвейер, реализованный в виде bash-скрипта (ai-descr.sh ). Архитектура системы (рис. 1) построена по модульному принципу и включает этапы: подготовки данных, статического анализа, интеллектуального обогащения, генерирования документации и публикации. Конвейер разработан для идемпотентной обработки большого количества файлов с минимальным потреблением ресурсов за счет последовательного, а не параллельного выполнения. 1. П одготовка окруж ения и и звлечение исходного кода Первоначальный этап обеспечивает изоляцию и актуальность обрабатываемых данных. Система создает уникальную временную рабочую директорию с меткой времени (TMP_GIT_DIR) для предотвращения конфликтов между запусками. Затем выполняются операции, соответствующие функциям check_dependencies и get_file_list: # Создание уникальной временной директории NOW=$(date +%FT%H=%M) TMP_GIT_DIR=~/prog/tmp/pasdoc_git_tmp_${NOW} # Проверка зависимостей check_dependencies() { if ! command -v xmlstarlet >/dev/null 2>&1; then echo "Ошибка: xmlstarlet не установлен!"; exit 1 fi # ... проверка других инструментов } # Получение списка файлов get_file_list() { git clone "$repo_url" "$REPO_DIR" 2>/dev/null | | cd "$REPO_DIR" &&git pull git ls-tree -r --name-only HEAD | \ grep -E '\.(pas|pp)$' | grep -E"A($dirs_pattern)/" | sort } Листинг 1. Подготовка окружения и парсинг исходного кода — Проверяется наличие обязательных инструментов: xmlstarlet, git, а также опциональных curl, jq, base64 для работы с ИИ-компонентом. — Происходит клонирование или обновление основного репозитория с исходным кодом ($GITEA_PRJ) и целевого вики-репозитория ($GITEA_WIKI). Это гарантирует работу с последней версией кода и документации. Труды Кольского научного центра РАН. Серия: Технические науки. 2026. Т. 17, № 1. С. 115-128. Transactions of the Kola Science Centre of r A s . Series: Engineering Sciences. 2026. Vol. 17, No. 1. P. 115-128. © Федоров А. М., Датьев И. О., Илясов М. О., Вишняков И. Г., 2026 1 1 8
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz