Программная реализация
Модель данных
Во время реализации программы была создана модель данных, позволяющая структурировать оцениваемые задания по программированию. Для облегчения понимания дальнейшей части документа, можно выделить следующие ключевые сущности:
- 1. Курс - сущность, используемая для группировки набора заданий. Данная сущность может быть ассоциирована с дисциплиной, которая содержит набор заданий.
- 2. Задание - сущность, используемая для представления задания по программированию. Задание может содержать в себе описание, предоставлять общие файлы (common files) и файлы для проведения оценки (secret files), а также иметь крайний срок приема работ на проверку. Задание должно содержать в себе набор подправил оценивания, по которому осуществляется формирование итоговой оценки.
- 3. Подправило оценивания - сущность, используемая для отображения определенного аспекта работы, которое возможно оценить. Правило оценивания содержит определенный вес, который отображает, насколько сильно данное правило влияет на формирование оценки.
- 4. Попытка - сущность, используемая для представления оцениваемой работы студента. Программа должна предоставить оценку для каждого правила оценивания при осуществлении попытки. Попытка ассоциирована исключительно с одним студентом, загрузившим файл с оцениваемой программой.
Архитектура приложения
Архитектура приложения может быть представлена в виде набора модулей, взаимодействующих друг с другом (рис. 5):
- 1. Сервер оценки. Данный сервер является основным модулем, участвующим в ходе проверки. Основные функции сервера:
- · Регистрация пользователей, а также аутентификация их в системе;
- · Предоставление общей информации о доступных курсах и заданиях;
- · Предоставление информации о результатах проверки работ;
- · Осуществление оценки попытки сдачи определенного задания;
- · Регистрация новых курсов, заданий;
- · Загрузка файлов в файловое хранилище.
- 2. Веб-интерфейс. Данный модуль предоставляет пользователю интерфейс, основанный на веб-страницах, чтобы осуществлять взаимодействие с программой. Модуль взаимодействует с сервером оценки в качестве интерфейса к предоставляемому сервером функционалу;
- 3. Файловое хранилище - модуль, предоставляющий возможность хранить загруженные файлы, а также иметь к ним доступ через протокол HTTP.
- 4. Оценивающие сервисы (оценщики) - совокупное название всех модулей, непосредственно осуществляющих проверку загруженных работ по критериям;
- 5. База данных - хранилище данных учетных записей пользователей, информации о курсах, заданиях, правил (подправил) оценивания, а также результатов проверок;
- 6. Прокси сервер - сервер, обрабатывающий все входящие запросы пользователя. Перенаправляет запросы в различные модули программы.

Рисунок 5. Изображение архитектуры программы