Детальная информация

Название Разработка экспериментального стенда для агрегации и классификации предупреждений после статической проверки C/C++ программ: выпускная квалификационная работа бакалавра: направление 09.03.03 «Прикладная информатика» ; образовательная программа 09.03.03_03 «Интеллектуальные инфокоммуникационные технологии» = Development of an experimental testbed for aggregation and classification of warnings produced by static analysis of C/C++ programs
Авторы Дробилко Валерий Александрович
Научный руководитель Пархоменко Владимир Андреевич
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2026
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика тестирование ; статический анализ кода ; качество программного обеспечения ; безопасность программного обеспечения ; testing ; static code analysis ; software quality ; software security
Тип документа Выпускная квалификационная работа бакалавра
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.03
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-1672
Права доступа Доступ по паролю из сети Интернет (чтение, печать, копирование)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\42491
Дата создания записи 21.08.2026

Разрешенные действия

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Цель исследования — разработать экспериментальный стенд для агрегации и классификации предупреждений после статической проверки C/C++ программ. Объектом исследования в данной работе являются предупреждения об угрозах уязвимости и ошибок в программных продуктах, написанных на C/C++. В данной работе изложен подход к разработке средств классификации предупреждений статического анализа по критичности для программ на C/C++. Сформулированы базовые понятия (тип предупреждения, источник, контекст, уровень критичности) и предложена удобная для автоматизации классификация предупреждений. Проведён обзор и сравнительный анализ актуальных статических анализаторов кода (например, Clang Static Analyzer, Cppcheck, PVS-Studio, CodeQL, Svace) с точки зрения полноты и качества сообщений. Изучены методы построения классификаторов и особенности их применения к данным статического анализа. Разработан прототип программного решения, который выполняет как сквозную, так и помодульную обработку предупреждений: извлечение предупреждений (запуск статических анализаторов + унификация результатов статического анализа), агрегация унифицированных предупреждений, LLM или ML порядковая классификация агрегированных предупреждений, формирования результатов в удобный отчет. В результате тестирования и апробации разработанного стенда показана возможность объединения результатов нескольких статических анализаторов, сокращения количества дублирующихся записей и приоритизация агрегированных предупреждений порядковой классификацией. Таким образом, разработанный экспериментальный стенд может использоваться для автоматизации работы разработчиков и специалистов по качеству программного обеспечения путем сокращения объема ручной проверки. Для достижения данных результатов в работе были использованы облачный сервис OpenRouter и такие статические анализаторы: Cppcheck, Rats, FlawFinder, Clang SA и CodeQL.

The purpose of the research is to develop an experimental testbed for aggregation and classification of warnings after static analysis of C/C++ programs. The object of research in this work is warnings about security vulnerabilities and errors in software products written in C/C++. This paper presents an approach to the development of tools for classifying static analysis warnings by criticality for C/C++ programs. Basic concepts are defined (warning type, source, context, severity level), and a classification of warnings suitable for automation is proposed. A review and comparative analysis of relevant static code analyzers (e.g., Clang Static Analyzer, Cppcheck, PVS-Studio, CodeQL, Svace) is conducted from the perspective of completeness and quality of messages. Methods for constructing classifiers and the specifics of their application to static analysis data are studied. A prototype of a software solution is developed, which performs both end-to-end and modular processing of warnings: extraction of warnings (static analyzers execution + unification of static analysis results), aggregation of unified warnings, LLM or ML ordinal classification of aggregated warnings, and generation of results in a convenient report. Through testing and evaluation of the developed testbed, the possibility of combining results from multiple static analyzers, reducing the number of duplicate entries, and prioritizing aggregated warnings through ordinal classification is demonstrated. Thus, the developed experimental testbed can be used to automate the work of developers and software quality engineers by reducing the volume of manual checking. To achieve these results, we used the OpenRouter cloud service and the following static analyzers: Cppcheck, Rats, FlawFinder, Clang SA, and CodeQL.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ
Прочитать Печать Загрузить
Интернет Анонимные пользователи
  • Разработка экспериментального стенда для агрегации и классификации предупреждений после статической проверки C/C++ программ
    • Введение
    • 1. Исследование средств классификации предупреждений для программ на C/C++
    • 2. Проектирование экспериментального стенда для агрегации и классификации предупреждений для C/C++ программ после статической проверки
    • 3. Реализация экспериментального стенда для агрегации и классификации предупреждений для C/C++ программ после статической проверки
    • 4. Тестирование и апробация экспериментального стенда для агрегации и классификации предупреждений после статической проверки C/C++ программ
    • Заключение
    • Список использованных источников
    • Приложение 1 Листинг программного кода
...