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

Название Разработка системы формирования корректирующих и предупредительных действий на основе изменений репозитория кода: выпускная квалификационная работа бакалавра: направление 09.03.03 «Прикладная информатика» ; образовательная программа 09.03.03_03 «Интеллектуальные инфокоммуникационные технологии»
Авторы Ильчук Александр Евгеньевич
Научный руководитель Пархоменко Владимир Андреевич
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2025
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика репозиторий ; анализ данных ; метрики ; качество кода ; repository ; data analysis ; metrics ; code quality
Тип документа Выпускная квалификационная работа бакалавра
Тип файла PDF
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.03
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2025/vr/vr25-5199
Права доступа Доступ по паролю из сети Интернет (чтение, печать, копирование)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\39256
Дата создания записи 25.09.2025

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

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

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

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

Объект исследования – процесс автоматизированного анализа истории коммитов в Git-репозиториях с целью выявления «рисковых» изменений и генерации корректирующих и предупреждающих рекомендаций. Цель работы – разработать модульную систему, способную автоматически собирать данные о коммитах из удалённых и локальных репозиториев, проводить статический анализ, обучать модель машинного обучения для предсказания риска коммита и формировать для каждого потенциально «рискового» изменения набор рекомендаций CAPA. В работе выполнены следующие основные этапы: Реализован класс GitHubRepoAnalyzer, который через GitHub API или локальный клон последовательно извлекает историю коммитов, собирает базовые метрики (число добавленных/удалённых строк, число изменённых файлов, время между коммитами) и дополняет их результатами статических анализаторов (pylint, Bandit, ESLint, Checkstyle). Для автоматической разметки выполнена кластеризация методом KMeans, разделяющая коммиты на «нормальные» и «аномальные» по признакам объёма и качества кода. На основе полученных меток обучается модель, обёрнутая в универсальный класс CommitRiskModel, позволяющий тестировать различные классификаторы (LogisticRegression, RandomForest, SVM, LightGBM, DeepForest и др.) без изменения кода. Модель предсказывает вероятность «рискового» коммита и вычисляет важность признаков. На основании вероятности риска и значений ключевых признаков формируется набор текстовых рекомендаций. При превышении пороговых значений формируются предупреждающие сообщения и рекомендации по доработке (добавление тестов, рефакторинг, дополнительная проверка кода). Система автоматически создаёт Pull Request с файлом в формате Markdown, содержащим CAPA-рекомендации. Разработан интерактивный дашборд на Dash + Plotly, включающий разделы: – распределение метрик коммитов, – анализ риска (распределение коммитов по вероятностям, важность признаков), – активность авторов (графики среднего риска по каждому разработчику), – таблица коммитов с рекомендациями CAPA и возможностью фильтрации по проекту, автору и дате. В качестве тестовых примеров использовались несколько реальных учебных и рабочих репозиториев. Проведено сравнительное тестирование классификаторов на основе метрик Precision, Recall, F1-score и ROC-AUC; для каждого проекта определены оптимальные алгоритмы. Система автоматизирует полный цикл анализа коммитов и выдачи рекомендаций CAPA, сокращая время обратной связи, улучшая качество кода и снижая число «рисковых» изменений.

The object of research is the process of automated analysis of commit history in Git repositories for the purpose of identifying "risky"changes and generating corrective and preventive recommendations. The goal of the work is to develop a modular system capable of automatically collecting commit data from remote and local repositories, conducting static analysis, training a machine learning model to predict commit risk, and generating a set of CAPA recommendations for each potentially "risky"change. The following main stages were completed in the work: A GitHubRepoAnalyzer class was implemented, which sequentially extracts commit history through GitHub API or local clone, collects basic metrics (number of added/deleted lines, number of changed files, time between commits) and supplements them with results from static analyzers (pylint, Bandit, ESLint, Checkstyle). For automatic labeling, KMeans clustering was performed, dividing commits into "normal"and "anomalous"based on code volume and quality features. Based on the obtained labels, a model wrapped in a universal CommitRiskModel class is trained, allowing testing of various classifiers (LogisticRegression, RandomForest, SVM, LightGBM, DeepForest, etc.) without code changes. The model predicts the probability of a "risky"commit and calculates feature importance. Based on risk probability and key feature values, a set of textual recommendations is formed. When threshold values are exceeded, warning messages and improvement recommendations are generated (adding tests, refactoring, additional code review). The system automatically creates a Pull Request with a Markdown file containing CAPA recommendations. An interactive dashboard was developed using Dash + Plotly, including sections: – commit metrics distribution, – risk analysis (commit distribution by probabilities, feature importance), – author activity (charts of average risk for each developer), – commit table with CAPA recommendations and filtering capabilities by project, author, and date. Several real educational and working repositories were used as test examples. Comparative testing of classifiers was conducted based on Precision, Recall, F1-score, and ROC-AUC metrics; optimal algorithms were determined for each project. The system automates the complete cycle of commit analysis and CAPA recommendation generation, reducing feedback time, improving code quality, and decreasing the number of "risky"changes.

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

Количество обращений: 0 
За последние 30 дней: 0

Подробная статистика