Допустить к защите в гак заведующий кафедрой кандидат физико-математических наук, доцент Ю. В. Кольцов 2015г. Выпускная квалификационная работа бакалавра информационная система для мобильных устройств


Основные бизнес-процессы приложения


Download 0.65 Mb.
bet10/13
Sana23.10.2023
Hajmi0.65 Mb.
#1717149
TuriРасписание
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
bibliofond.ru 863400


2.3 Основные бизнес-процессы приложения


Основными объектами при работе с расписанием являются Schedule (занятие по расписанию) и Replacement (одноразовое занятие или однократная замена занятия по расписанию). Объекты Schedule и Replacement являются практически идентичными объектами, различаясь только тем, что Replacement назначается на конкретную дату, а Schedule имеет поле, называемое CyclePosition - позицию в цикле занятий.


Цикл занятий определяется в объекте сущности AppConfiguration. Объектов типа AppConfiguration в системе может быть сколь угодно много, однако активная конфигурация может быть только одна (определяется булевым полем active). Помимо этого, объекты AppConfiguration определяют параметры цикла занятий. Цикл занятий определяется тремя параметрами: длина цикла занятий (целое число), дата начала отсчета цикла занятий (дата) и свободные от занятий дни (массив целых чисел, нумерация свободных от занятий дней в цикле занятий - с единицы). Дата начала цикла и длина цикла служат для отображения объектов типа Schedule на реальные даты, используя данные поля cyclePosition. Поле свободных от занятий дней служит для выполнения ограничений целостности: нельзя создать занятие с cyclePosition, если данная позиция обозначена как свободный от занятий день, а также нельзя сделать конфигурацию активной, если хотя бы одно занятие по расписанию не удовлетворяет условиям длины цикла занятий и свободных от занятий дней.
Механизм получения расписания следующий. Система получает на вход три параметра: дата начала периода, дата конца периода, объединение, для которого должно быть выбрано расписание. Затем происходит итерирование по всем дням, находящимся между датой начала периода и датой окончания периода, для каждой даты вычисляется позиция в цикле, и система производит выборку из базы данных занятий, для которых cyclePosition равна значению текущей позиции. После получения выборки система удаляет поле cyclePosition и заменяет его на значение даты, которое находится в данный момент в переменной-итераторе (итераторе цикла, по которому перебираются даты между началом периода и концом периода).
Обработка замен и одноразовых занятий происходит после того, как все занятия по расписанию получены. Система выбирает из базы данных одноразовые занятия, дата свершения которых находится между первыми двумя входными параметрами системы: датой начала периода и датой окончания периода. Затем происходит проверка каждого занятия, не зарезервировано ли время для него занятием по расписанию. Если на указанное время есть занятие, то полученное одноразовое занятие - замена, занятие по расписанию в выборке (но не в базе данных) удаляется, и вместо него перезаписывается текущее одноразовое занятие. В противном случае занятие просто добавляется в общую выборку и полученный результат является выводом функции получения расписания.
Механизм уведомлений опирается на три вида сущностей: объединение, пользователь и собственно уведомление. Каждый пользователь имеет в базе данных поле readUnions, которое указывает, какие объединения пользователь «читает», иными словами, от каких объединений он хочет получать уведомления. Также у пользователя есть аналогичное по структуре поле managedUnions, которое содержит информацию об объединениях, которыми пользователь может управлять. При создании уведомления пользователь может указать в целевых объединениях только те, которые содержатся в его списке managedUnions. Если всё указано верно, то система регистрирует уведомление, производит выборку пользователей и рассылает уведомления тем пользователям, пересечение списков которых со списком целевых объединений уведомления не является пустым.

Download 0.65 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling