СЕКЦИЯ
Цифровые образовательные практики

Кудрявцев А. В.,

Алексеевский П.И.

УрГПУ

г. Екатеринбург

Методика разработки информационной системы автоматического контроля посещаемости студентов на основе мобильных устройств

Данная статья посвящена методике проектирования и реализации информационной системе на примере системы автоматического контроля входа в определенную зону лиц на основе подключения их мобильных устройств к сети WI-FI. В статье описывается решений проблемы автоматической регистрации студентов в журнале посещаемости. Рассмотрена методика проектирования структуры базы данных, а также разработка программной части для взаимодействия с базой и пользователем.
Материал статьи может быть использован в работе преподавателя или студента в области информационных систем.

Kudryavcev A. V.,

Alekseevsky P.I.

USPU

Ekaterinburg, Russia

Methodology for developing the information system for automatic control of student attendance on the basis of mobile devices

This article is devoted to the methodology for designing and implementing an information system using the example of an automatic control system for entering a certain area of persons based on the connection of their mobile devices to a WI-FI network. The article describes solutions to the problem of automatic registration of students in the attendance log. The technique of designing the structure of the database, as well as the development of the software part for interaction with the database and the user, is considered. The material of the article can be used in the work of a teacher or student in the field of information systems.
В рамках обучения студентов специальности «Информационные системы и технологии» основным направлением является изучение методов проектирования информационных систем и баз данных. Основной задачей подготовки будущих специалистов в данной области является изучение технологий и средств разработки систем, позволяющих автоматизировать процессы обмена информацией.
Под проектированием информационной системы (ИС) понимается процесс преобразования входной информации – сведений об объекте автоматизации требований заказчика – в проект ИС. Объектами проектирования являются отдельные элементы системы или их комплексы, относящиеся к функциональным или обеспечивающим подсистемам. Процесс проектирования ИС делится на совокупность взаимосвязанных действий, каждое из которых может иметь свой объект.
Совокупность состояний, которые проходит ИС в своем развитии, от момента принятия решения о создании системы до момента прекращения ее функционирования, называется жизненным циклом (ЖЦ) информационной системы [1 с. 22-26]. К основным требованиям, предъявляемым к выбираемой технологии проектирования, относятся следующие:
- созданный с помощью этой технологии проект должен максимально соответствовать требованиям заказчика, причем требования могут меняться уже в ходе создания ИС;
- технология должна максимально отражать все этапы жизненного цикла проекта и служить основой связи между проектированием и сопровождением системы в процессе ее эксплуатации;
- технология должна обеспечивать минимальные затраты времени и средств на проектирование и сопровождение системы при условии обеспечения должного качества конечного продукта [8 с. 3-4].
Рассмотрим методику разработки информационной система на примере организации автоматического контроля посещаемости студентов при помощи мобильных устройств.
Одним из путей решения проблемы автоматизации процесса регистрации студентов является создание ИС, которая позволяет обнаружить и идентифицировать устройства (мобильные телефоны) в беспроводной сети, а также автоматически записывать в журнал регистрации фамилию и время нахождения в сети.
Следовательно, разработка такой системы является актуальным решением проблемы учета посещения занятий студентами.
Перед тем как разрабатывать информационную систему необходимо обосновать ее необходимость, для чего следует рассмотреть альтернативные пути решения задачи, выявить их особенности, достоинства и недостатки.
Для решения обозначенной нами проблемы существуют различные готовые средства: Программный контроль, Биометрическая проверка, Турникеты.
Программный контроль
Существуют различные программы, которые могут быть использованы для подобных целей.
• Программа «Инсайдер».
Инсайдер имеет такие возможности, как: учитывает рабочее время, создает снимки экрана, фиксирует различные нарушения, контролирует открытие программ и веб-сайтов;
• Программа «Worker». Worker состоит из трех составляющих: Директор (для установки на ПК руководителя организации), Агент (для установки на компьютер персонала) и Сервер (хранить все данные). Используется для ведения учета времени на работе, сбора статистики программ, которыми пользовались, посещения сайтов на рабочем компьютере сотрудника.
• Программа «StaffCounter». Данной программой могут пользоваться руководители любой деятельности. Основой программы является контроль и учет рабочего времени персонала.
Приложение выявляет работают ли сотрудники, обнаруживает, как персонал расходует время, и обновляет процессы в компании.
У перечисленных программ есть общий недостаток – основные задачи, например, такие как учет рабочего времени, выполняются вручную.
Биометрическая проверка
У каждого сотрудника есть свой биометрический идентификатор. Он необходим для отслеживания характеристик сотрудника: сетчатки глаза, отпечатка пальца, голоса. Эти характеристики невозможно подделать или забыть. С их возможностью можно пройти служебный контроль, отметиться на работе или получить разрешение к конфиденциальной информации. Данные о биометрическом идентификаторе добавляются в базу данных, которую можно в любое время обновить, дополнить или сделать изменения.
Однако для такого контроля необходимо мощный процессор, различные сканеры, интерфейсы для передачи трафика и платное ПО.
Турникеты
Турникет — это устройство с управлением, которое выполняет ограничение свободного прохода народа (вход/выход) и может вести учет времени входа/выхода лица, имеющего допуск.
К недостаткам можем прописать достаточно высокую цену на оборудование. Требует стационарный пункт охраны.
В некоторых местах вероятно удобней установить некоторое количество точек идентификации для отслеживания местоположения работников на территории в течении рабочего дня.
Рассмотрев различные средства контроля доступа, мы выявили некоторый ряд недостатков:
  1. У большинства программ главным недостатком является тот факт, что их чаще всего нужно заполнять вручную, а для этого нужен менеджер, который будет за всем этим следить и записывать.
  2. Некоторые программы требуют систем высокой производительности.
  3. Турникеты и проверка по биометрии требуют дорогостоящего оборудования.
Таким образом, можно сделать вывод о том, что необходимо разработать новую систему, которая будет автоматически учитывать время входа и выхода сотрудников в учреждении с наименьшими затратами.
Разработка системы контроля местоположения сотрудников на основе мобильных устройств
После проведения анализа и обоснования необходимости создания ИС приступаем к этапу проектирования. Основным компонентом ИС является база данных (БД). Для разработки структуры БД можно использовать различные средства проектирования: DBDesigner, Umbrello, Silverrun, DBShema, Schema Designer, Toad Data Modeler, Erwin и другие.
Наиболее удобно в учебном процессе использовать инструменты в виде Web-сервисов, поскольку они не требуют установки и развертывания, что в учебных аудиториях может вызвать проблемы из-за ограничения прав доступа и необходимости привлечения системных администраторов. Одним из таких сервисов является DBDesigner.ru [5].
Также удобно использовать локальные программы, не требующие инсталляции, например, Silverrun.
База данных должна содержать сведения о студентах, идентификаторы их устройств, время входа в сеть и время выхода. Для исключения дублирования данных базу представим в виде двух таблиц: users - таблица с информацией о студентах (Таблица 1) и times - таблица с информацией о времени входа/выхода сотрудниках (Таблица 2).

Таблица 1. Структура таблицы users

Название столбца

Тип данных

Индекс

id_user

int

первичный ключ

Name

varchar(20)


Mac

char(17)



Таблица 2. Структура таблицы times

Название столбца

Тип данных

Индекс

id_times

int

первичный ключ

time_beg

timestamp


time_end

timestamp


user_num

int

внешний ключ

connect

tinyint(1)



Рассмотрим данные структуры (рис.1).
В таблице users:
  • id_user – целое значение, уникальный идентификатор студентов (последовательность натуральных чисел), является первичным ключом;
  • name – строковый тип, фамилиями и инициалы;
  • mac – mac-адрес (физический адрес) мобильного устройства.
Таблица times:
  • id_times – уникальный идентификатор (первичный ключ);
  • time_beg – тип дата и время, время подключения мобильного устройства к сети (входа в аудиторию студента);
  • time_end – время отключения мобильного устройства от сети;
  • user_num – поле с номером студента, является внешним ключом, который связывается с id_user из таблицы users;
  • connect – соединение, с первичным значением в текущий момент времени.

Рис. 1. Структура БД


В свойствах полей id_user и id_times необходимо указать PrimaryKey и auto_increment (первичный ключ, автоматическая нумерация).
Структура базы готова. Экспортируем базу в формат MySQL.
Для работы с базой данных необходимо выбрать и установить сервер базы данных и среду программирования. Мы предлагаем использовать в учебном процессе свободно-распространяемый пакет программ OpenServer, который содержит:
— выбор HTTP, СУБД и PHP модулей в любом сочетании;
— создание локального поддомена без потери видимости основного домена в сети интернет;
— доступ к доменам (в один клик) и быстрый доступ к шаблонам конфигурации модулей;
— мультиязычный интерфейс (Русский, Украинский, Белорусский, Английский);
Для работы с базой данных запустим модуль PhpMyAdmin. Выполним импорт базы из SQL файла и заполним первую таблицу (вторая будет заполняться автоматически).
Для написания программной части удобно использовать язык PHP, поскольку он уже входит в пакет OpenServer, предназначен для разработки WEB-интерфейса, имеет встроенный функции для работы с базой данных.
Система будет отслеживать подключения устройств к сети wi-fi, и выполнять сравнение их идентификаторов с MAC-адресами из базы. По результатам проверки в базу записывается информация о новом посещении пользователя устройства либо о его выходе из зоны действия.
Программа будет выводить:
  • имена зарегистрированных студентов;
  • время входа и выхода студентов в сеть;
  • предупреждения о нештатных ситуациях (например, не удалось выполнить запрос к базе данных).
Примеры вывода данных представлены на рисунке (Рис. 2).

Рис.2. Пример вывода данных программы


Для работы программы необходимо проводить сканирование MAC адресов устройств, подключенных к wi-fi сети. Для этого программа запускает командную строку системы Microsoft Windows, передавая ей аргументы и читая её вывод с помощью, встроенной в язык PHP инструкции exec. Использованы следующие команды:
arp –a
• ping <IP-адрес> -n 1.
Диапазон IP адресов для подключения устройств к WI-FI сети можно задать в настройках роутера.
В ответ на выполнение формируется массив строк, представляющий собой построчный вывод команды в консоль (командную строку).
Сначала выполняем проверку связи с устройствами, например, для них выделены IP адреса с 192.168.1.30 по 192.168.1.40, результаты проверки записываем в массив:
for ($i=30; $i<40; $i++) {
$str = "ping -n 1 192.168.1.$i > nul";
exec ($str, $outp);
}
exec ("arp /a", $outa);
Устанавливаем доступ к базе данных:
$host = 'localhost';
$user = 'root';
$password = 'root';
$db_name = 'wi-fi';
Выполняем соединение с базой данных:
$link = mysqli_connect ($host, $user, $password, $db_name);
В начале определим, кто находится в аудитории, для этого в начале записываем в поле connect таблицы times значение FALSE:
$str = 'UPDATE times SET connect=false;';
mysqli_query ($link, $str);
Теперь ищем тех, кто присутствует, то есть находится в диапазоне сети Wi-Fi, для этого выделяем IP и МAC адреса и находим их в массиве:
foreach ($outa as $key=>$str) {
if ($key<3) continue;
$str = trim ($str, ' ');
$ip = substr ($str,0, strpos($str,'-')-2);
$mac = substr ($str, strpos($str, '-')-2, 17);
Ищем МАС адреса в таблице users, если есть вставляем имя пользователя в таблицу times (если такого нет), что означает что студент пришел в аудиторию, также записываем время его прихода:
$str = 'SET @n = (select name from users WHERE mac = "'.$mac.'");';
mysqli_query ($link, $str);
$str = 'SET @t = (select time_end from times WHERE user = @n order by id_times desc limit 1);';
mysqli_query ($link, $str);
$str = 'INSERT INTO times (user,time_beg, ip) se-lect name, now(),"'.$ip.'" from users where name = @n AND (not EXISTS (select user from times WHERE user = @n) OR EXISTS (select user from times WHERE user = @n AND @t IS NOT NULL));';
mysqli_query ($link, $str);
Если устройство с МАС адресом в сети найдено, то устанавливаем значение TRUE в поле connect в таблице times:
$str = 'UPDATE times SET connect = TRUE WHERE user = @n and time_end is null;';
mysqli_query ($link, $str);
}
Если устройство с МАС адресом в сети не найдено, но, при этом ранее в таблице его владелец присутствовал, то устанавливаем время окончания его работы time_end в таблице times:
$str = 'UPDATE times SET time_end = now() WHERE connect is FALSE and time_end is null;';
mysqli_query ($link, $str);
Далее выводим сводную таблицу, содержащую фамилии и время входа и выхода студентов на экран (рис.2).
Во всех случаях для обращения к базе данных используется встроенная в язык PHP инструкция mysqli_query.
В конце выполнения скрипта закрывается связь с базой данных:
mysqli_close ($link);
Данный скрипт помещается в созданный на сервере сайт, после чего он доступен по адресу http://localhost:<порт_сайта>/1.php.
Для проверки нахождения устройств в сети необходимо периодически выполнять связь с этими устройствами. Для этого удобно выполнять программу по заданному расписанию с помощью планировщика задач (Task Scheduler), например, каждые 15 минут.
Таким образом, нами реализована информационная система для контроля посещаемости студентов на основе мобильных устройств, которая работает полностью в автоматическом режиме. Разработанная система позволяет, например, вести журнал посещаемости студентов в виде электронной таблицы, при этом не требуется никаких действий со стороны преподавателя или обучаемых. Необходимо лишь один раз ввести в базу данных MAC-адреса устройств и фамилии студентов.

Литература:
1. Грекул В.И. Проектирование информационных систем / В.И. Грекул, Г.Н. Денищенко, Н.Л. Коровкина. – М.: Бином, 2010.– С. 300.
2. Коберн А. Быстрая разработка программного обеспечения / А. Коберн . – М.: Лори, 2013.–С. 314.
3. Кон М. Scrum: гибкая разработка ПО / М. Кон. – М.: Вильямс, 2011. – С.576.
4. Кон М. Пользовательские истории. Гибкая разработка программного обеспечения / М. Кон. – М.: Вильямс, 2012 . – С.256.
5. Кудрявцев А.В. Изучение дисциплины «информационные системы» методом проектов. // Развитие современного вуза: новые методы и технологии. Нагорнова А.Ю., Виниченко М.А., Ли Н., и др. Коллективная монография. Отв. редактор А.Ю. Нагорнова. Ульяновск, 2021. С. 163-175.
6. Кудрявцев А.В. Использование web-сервисов для формирования навыков проектирования информационных систем. // Формирование мышления в процессе обучения естественнонаучным, технологическим и математическим дисциплинам: материалы Всероссийской научно-практической конференции, 1-2 апреля 2019 г., Екатеринбург, Россия / Урал. гос. пед. ун-т ; отв. ред. Т. Н. Шамало. – Екатеринбург: [б. и.], 2019. –– С. 92-97.
7. Ларман К. Применение UML 2.0 и шаблонов проектирования / К. Ларман. – М.: Вильямс, 2013. – С. 736.
8. Солонин Е.Б. Современные методики разработки информационных систем. учебное электронное текстовое издание: [методические рекомендации к самостоятельным работам]. / Е.Б. Солонин. - Екатеринбург.: УрФУ им. первого Президента России Б. Н. Ельцина, 2015. - 44 с.
9. Фаулер М. Рефакторинг. Улучшение существующего кода /М. Фаулер, К. Бек, Дж. Брант [и др.]. СПб.: Символ-Плюс, 2013 – С. 432.
ВОПРОСЫ И КОММЕНТАРИИ
Made on
Tilda