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

Название: Разработка и автоматизация последовательности проверки лабораторных работ в рамках курса ООП на языке Java: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Авторы: Рябикин Марк Константинович
Научный руководитель: Маслаков Алексей Павлович
Другие авторы: Локшина Екатерина Геннадиевна
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2020
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: образование; непрерывная интеграция; ооп; java; jenkins; github actions; github classroom; education; continuous integration; oop
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Код специальности ФГОС: 09.03.04
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
Ссылки: Отзыв руководителя; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2020/vr/vr20-1626
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)

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

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

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

Сеть: Интернет

Аннотация

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

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

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

Статистика использования

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