Разработка свободного ПО для использования в учебном процессе

Виноградов Павел, Просалов Максим, Ковычев Руслан, Тарасов Владимир

В докладе рассказывается о разработке на кафедре ПО ИжГТУ специализированного программного комплекса AcmOlimp для проведения конкурсов и турниров по программированию с автоматическим тестированием задач на базе свободного программного обеспечения.

Разработка научных проектов студентами

В 2003 году на кафедре ПО ИжГТУ была организована группа разработчиков из 3-х студентов (Виноградов Павел, Просалов Максим, Караяни Михаил) 3-го курса под научным руководством доцента кафедры ПО Тарасова Владимира Георгиевича. Целью этой группы была организация проекта по разработке новой версии автоматизированной системы проведения олимпиад вместо морально устаревшей АС Олимпиада, разработанной в 1999 году.

Этот проект стал экспериментальным для кафедры, т. к. после проведения анализа поставленной задачи и средств для её реализации, для реализации проекта были выбраны открытые средства разработки и свободная лицензия на конечный продукт.

Проблемы, с которыми мы столкнулись

  1. Сложность обоснования и аргументации выбора свободных средств разработки и свободной схемы лицензирования на разрабатываемый продукт.
  2. Полное отсутствие инфраструктуры разработки ПО с использованием открытого ПО.
  3. Отсутствие опыта работы со свободными средствами разработки; отсутствие учебных материалов и преподавателей, имеющих соответствующие знания.
  4. Отсутствие опыта разработки проектов такого масштаба.
  5. Отсутствие необходимых вычислительных и материальных ресурсов.

Наши решения

1 В ходе проведения анализа предметной области проекта мы были поставлены перед необходимостью выбора средств разработки для реализации этого проекта. Для выполнения этой задачи выбор свободных средств разработки (Apache, MySQL, Php, GCC, Fpc) имел ряд значительных преимуществ:

2 Начиная с единого на всю команду разработчиков loginна на кафедральном linux-сервере, мы создали инфраструктуру разработки, предоставляющую все необходимые свободные средства разработки, включая компиляторы, серверы БД, web-инфраструктуру, систему контроля версий, систему документирования и отслеживания ошибок.

3 В ходе реализации проекта нам приходилось изучать не только конкретные реализации тех или иных технологий (SQL, многопоточное программирование, сетевое программирование, взаимодействие процессов в Linux, web-программирование), но и соответствующие теоретические курсы, заложенные в программу обучения на специальности.

И там где это возможно, мы старались совместить изучение таких курсов с разработкой соответствующего модуля системы. Конечно, не все преподаватели соглашались на наши предложения выполнить практические задания по собственному техническому заданию с использованием свободных средств разработки.

4 Из-за отсутствия достаточного объёма знаний и опыта разработки проектов такого масштаба многие вещи приходилось переделывать и переписывать. Так, реализация сервера решений готовится пережить уже 3-ю смену языка (Perl->C->C++). Реализация web-интерфейса тоже пережила ряд комплексных изменений (переход к html-шаблонам, универсальный слой абстракции в работе с БД). Также сейчас весь проект готовится к миграции на PostgreSQL.

5 За 3 года разработки проекта лаборатория кафедры получила современный евроремонт, новый лабораторный сервер, и комплект из 10 клиентских машин. Всё это позволило организовать современный высокотехнологичный класс, обеспеченный всем необходимым для комфортной работы студентов. А новый высокопроизводительный сервер обеспечил необходимые ресурсы не только для обеспечения функционирования лаборатории, но и для тестирования разрабатываемых проектов, в том числе и публичного.

Также интернет-центром университета были предоставлены необходимые ресурсы для доступа студентов в Интернет, собственный почтовый домен (с возможностью организации рассылок), и ограниченный публичный доступ к серверу лаборатории.

Полученные результаты

  1. Команда нашего факультета 2 раза занимала призовые места в финале чемпионата мира по программированию среди студентов. Этот факт способствовал повышению интереса студентов к проектам и мероприятиям, проводимым на кафедре. А также ещё раз подтвердил необходимость продолжения разработки проекта AcmOlimp, т. к.
  2. Наша система прошла успешное тестирование в качестве средства автоматизации практических занятий по курсу «Проектирование ассемблеров».
  3. На базе нового сервера была развёрнута инфраструктура для разработки студентами программного обеспечения.
  4. Практическое подтверждение возможности использования открытого ПО в ходе выполнения практических заданий по изучаемым специальным дисциплинам.
  5. Подготовлен базис для создания прецедента эталонного дипломного проекта, разрабатываемого в сотрудничестве с кафедрой, и имеющего достаточный аналитический и информационный базис.