Аннотация 2
Введение 3
1 Анализ предыдущей версии системы решений 4
1.1 Процесс постмодерации 11
1.2 Рейтинги 12
2 Новые требования к подсистеме 14
3 Параллельная проверка задач 16
3.1 Существующая реализация 16
3.2 Проектирование и реализация новой версии 17
3.2.1 Лимиты 17
3.2.2 Реализация 19
3.2.2.1 Лимиты 19
3.2.2.2 Модификация очередей 20
3.3 Вывод 23
4 Интеграция с Gitlab 24
4.1 Функциональные возможности 24
4.2 Обзор ограничений Gitlab 25
4.2.1 Пространства имен 25
4.2.2 Ролевая модель 26
4.2.3 Возможности проектов 27
4.3 Реализация 28
4.4 Вывод 33
5 Постмодерация 34
6 Рейтинги 38
6.1 Тестирование производительности 40
6.1.1 Условия тестирования 40
6.1.2 Замер скорости обработки событий обновления рейтинга 41
7 Конфигурация класса 42
Заключение 44
Список использованных источников и литературы 45
CodeHedgehog - цифровая платформа для обучения IT-дисциплинам, которая позволяет частично автоматизировать процесс проверки решений обучающихся. В рамках платформы решение может быть проверено в полностью автоматическом режиме, на основании заранее описанных тестовых сценариев, или в полуавтоматическом, когда для успешных решений требуется дополнительная валидация от преподавателя. Притом при проектировании этой платформы была заложена возможность реализации подсистем автоматического тестирования для широкого круга дисциплин.
На данный момент, на платформе CodeHedgehog уже реализовано автоматическое тестирование для алгоритмического программирования и дисциплины «Базы данных». Один из векторов развития этой платформы является добавление новых подсистем автоматического тестирования.
Несмотря на заложенные точки расширения, добавление подсистем автоматического тестирования для новых, более комплексных предметов требует существенной доработки всей существующей подсистемы управления решениями. В связи с этим было решено провести реинжиниринг этой подсистемы, чтобы заложить основу для добавления новых предметов на платформу, исправить существующие недостатки и реализовать новые требования для улучшения пользовательского опыта.
Таким образом, целью этой работы является реинжиниринг подсистемы решений в рамках платформы CodeHedgehog. Для достижения поставленной цели были выделены следующие задачи:
1) проанализировать текущую версию подсистемы;
2) проанализировать новые требования к подсистеме;
3) спроектировать новую версию подсистемы управления решениями;
4) разработать новую версию подсистемы управления решениями;
5) интегрировать разработанную подсистему.
В рамках выполнения выпускной квалификационной работы был проведен реинжиниринг подсистемы управления решениями для цифровой платформы обучения IT-дисциплинам CodeHedgehog. Для этого было решено все поставленные задачи:
1) проанализирована текущую версию подсистемы;
2) проанализированы новые требования к подсистеме;
3) спроектирована новая версия подсистемы управления решениями;
4) разработана новая версия подсистемы управления решениями;
5) новая версия подсистемы управления решениями интегрирована на платформу.
Проведенный реинжиниринг позволил начать интеграцию на платформу новых предметов, таких как разработка пользовательских интерфейсов и разработка серверных приложений.