ЧТО ЖДУТ ОТ МОЛОДЫХ

> Кирилл Аблязов

30 августа 2019

Меня зовут Кирилл, я разработчик в Райффайзенбанке. Хочу рассказать о проведении экспертной оценки вариативного задания по специальности Программирование в компьютерных системах, которое решали участники Всероссийской олимпиады профессионального мастерства.

Об олимпиаде

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

Соревнования проходили по таким дисциплинам:

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

Олимпиада проходила в два этапа — теория и практика.

Чтобы показать свои теоретические знания, участникам нужно было пройти тест и выполнить задание на английском языке. Тест содержал вопросы из различных областей знаний. Например, что предполагают криптографические методы защиты информации, или что такое диаграмма вариантов использования. А задание на знание английского языка состояло из вопросов, ответы на которые необходимо было найти в документации.

Набор практических задач зависел от того, по какому направлению обучается каждый из студентов.

Победитель омского этапа по информационной безопасности.

Например, тем, кто изучает компьютерные системы, предложили собрать схему на базе платформы Arduino из датчиков освещенности, температуры, влажности и графического дисплея. А изучающим программирование в компьютерных системах нужно было разработать информационную систему.

О региональном этапе

Один из региональных этапов олимпиады проходил в Омске. Всего было 16 участников, из которых 10 занимались разработкой информационной системы. Жюри состояло из специалистов из сторонних организаций, чтобы избежать предвзятого судейства.

Меня, как бывшего участника олимпиады и разработчика из крупной компании, позвали провести экспертизу практического задания — разработку информационной системы. Работы студентов мы оценивали по заранее подготовленному списку объективных критериев в зависимости от вида работы:

  1. Моделирование данных: проектирование ER-диаграммы по правилам нормализации на основании входных данных.
  2. Разработка БД: создание физической модели данных в СУБД в соответствии с доработанной ER-диаграммой и загрузка входных данных.
  3. Разработка запросов: создание SQL-запросов на выборку необходимых данных.
  4. Реализация бизнес-логики на стороне сервера: создание хранимых процедур для работы с данными (Insert, Select, Update, Delete).
  5. Проектирование интерфейса: создание пользовательского интерфейса на основе style guide.
  6. Разработка программных модулей: написание программного кода для работы с данными, поиска, проверки корректности пользовательского ввода.
  7. Интеграция программных модулей: написание программного кода для взаимодействия бизнес-логики и программных модулей.
  8. Разработка отчета: разработка модуля формирования отчетной информации, с возможностью экспорта в различные форматы.
  9. Проектирование и реализация политики безопасности: создание пользователей и ролей, разграничение доступа к отдельным объектам информационной системы.
  10. Тестирование: создание модульных тестов и протоколов тестирования.
  11. Техническая документация: описание ролей, объектов, возможностей разработанной системы и проведенного тестирования.
  12. Мультимедийная презентация итогового продукта: создание презентации на основе style guide для демонстрации созданного продукта заказчикам.

 

В жюри было пять разработчиков из разных компаний. Это помогало избежать неоднозначности суждений. И хотя критерии были объективными, но всё же ставить оценки иногда было затруднительно. Как мы оценивали работы: открывали то, что успел создать участник, и внимательно просматривали структуру базы данных, запросы, исходный код и проверяли работу системы так, как это делали бы пользователи.

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

О приложении

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

Каждая деталь в процессе изготовления проходит определенный производственный цикл от заготовки до готового изделия.

Изготовление детали начинается с заготовки и выполняется в соответствии с утвержденным для нее технологическим процессом. Для каждой детали разных типов установлена норма времени и стоимость изготовления.

Диаграмма «сущность-связь»

Ответственными за процесс изготовления деталей являются мастера производственного обучения. Мастер фиксирует фактическую дату и время начала и окончания процесса изготовления детали. После каждой операции в течение всего технологического процесса мастер контролирует качество изготовления, и в случае ненадлежащего качества заготовка бракуется с указанием причины брака.

В программе необходимо было предусмотреть разграничение прав доступа для ролей «Начальник цеха» и «Мастер». Переход в форму осуществляется в зависимости от прав пользователя. При этом «Мастер» может просматривать информацию о деталях и их типах, а также изменять и добавлять информацию о работах и браках, а начальнику цеха разрешен полный доступ ко всей информации для чтения и записи.

Входные данные

Пользователю с ролью «Мастер» необходимо было предоставить возможность формировать отчеты в виде PDF-документа на основании запросов к базе данных:

  1. Вывести список Мастеров старше 20 лет.
  2. Вывести список Мастеров, которые просрочили изготовление деталей.
  3. Вывести список типов деталей, которые чаще всего попадают в брак.
  4. Вывести общую сумму потерянных цехом денег из-за брака.

Вывести все небракованные детали, изготовленные в указанный период.

Заключение

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

У второго участника, набравшего чуть меньше балов, были проблемы с переходом между окнами, в которых должны были отображаться данные, и не работала авторизация.

Участнику, занявшему третье место за решение этого задания, стоило выдать грамоту за сообразительность. Он нашел уязвимость в системе хранения результатов участников олимпиады, и, решив не тратить время на создание запросов, просто скопировал эту функциональность у другого участника, даже не удосужившись что-то изменить.

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

< вернуться к списку