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
Speciality code (FGOS): 09.03.04
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
Links: Отзыв руководителя; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2020/vr/vr20-1626
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)

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

Annotation

Целью данной работы является описание и реализация последовательности автоматической проверки лабораторных работ в курсе ООП на языке 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.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users Read Print Download
-> Internet Anonymous

Table of Contents

  • Список сокращений
  • Перечень таблиц
  • Перечень иллюстраций
  • Перечень листингов
  • Введение
  • 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. Результаты
  • Список использованных источников

Usage statistics

stat Access count: 3
Last 30 days: 1
Detailed usage statistics