Актуальность
Привычный и прошедший несколько десятков лет процесс обработки документа технического задания должен остаться в прошлом. Поскольку в наше время существуют технологии, позволяющие сократить время процесса обработки документа технического задания, следует полностью отказаться от представления его на бумажном носителе.
На начальном этапе решения поставленной задачи следует исследовать рынок программного обеспечения, направленного на обработку документов в высших и средне-специальных учебных заведениях. В результате исследования рынка программного обеспечения выяснилось, что не существует ни одного решения поставленной задачи. На рынке программного обеспечения занимают свою нишу erp-системы (к примеру, «Галактика»), но они решают другие задачи.
На следующем этапе решения проблемы следовало разработать структуру базы данных и графический интерфейс пользователя клиентского приложения. Для работы с приложением пользователь любой операционной системы не должен был бы испытывать проблем с запуском, поэтому кроссплатформенность - это жесткое требование к разрабатываемому приложению. Системой, отвечающей за управление базой данных, была выбрана MySQL. Выбор СУБД MySQL обуславливается рядом её преимуществ:
- бесплатная СУБД, что отличает ее от других дорогостоящих продуктов;
- многопоточность - поддержка нескольких одновременных запросов;
- оптимизация связей с присоединением многих данных за один проход;
- записи фиксированной и переменной длины;
- гибкая система привилегий и паролей;
- до 16 ключей в таблице, каждый ключ может иметь до 15 полей;
- гибкая поддержка форматов чисел, строк переменной длины иметок времени;
- быстрая поддержка транзакций через механизм InnoDB.
База данных состоит из 13 таблиц, содержащих информацию о заданиях на курсовое проектирование, темах курсовых проектов, студентах, факультетах, кафедрах, дисциплинах, преподавателях, а также об аутентификационных данных пользователей, имеющих административный доступ к системе.
Построение графического интерфейса проводилось при помощи графических элементов в интегрированной среде разработки «NetBeans». Первая пробная версия приложения представляла собой прикладную программу, написанную на языке программирования Java. Преимущество данного выбора заключалось в кроссплатформенности. Но, с другой стороны, чтобы достичь требуемой кроссплатформенности, необходимо на каждой физической машине установить виртуальную java-машину или плагин для веб-браузера. Разработка в этом ключе была остановлена. Следующий и окончательный выбор платформы для разработки приложения пал на серверный язык программирования PHP 5 и язык гипертекстовой разметки HTML 5. Для построения гибкого и удобного графического интерфейса используется CSS 3. За динамическое обновление информации в приложении отвечает технология AJAX. Выбор именно этой технологии был обусловлен следующими критериями:
- экономиятрафикапользователя (вместо обновления всей страницы, загружается ее небольшая изменившаяся часть);
- снижение нагрузки на сервер. К примеру, на странице личных сообщений в приложении при выделении пользователем прочитанных писем сервер вносит изменения в БД и отправляет скрипту клиента ответ о выполнении операции без повторного создания страницы и ее передачи;
- ускорение реагирования интерфейса на команды пользователя.
Работать в системе одновременно могут несколько пользователей с разными уровнями доступа. При входе в систему производится парольная аутентификация пользователя, в ходе которой определяется, с какой функциональной ролью пользователь продолжит работу в системе. В системе предусмотрено 5 функциональных ролей работы в системе: при входе в систему производится парольная аутентификация пользователя, в ходе которой определяется, с какой функциональной ролью пользователь войдет в систему. В системе предусмотрено 5 функциональных ролей работы в системе.
Администратор ресурса. За этой функциональной ролью закреплены следующие возможности:
- управление факультетами;
- управление администраторами факультета;
- управление уровнями доступа к системе;
- управление новостями.
Администратор факультета. За этой функциональной ролью закреплены следующие возможности:
- управление кафедрами;
- управление администраторами кафедры;
- управление новостями.
Администратор кафедры. За этой функциональной ролью закреплены следующие возможности:
- управление группами;
- управление студентами;
- управление дисциплинами;
- управление преподавателями;
- управление темами курсовых работ;
- управление новостями.
Преподаватель. За этой функциональной ролью закреплены следующие возможности:
- управление закрепленными за преподавателем темами курсовых работ;
- управление новостями.
Студент. За этой функциональной ролью закреплены следующие возможности:
- управление закрепленными за студентом темами на курсовое проектирование.
Ядро системы спроектировано по принципу модульности. Модульность в системе достигается за счет разделения всех функциональных ролей пользователей на отдельную, независимую друг от друга сущность. Так, при первом запуске веб-приложения неавторизованному пользователю открывается веб-страница с двумя текстовыми полями ввода. Для успешной авторизации в системе необходимо ввести в поля ввода имеющиеся у каждого пользователя имя (т.н. логин) и уникальный пароль. По выстроенной иерархии функциональных ролей первое звено занимает администратор ресурса. Логин и уникальный пароль для администратора ресурса назначает системный администратор, проводивший установку и первичную настройку системы под конкретное учебное заведение. В случае успешной авторизации в качестве администратора ресурса, система отображает пользователю модуль управления учебным заведением, располагающийся в каталоге отдельно от остальных модулей других функциональных ролей. Авторизация в системе под остальными функциональными ролями проходит по аналогичному принципу, описанному выше.
Выгодность системы заключается в том, что установка и первичная настройка под выбранное высшее учебное заведение затрачивает минимум времени и финансирования.
Рис. 1. Структура автоматизированной системы
Применение «Алгоритма Шинглов» в поиске нечетких дубликатов
Плагиат с появлением Интернета превратился в серьёзную проблему. Попав в Интернет, знание становится достоянием всех, соблюдать авторское право становится всё труднее и даже невозможно. Постепенно становится сложнее идентифицировать первоначального автора.
Поиск нечетких дубликатов позволяет предположить, являются ли два объекта частично одинаковыми или нет.
Задачей не стоит определить абсолютное значение схожести объектов, а также выделения в каждом из объектов схожих частей. Нам необходимо только предположить, являются ли объекты почти дубликатами или нет.
Суть алгоритма
Итак, мы имеем 2 текста и нам нужно предположить, являются ли они почти дубликатами. Реализация алгоритма подразумевает несколько этапов:
- канонизация текстов;
- разбиение текста нашинглы;
- нахождение контрольных сумм;
- поиск одинаковых подпоследовательностей.
Канонизация текста
Канонизация текста приводит оригинальный текст к единой нормальной форме.
Текст очищается от предлогов, союзов, знаков препинания и прочего ненужного «мусора», который не должен участвовать в сравнении. Также удаляются из текста прилагательные, так как они не несут смысловой нагрузки.
Рис. 2. Последовательность действий при канонизации текста
Разбиение на шинглы
Необходимо из сравниваемых текстов выделить подпоследовательности слов, идущих друг за другом по 10 штук (длина шингла).
Таким образом, разбивая текст на подпоследовательности, мы получим набор шинглов в количестве равном количеству слов минус длина шингла плюс один (кол-во_слов - длина_шингла + 1).
Рис. 3. Последовательность действий при разбиении на шинглы
Нахождение контрольной суммы
Теперь у каждого из текстов имеются свои наборы шинглов. Следует рассчитать контрольную сумму каждого из шинглов. Для расчета можно использовать известный алгоритм MD5.
Рис. 4. Последовательность действий при нахождении контрольной суммы
Поиск одинаковых подпоследовательностей
И последний этап - сравнение.
Сравниваем между собой все элементы первого массива с соответствующими элементами второго массива, считаем отношение одинаковых значений, из этого получаем результат.
Рис. 5. Последовательность действий при сравнении элементов массива
Рецензенты:
Пащенко Д.В., д.т.н., профессор, заместитель заведующего кафедрой вычислительной техники Пензенского государственного университета, г. Пенза.
Фионова Л.Р., д.т.н., профессор, заведующая кафедрой информационного обеспечения управления и производства Пензенского государственного университета, г. Пенза.