Details

Title Разработка автоматизированной системы поддержки процессов непрерывной интеграции исходного кода: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_01 «Разработка компьютерных систем» = Development of an automated support system for continuous integration processes of source code
Creators Куликов Никита Вячеславович
Scientific adviser Тарасов Олег Михайлович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects непрерывная интеграция ; статический анализ кода ; абстрактное синтаксическое дерево ; tree-sitter ; граф зависимостей ; система контроля версий ; байесовское сглаживание ; аномальные конструкции ; continuous integration ; static code analysis ; abstract syntax tree ; dependency graph ; version control system ; bayesian smoothing ; anomalous constructs
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.01
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-2069
Rights Доступ по паролю из сети Интернет (чтение)
Additionally New arrival
Record key ru\spstu\vkr\42873
Record create date 8/21/2026

Allowed Actions

Action 'Read' will be available if administrator prepare required files

Group Anonymous
Network Internet

Современное программное обеспечение в значительное мере строится на основе сторонних библиотек с открытым исходным кодом, такой подход используется в 90% крупных проектах. При таком объеме заимствованного кода сборочный конвейер и вся программная архитектура подвергается рис- кам: нестабильные зависимости, устаревшие версии библиотек, аномальные конструкции. Существующие инструменты контроля сборки опираются на текстовый поиск либо облачные базы известных уязвимостей, а это приводит к частым ложным срабатываниям и не позволяет работать в изолированном контуре организации локально. В итоге актуальной становится задача создания локального инструмента, способного автоматически принимать решение о допуске сборки на основе комплексного анализа исходного кода. Данная работа посвящена созданию агента поддержки сборочного конвейера, объединяющего многоязычный синтаксический разбор, анализ графа зависимостей и оценку метаданных системы контроля версий. Задачи, которые решались в ходе разработки: 1. Анализ существующих решений поддержки сборочных конвейеров и обзор алгоритмов статического анализа исходного кода; 2. Разработка модуля анализа графа зависимостей для разбора манифестов и построения графа прямых и транзитивных библиотек; 3. Разработка модуля трансляции исходного кода в абстрактные синтаксические деревья на базе библиотеки Tree-sitter с поддержкой нескольких языков программирования; 4. Разработка эвристического алгоритма обхода дерева для выявления аномальных конструкций в коде; 5. Разработка модуля анализа метаданных системы контроля версий для оценки поведения авторов коммитов; 6. Разработка метода математической агрегации разнородных метрик с при- менением байесовского сглаживания; 7. Интеграция разработанных модулей в сборочный конвейер; 8. Экспериментальная оценка скорости и точности работы алгоритмов на размеченной выборке проектов.

Modern software largely consists of third-party open-source libraries, whose share in large projects reaches 90%. With such volumes of borrowed code, the build pipeline is exposed to engineering risks: the inclusion of unstable dependencies, outdated library versions, and anomalous constructs. Existing build control tools rely either on text-based search or cloud databases of known vulnerabilities, which leads to a large number of false positives and does not allow operation within an isolated corporate environment. In this regard, the urgent task is to create a local tool capable of automatically making decisions on build admission based on comprehensive source code analysis. The given work is devoted to creating a software agent for build pipeline support that combines multi-language syntactic parsing, dependency graph analysis, and version control metadata evaluation. The development set the following goals: 1. Analysis of existing build pipeline support solutions and review of static source code analysis algorithms; 2. Development of a dependency graph analysis module for parsing manifests and building a graph of direct and transitive libraries; 3. Development of a multi-language source code translation module into abstract syntax trees based on the Tree-sitter library; 4. Development of a heuristic tree traversal algorithm for detecting anomalous combinations of code constructs; 5. Development of a version control metadata analysis module for evaluating the behavior of commit authors; 6. Development of a method for mathematical aggregation of heterogeneous metrics using Bayesian smoothing; 7. Integration of the developed modules into an experimental build pipeline; 8. Experimental evaluation of the speed and accuracy of the algorithms on a labeled sample of projects.

Network User group Action
ILC SPbPU Local Network All
Internet Authorized users SPbPU
Internet Anonymous
...