Details

Title Разработка и автоматизация последовательности проверки лабораторных работ в рамках курса ООП на языке Java: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Creators Рябикин Марк Константинович
Scientific adviser Маслаков Алексей Павлович
Other creators Локшина Екатерина Геннадиевна
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint Санкт-Петербург, 2020
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects образование ; непрерывная интеграция ; ооп ; java ; jenkins ; github actions ; github classroom ; education ; continuous integration ; oop
Document type Bachelor graduation qualification work
File type PDF
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
Links Отзыв руководителя ; Отчет о проверке на объем и корректность внешних заимствований
DOI 10.18720/SPBPU/3/2020/vr/vr20-1626
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key ru\spstu\vkr\6441
Record create date 7/10/2020

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Action 'Download' will be available if you login or access site from another network

Group Anonymous
Network Internet

Целью данной работы является описание и реализация последовательности автоматической проверки лабораторных работ в курсе ООП на языке Java. Решение поставленной задачи лежит в области технологий непрерывной интеграции и обеспечения качества программных продуктов. Выработаны требования к реализуемой системе и определён набор её функций. На основе данных требований разработана архитектура решения, проведён анализ технических средств, обеспечивающих заданную функциональность. При помощи выбранных инструментов разработана система состоящая из двух модулей. Первый модуль осуществляет видимые студенту проверки текста и качества его решения. Второй модуль скрыт от учеников и предоставляет возможность только инициировать проверки внутри себя, возвращая результат в виде индикатора прохождения проверки. Разработанная система обладает гибкостью настройки под различные задачи курса программирования. Скрытый модель проверки может быть настроен для предоставления более подробного ответа студентам. Реализованная в ходе данной работы система решает поставленные задачи и может быть внедрена в учебный процесс.

The aim of this work is to describe and implement a sequence of automatic verification of student’s works in the OOP course in Java. The solution to this problem lies in the field of continuous integration technologies and quality assurance of software products. The requirements for the implemented system are developed and a set of its functions is defined. Based on these requirements, a solution architecture is developed, an analysis of the technical means providing the specified functionality is carried out. Using the selected tools, a system consisting of two modules was developed. The first module performs visible to the student verification of his decision’s text and quality. The second module is hidden from students and provides the ability to only initiate checks within itself, returning the result in the form of an indicator of the passage of the test. The developed system has the flexibility to be customized for the various tasks of a programming course. A hidden verification model can be configured to provide a more detailed answer to students. The system implemented in the course of this work solves the assigned tasks and can be implemented in the educational process.

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous
  • Список сокращений
  • Перечень таблиц
  • Перечень иллюстраций
  • Перечень листингов
  • Введение
  • 1. Стек технологий
    • 1.1 Альтернативные решения
      • 1.1.1 edX + external grader
      • 1.1.2 Stepik
      • 1.1.3 Moodle
    • 1.2 Выбор стека технологий
      • 1.2.1 Требования к стеку технологий
      • 1.2.2 Средства сборки Java-приложений
      • 1.2.3 Средства анализа тестового покрытия кода
      • 1.2.4 Средства статического анализа текстов программ
      • 1.2.5 End-to-end тестирование
      • 1.2.6 Антиплагиат
      • 1.2.7 Интегрированная система CI/CD
      • 1.2.8 Внешняя система CI/CD
      • 1.2.9 Возможное решение на стеке Gitlab + Gitlab CI
      • 1.2.10 Преимущества GitHub Classroom
    • 1.3 Выводы
  • 2. Автоматизация последовательности
    • 2.1 Требования к системе
    • 2.2 Предлагаемый подход
    • 2.3 Архитектура системы
  • 3. Практическая реализация
    • 3.1 Шаблонный репозиторий
    • 3.2 Настройка Gradle
    • 3.3 Правила Checkstyle
    • 3.4 Настройка правил Spotbugs
    • 3.5 Метрики покрытия кода. Jacoco
    • 3.6 Pytest для тестов ввода-вывода
    • 3.7 Применение Moss
    • 3.8 Скрытие тестов через выполнение в Jenkins
      • 3.8.1 Webhooks в GitHub
      • 3.8.2 Webhook Action
      • 3.8.3 Доставка Jenkins
    • 3.9 Отчёт о прохождении последовательности
    • 3.10 Тестирование системы
  • 4. Результаты
  • Список использованных источников

Access count: 14 
Last 30 days: 0

Detailed usage statistics