Статья опубликована в рамках: CLXV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 07 сентября 2026 г.)
Наука: Информационные технологии
Скачать книгу(-и): Скачать книгу
дипломов
ПРИМЕНЕНИЕ БОЛЬШИХ ЯЗЫКОВЫХ МОДЕЛЕЙ ДЛЯ АВТОМАТИЗАЦИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Аннотация
В статье рассматривается применение больших языковых моделей для автоматизации разработки программного обеспечения. Проанализированы основные направления использования языковых моделей: генерация и дополнение программного кода, поиск ошибок, рефакторинг и создание тестов. Рассмотрены преимущества и ограничения применения таких технологий. Особое внимание уделено проблеме проверки корректности сгенерированного кода и необходимости участия разработчика в процессе принятия решений. На основании анализа современных российских исследований сформулированы рекомендации по использованию больших языковых моделей в программной инженерии.
Abstract
The article considers the use of large language models for software development automation. The main areas of application of language models are analyzed, including source code generation and completion, error detection, refactoring, and test generation. The advantages and limitations of these technologies are considered. Particular attention is paid to the problem of verifying the correctness of generated code and the need for developer participation in decision-making. Based on an analysis of recent Russian studies, recommendations for using large language models in software engineering are formulated.
Ключевые слова: большие языковые модели; искусственный интеллект; программное обеспечение; генерация кода; программная инженерия; автоматизация разработки.
Keywords: large language models; artificial intelligence; software; code generation; software engineering; development automation.
Введение
Развитие информационных технологий сопровождается постоянным усложнением программных систем. Увеличение объёма исходного кода, количества используемых библиотек и требований к программным продуктам приводит к необходимости повышения эффективности разработки. При этом значительная часть работы программиста связана с выполнением повторяющихся операций: написанием типовых конструкций, поиском ошибок, созданием тестов и документации.
Одним из перспективных инструментов автоматизации указанных процессов являются большие языковые модели (Large Language Models, LLM). Они способны анализировать естественный язык и программный код, а также формировать новые программные конструкции на основе заданного контекста. В результате взаимодействие разработчика с программной средой постепенно переходит от ручного написания отдельных инструкций к формированию требований на естественном языке.
В отечественной научной литературе отмечается, что большие языковые модели существенно расширяют возможности автоматизации программирования и могут применяться для генерации, исправления и оптимизации программного кода [1]. При этом эффективность их использования непосредственно зависит от качества постановки задачи и способов проверки полученного результата.
Целью работы является анализ возможностей применения больших языковых моделей для автоматизации разработки программного обеспечения и определение основных преимуществ и ограничений их использования.
Для достижения поставленной цели необходимо рассмотреть основные направления применения LLM в разработке программного обеспечения, определить преимущества и риски данной технологии, а также сформулировать рекомендации по её практическому использованию.
Основные направления применения больших языковых моделей
Одним из наиболее распространённых направлений применения LLM является генерация программного кода. Разработчик формулирует задачу на естественном языке, после чего модель предлагает программную реализацию. Например, запрос может содержать описание функции, входных и выходных данных и требований к обработке исключительных ситуаций.
Преимущество такого подхода заключается в сокращении времени на написание типовых программных конструкций. При этом разработчику необходимо понимать принцип работы предложенного решения, поскольку сгенерированный код не гарантированно является корректным.
Второе направление — автоматическое дополнение кода. Модель анализирует уже существующий программный фрагмент и предлагает его продолжение. Подобные функции интегрируются непосредственно в среды разработки и позволяют программисту быстрее создавать повторяющиеся конструкции.
Исследование российских авторов, посвящённое использованию LLM в интегрированных средах разработки, показывает, что такие модели применяются для автодополнения, генерации программных фрагментов, поиска ошибок и рефакторинга [2].
Третье направление — поиск и исправление ошибок. Языковая модель может анализировать программный код и предлагать возможные причины некорректного поведения программы. Это особенно полезно при анализе небольших программных модулей и типовых ошибок.
Четвёртое направление — автоматическое создание тестов. На основании исходного кода модель способна сформировать набор тестовых случаев. Такой подход позволяет сократить время подготовки тестов, однако результаты также должны проверяться разработчиком.
Пятое направление — рефакторинг и документирование. LLM может предложить изменение структуры программного кода, улучшить имена переменных, выделить повторяющиеся фрагменты в отдельные функции и сформировать комментарии к программным модулям.
Таким образом, применение LLM охватывает не только непосредственное написание программного кода, но и ряд сопутствующих процессов.
Преимущества и ограничения использования LLM
Главным преимуществом больших языковых моделей является сокращение времени выполнения рутинных операций. Разработчику не всегда требуется самостоятельно реализовывать стандартную функцию или искать синтаксическую конструкцию в документации. Вместо этого он может сформулировать требования к результату и получить несколько вариантов реализации.
Вторым преимуществом является возможность использования LLM как интеллектуального помощника. Модель может объяснить принцип работы незнакомого программного фрагмента, предложить варианты оптимизации или помочь разобраться с сообщением об ошибке.
Третьим преимуществом является снижение порога входа в отдельные технологии. Разработчик может сформулировать вопрос на естественном языке и получить пример использования библиотеки или программного интерфейса.
Однако применение LLM имеет существенные ограничения. В первую очередь отсутствует гарантия корректности полученного программного кода. Исследования российских специалистов показывают, что оценка корректности кода, сгенерированного нейросетевыми моделями, является самостоятельной исследовательской задачей [3].
Возможна ситуация, при которой программа успешно компилируется, но содержит логическую ошибку. Кроме того, модель может использовать устаревший программный интерфейс, предложить неоптимальный алгоритм или не учитывать особенности конкретного проекта.
Отдельной проблемой является безопасность. Сгенерированный код может содержать потенциально небезопасные конструкции. Поэтому применение LLM не отменяет статический анализ, автоматическое тестирование и экспертную проверку.
Контроль качества сгенерированного кода
Для безопасного использования больших языковых моделей необходимо организовать многоуровневую проверку результатов.
Первым этапом является синтаксический контроль. Полученный код должен корректно компилироваться или выполняться интерпретатором.
Вторым этапом является автоматическое тестирование. Для каждой существенной функции необходимо предусмотреть тесты, проверяющие как стандартные, так и граничные ситуации.
Третий этап — статический анализ. Специализированные инструменты позволяют обнаружить потенциальные ошибки, нарушения правил программирования и некоторые уязвимости.
Четвёртым этапом является экспертная проверка. Разработчик должен определить, соответствует ли предложенное решение требованиям проекта, является ли оно понятным и сопровождаемым.
Таким образом, рациональная схема использования LLM может быть представлена следующим образом: Постановка задачи → генерация кода → автоматическая проверка → тестирование → анализ разработчиком → интеграция в проект.
При таком подходе языковая модель не заменяет специалиста, а выполняет функции интеллектуального помощника.
Практические рекомендации
Для эффективного использования LLM при разработке программного обеспечения целесообразно придерживаться нескольких правил.
Во-первых, запрос к модели должен содержать максимально точное описание задачи. Желательно указывать язык программирования, используемые библиотеки, формат входных и выходных данных и ограничения.
Во-вторых, сложные задачи следует разделять на отдельные этапы. Вместо требования создать всё приложение целиком рациональнее последовательно получить структуру проекта, отдельные программные модули, тесты и документацию.
В-третьих, необходимо проверять актуальность используемых библиотек и программных интерфейсов. Языковая модель может предложить конструкцию, которая была актуальной в прошлом, но больше не используется в новой версии программного продукта.
В-четвёртых, критически важные программные компоненты не следует интегрировать в проект без тестирования и экспертной проверки.
В-пятых, необходимо учитывать конфиденциальность передаваемых данных. При использовании внешних сервисов разработчик должен исключать из запросов пароли, ключи доступа и другую информацию, которая не предназначена для передачи сторонним системам.
Исследования в области повышения качества генерации программного кода также указывают на необходимость разработки специальных методов оценки и проверки результатов работы генеративного искусственного интеллекта [4].
Заключение
Большие языковые модели являются перспективным инструментом автоматизации разработки программного обеспечения. Они позволяют ускорить генерацию программного кода, создание тестов, поиск ошибок, рефакторинг и подготовку документации.
При этом LLM не следует рассматривать как полностью автономную замену программисту. Основной проблемой остаётся отсутствие гарантии корректности результата. Сгенерированный код может содержать логические ошибки, небезопасные конструкции или не соответствовать архитектуре конкретного проекта.
Наиболее рациональным является использование модели в качестве интеллектуального помощника. В этом случае разработчик формулирует задачу, получает предложение от LLM, выполняет его автоматическую и экспертную проверку и только после этого интегрирует результат в программный проект.
Таким образом, эффективность применения больших языковых моделей определяется не только качеством самой модели, но и организацией процесса разработки. Сочетание LLM с автоматическим тестированием, статическим анализом и экспертным контролем позволяет использовать преимущества автоматической генерации при сохранении необходимого уровня качества программного обеспечения.
Список литературы
1. Ломшаков В.М., Николенко С.И. Применения больших языковых моделей для задач порождения и обработки программного кода // Записки научных семинаров ПОМИ. – 2024. – Т. 540. – С. 276–350.
2. Ишанхонов А.Ю., Пшиченко Д.В., Можаровский Е.А., Алуев А.С. Роль больших языковых моделей в интегрированных средах разработки нового поколения // Программные системы и вычислительные методы. – 2024. – № 4. – С. 140–150. – DOI: 10.7256/2454–0714.2024.4.72022.
3. Авагян Д.А. Оценка корректности сгенерированного нейросетями кода: вероятностный подход // Труды Института системного программирования РАН. – 2026. – Т. 38. – С. 111–128. – DOI: 10.15514/ISPRAS-2026-38(2)-8.
4. Тимофеев А.Н., Михайлова С.С. Разработка подхода к повышению качества генерации программного кода большими языковыми моделями // Нейрокомпьютеры: разработка, применение. – 2024. – Т. 26, № 4. – С. 18–26. – DOI: 10.18127/j19998554-202404-02.
5. Иванова Г.С., Мартынюк П.А. Анализ нейросетевых языковых моделей при решении задач обработки текстовых данных // Нейрокомпьютеры: разработка, применение. – 2023. – Т. 25, № 2. – С. 5–20. – DOI: 10.18127/j19998554-202302-01.
дипломов

