В панели "управление праздниками" администратор может добавлять, удалять и редактировать даты праздничных дней. Функция сделана для того, чтобы при распределении нарядов праздничные дни также учитывались, как и выходные. Праздничные дни фиксируются в нескольких подсистемах:
1. просмотр нарядов - праздничные дни, как и выходные, отмечаются отличительным цветом;
2. просмотр профиль пользователя - при составлении сводной таблицы нарядов, праздничные дни учитываются;
3. распределение нарядов - в процессе планирования и распределения праздничные дни влияют на статистику и выставление нарядов.
В панели "виды нарядов" администратор имеет возможность добавлять, удалять и редактировать виды нарядов, которые используются во всей системе. Предусмотрено два поля для описания вида наряда:
1. сокращение - служит для краткого отображения вида наряда в общей таблице нарядов подразделения;
2. полное описание - для расшифровки сокращения.
В данной подсистеме реализованы диалоги между пользователями системы. Обмен мгновенными сообщениями представляет собой отдельную страницу в защищенной части системы. Он реализуется через передачу информации из общей базы, данных в систему и, наоборот, из системы в общую базу данных. Мгновенное сообщение ограничено по размеру. Существует возможность выбрать пользователя, которому будет адресовано сообщение, из общего списка, где включены не только пользователи разрабатываемого личного кабинета сотрудника учебного отдела, но и пользователи всей системы. На этой же странице есть возможность просмотреть полученные сообщения от других пользователей.
Данный модуль содержит следующие компоненты:
. выбор пользователя, которому необходимо отправить сообщение;
2. набор и отправка сообщения;
. получение сообщений от пользователей;
. визуальное оповещение о том, что получено новое сообщение (не зависимо от того, в каком модуле системы работает пользователь);
. очистка диалоговых окон.
Таким образом, подсистема решает следующие задачи:
. обеспечивает связь и взаимодействие между пользователями системы, что уменьшает временные затраты;
2. дает возможность не обращаться к иным программам, служащих для обмена подобной "разговорной" информации, что, в свою очередь, делает данную систему более удобной и исключает потребность в использовании несанкционированных программных компонентов;
. возможность перехода к любому другому модулю системы или выход из нее.
В подсистеме "просмотра нарядов" имеются 3 режима:
1. режим просмотра нарядов за подразделение;
2. режим просмотра нарядов за подчиненное подразделение;
3. режим просмотра нарядов за конкретного пользователя.
В каждый день заступает определенно количество военнослужащих на соответствующие виды нарядов.
Неавторизированные пользователи не могут просматривать расписание нарядов. Авторизированные же имеют такую возможность. Расписание представляет собой календарь на месяц. День месяца включает в себя:
. вид наряда;
2. номер кафедры (факультета), военнослужащий которой заступает в наряд;
. фамилия заступающего офицера.
В первом режиме формируется страница со сводной таблицей нарядов за подразделение в целом на месяц, по всем кафедрам, факультетам и военнослужащим, как описано выше.
Во втором режиме, в случае, если указан идентификатор подразделения - на экран выводится сводная таблица нарядов на месяц указанного подразделения, будь то факультет или кафедра.
В третьем режиме каждый авторизированный пользователь может просматривать наряды любого пользователя отдельно, в том числе и свои. В первом случае необходимо перейти на страницу просмотра профиля, интересующего пользователя, там перейти по ссылке "Посмотреть наряды". Во втором случае достаточно перейти по ссылке "Мои наряды" в верхнем меню. При наличии новых нарядов, рядом с этой ссылкой находится целочисленное значение, характеризующее количество неподтвержденных нарядов.
При просмотре своих нарядов пользователь должен либо
подтвердить согласие заступать в наряд на конкретную дату, либо опровергнуть.
Этот механизм реализован с помощью двух кнопок. Первая кнопка подтверждает
согласие, после чего оповещение об этом наряде будет отсутствовать. Вторая
адресует пользователя на страницу отправки сообщения, где пользователь должен
отправить сообщение своему непосредственному начальнику с указанием причины
невозможности заступления.
Рисунок 7 - Блок схема алгоритма формирования подсистемы "просмотра нарядов"
Подсистема - является ядром системы и позволяет непосредственно планировать и редактировать наряды подразделения. Данные функции возложены на следующие группы пользователей:
1. комендант;
2. начальник факультета или начальник кафедры.
Группы пользователей "офицер факультета" и "офицер кафедры" в изменении таблицы нарядов участия не принимают. В случае попытки несанкционированное воспользоваться подсистемой, будет выведено сообщение об ограничении доступа. Как было сказано ранее, в описании общей модели системы, комендант занимается планированием нарядов за подразделение, распределяя подчиненные подразделения по видам нарядов на каждый день месяца. В свою очередь начальник факультета или кафедры распределяет наряды на те дни, где имеются наряды на подчиненное подразделение и в определенные виды нарядов.
В подсистеме каждой выше указанной группы пользователей, планирующих наряды, существую 2 режима распределения:
1. ручное редактирование;
2. автоматический.
Общая схема функционирования подсистемы изображена на рисунке ниже.
Рисунок
8 - Общая блок схема функционирования подсистемы "планирования,
распределения и учета нарядов"
Автоматизированный режим подразумевает вмешательство пользователя в распределение нарядов, то есть, например, комендант назначает сам подразделение в определенный вид наряда на конкретный день, без какого-либо математического аппарата и статистики, другими словами - на свое усмотрение.
Отдельное внимание стоит уделить автоматическому режиму. Функциональная
схема автоматического режима может быть представлена следующим образом:
Рисунок
9 - Функциональная схема автоматического процесса распределения нарядов
На вход подсистемы подаем:
1. период времени, на который будет производиться распределение нарядов;
2. список подразделений, участвующих в распределении;
3. список военнослужащих, способных нести наряд;
4. факторы, влияющие на распределение, руководящие документы, уставы
На выходе мы получаем таблицу нарядов, на указанный период времени, спланированную определенным образом с учетом, влияющих факторов.
Отдельно рассмотри факторы, которые могут влиять на распределение нарядов в подразделении по подчиненным подразделениям, то есть в автоматическом режиме от лица коменданта:
1. процент нарядов в выходные и праздничные дни от общего количества нарядов в прошлом месяце за конкретное подчиненное подразделение;
2. процент нарядов в будни дни конкретного подчиненного подразделения от общего количества нарядов подразделения за прошлый месяц;
3. процент нарядов в выходные и праздничные дни конкретного подчиненного подразделения от общего количества нарядов подразделения за прошлый месяц;
4. в процессе распределения нарядов на день преимущественно не ставится подчиненное подразделение в несколько видов нарядов;
5. при равной статистике нескольких подчиненных подразделений выбирается случайно подчиненное подразделение, которое будет выставлять наряд;
После распределения нарядов по подчиненным подразделениям, в случае режима от лица коменданта, выполняется функция распределения нарядов по пользователям, у начальника кафедры и начальника факультета присутствует лишь эта функция, распределение нарядов по подчиненным подразделениям в данных типах профилей не доступна.
Далее представлены факторы, которые влияют на планирование нарядов по подчиненным пользователям:
1. процент нарядов в выходные и праздничные дни от общего количества нарядов пользователя в прошлом месяце;
2. процент нарядов в будни дни конкретного пользователя от общего количества нарядов подразделения, в котором он состоит, за прошлый месяц;
3. процент нарядов в выходные и праздничные дни пользователя от общего количества нарядов подразделения, в котором он состоит, за прошлый месяц;
4. в процессе распределения нарядов на день учитывается нахождение военнослужащего в наряде на прошлый, текущий и следующий день, другими словами - военнослужащий не будет поставлен в наряд сегодня, если он стоит уже в наряде, либо сегодня заступает в другой вид наряда, либо завтра заступает в наряд;
5. проверятся возможность военнослужащего в определённой должности заступать в соответствующие виды нарядов;
6. в случае, если у военнослужащего на определенную дату отмечено знаменательное событие, которое указывается в подсистеме "первоначального ввода и редактирования личных данных", то у него есть преимущественное право не заступать в этот день в наряд, кроме того случая, если больше из его подразделения некому идти в наряд.
Рисунок 10 - Структура базы данных
База данных хранится и обрабатывается в вычислительной системе на сервере. Данные в ней логически структурированы с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе. Структурированность подразумевает ясное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определенная семантика и допустимые операции.
База данных системы является реляционной, то есть основанной на реляционной модели данных. Такие модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
1. каждый элемент таблицы - один элемент данных;
2. все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют однородный тип (числовой, строковый и т.д.);
3. каждый столбец имеет уникальное имя;
4. одинаковые строки в таблице отсутствуют;
5. порядок следования строк в столбце может быть произвольным.
База данных приведена к пятой нормальной форме - это значит, что каждая нетривиальная зависимость соединения в ней определяется потенциальным ключом (ключами) этого отношения. Состоит из 13 сущностей, логически связанных между собой. Можно выделить три основных сущности:
1. kaf_users - сущность, хранящая в себе данные обо всех пользователях, зарегистрированных в системе. По уникальному атрибуту"id" связана с сущностями: kaf_session, kaf_mail, kaf_holidays, kaf_duty;
2. kaf_duty - экземпляры данной сущности описывают наряды в системе;
3. kaf_units - сущность, которая служи для хранения информации о всех подчиненных подразделениях (факультеты, кафедры).
Остальные сущности являются вспомогательными, но также необходимы для функционирования системы. О каждой подробнее:
1. kaf_session -данные сессий пользователей;
2. kaf_mail -личные сообщения пользователей;
3. kaf_holidays - информация о праздниках пользователей и общих праздниках подразделения;
4. kaf_dutyTypes - виды нарядов (дежурный по филиалу, помощник дежурного по филиалу и т.д.);
5. kaf_ranks - виды званий военнослужащих (лейтенант, полковник и.д.);
6. kaf_usersRoles - типы профилей пользователей (комендант, офицер факультета и т.д.);
7. kaf_jobs - должности военнослужащих (начальник кафедры, курсовой офицер и т.д.);
8. kaf_unitsType - тип подразделения(факультет, кафедра);
9. kaf_fucks - подчиненные подразделения (факультеты);
10. kaf_kafs - подчиненные подразделения (кафедры);
Выводы по второй главе
Во второй главе были разработаны: общая модель функционирования системы планирования и учета нарядов, структурная схема системы и функциональная схема взаимодействия подсистем. Была проведена декомпозиция отдельных работ, на основании которой разработана база данных данной системы.