Язык программирования COBOL уже давно используется в финансовой, бизнес- и государственной сферах для разработки критически важных бизнес-приложений. Несмотря на его надежность и широкое распространение, сопровождение соответствующих кодовых баз с каждым годом становится все более сложным. Проблема состоит в нескольких аспектах: старение технологий, сокращение числа квалифицированных разработчиков, а также недостаточная документация на многие проекты. Ситуация усугубляется особенностями языковой архитектуры и синтаксиса COBOL, что существенно затрудняет автоматическое понимание и анализ кода современными инструментами. Одним из ключевых вызовов является необходимость создания подробных и понятных объяснений кода, чтобы новые разработчики могли быстро ориентироваться и эффективно работать с существующими системами.
Традиционные методы документирования и анализа кода часто оказываются непригодными для COBOL из-за особенностей структуры и объема программ. Современные исследования в области искусственного интеллекта и обработки естественного языка открывают новые перспективы. В частности, большие языковые модели (Large Language Models, LLMs) проявляют высокий потенциал в генерации пояснений и описаний кода. Однако работа с COBOL представляет уникальные сложности. Во-первых, многие COBOL-программы имеют чрезвычайно длинные функции и файлы, превышающие лимиты на количество токенов, которые LLMs могут обработать за один запрос.
Во-вторых, специфический синтаксис и архитектурные особенности кода требуют кастомизированного подхода к формированию запросов и анализу контекста. Чтобы преодолеть эти ограничения, была предложена многоагентная система, в рамках которой несколько LLM-агентов работают коллективно, обмениваясь информацией и совместно формируя связанные и полные объяснения на разных уровнях — от отдельных функций до всего проекта в целом. Каждый агент отвечает за выполнение конкретных задач и обрабатывает определённый объем кода, что позволяет обойти ограничение по количеству токенов и улучшить качество обратной связи. Такой подход позволяет сохранить контекст, обеспечивая совместное использование информации из различных частей кода и, как следствие, более глубокое понимание программных элементов. Практическая оценка эффективности этого метода была проведена на основе 14 реальных открытых проектов на COBOL.
Результаты показали значительный рост качества объяснений в сравнении с традиционными подходами. В частности, заметное повышение продемонстрировали показатели, отражающие полноту и точность генерации текстовых описаний, такие как METEOR, chrF и SentenceBERT. На уровне отдельных функций методика улучшила производительность в среднем на двенадцать процентов по METEOR, почти девятнадцать по chrF и более полпроцента по SentenceBERT, что указывает на более релевантные и насыщенные объяснения. При переходе на уровень целых файлов новая система успешно справляется с задачей объяснения как небольших, так и очень объемных COBOL-файлов, которые традиционно превышают допустимый лимит LLM. Это представляет чрезвычайную ценность для индустрии, где часто приходится работать с унаследованными огромными кодовыми базами.
Кроме качества объяснений на уровне файлов, заметно улучшилась ясность и понятность описаний, что особенно важно для поддержки и обучения новых специалистов. Более того, на уровне проектов удалось сгенерировать содержательные объяснения, отражающие как функциональные возможности, так и смысловую нагрузку 82% из выбранных проектов. Такой результат свидетельствует о высокой применимости многоагентного подхода в реальных условиях работы с COBOL. Внедрение описанных методов приносит явные преимущества в процесс сопровождения и модернизации старых бизнес-приложений. Создаются условия для снижения временных затрат на разбор кода, уменьшается риск ошибок при внесении изменений, а также повышается обучаемость новых команд разработчиков.
Эти направления имеют стратегическое значение в условиях постоянного роста важности информационных систем и необходимости их надежной поддержки. Технологический прогресс в области искусственного интеллекта и обработки естественного языка позволяет значительно продвинуться в автоматизации задач, традиционно считавшихся трудоемкими и требовавшими значительных трудозатрат со стороны специалистов. Многоагентные системы, использующие возможности LLMs, становятся интеллектуальными ассистентами программистов и инженеров, оснащая их инструментами для качественного понимания и документирования кода. В результате повышается скорость разработки, облегчается внедрение изменений, а также уменьшается зависимость от узкоспециализированных экспертов по устаревшим языкам. Перспективы дальнейших исследований и внедрений в этом направлении выглядят весьма многообещающими.