close

Вход

Забыли?

вход по аккаунту

Полковников Иван Андреевич.Разработка программного комплекса «Электронная очередь»

код для вставки
АННОТАЦИЯ
ВКР 86 с., 23 рис., 8 табл., 19 источников.
АНАЛИЗ, РАЗРАБОТКА, ЭЛЕКТРОННАЯ ОЧЕРЕДЬ, ПРОГРАММНЫЙ
КОМПЛЕКС,
ИНФОРМАЦИОННАЯ
СИСТЕМА,
ИНТЕРНЕТ-СЕРВИС,
ТЕХНОЛОГИЯ КЛИЕНТ-СЕРВЕР, АВТОМАТИЗАЦИЯ ДЕЯТЕЛЬНОСТИ.
Выпускная квалификационная работа посвящена анализу и разработке
программного комплекса «Электронная очередь».
Выпускная квалификационная работа состоит из введения, трех глав,
заключения, списка литературы и приложения.
В первой главе обосновывается актуальность данной работы, производится
описание предметной области, формализация процесса сбора и анализа данных,
анализ
существующих
нефункциональные
аналогов,
требования
к
разрабатываются
программе
и
функциональные
обосновывается
и
выбор
инструментальных средств технической разработки.
Во второй главе описывается структура приложения, производится
проектирование базы данных и разработка алгоритмов для реализации
спецификаций,
определённых
ранее.
Проектируется
логика
диалога
с
пользователем
В третьей главе изложены особенности функционирования приложений,
входящих
в состав программного комплекса «Электронная очередь»
и
продемонстрированы экранные формы их работы
В заключении сделаны основные выводы по выпускной квалификационной
работе.
Новизна выполненной работы заключается в разработке нового интернетсервиса, позволяющего осуществлять управление очередью клиентов.
4
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
6
1 АНАЛИЗ ЗАДАЧИ РАЗРАБОТКИ ПРОГРАММНОГО КОМПЛЕКСА
«ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
1.1
Обзор
аналогов
разрабатываемого
9
программного
комплекса
«Электронная очередь»
9
1.2 Формализация процесса управления очередью
14
1.3 Разработка требований к системе
24
1.3.1 Разработка функциональных требований
24
1.3.2 Разработка нефункциональных требований
25
1.4 Создание диаграммы вариантов использования в нотации UML
25
2 РАЗРАБОТКА ПРОГРАММНОГО КОМПЛЕКСА «ЭЛЕКТРОННАЯ
ОЧЕРЕДЬ»
30
2.1 Обоснование выбора инструментальных средств разработки
30
2.2 Определение общей структуры системы
36
38
об
47
сл
об
48
уж
сл
об
ив
49
уж
сл
ан
об
ив
50
уж
ия
сл
ан
об
ив
кл
51
уж
ия
сл
ан
51
ие
об
ив
кл
уж
54
ия
нт
сл
ан
ие
ив
об
кл
56
ов
уж
ия
ан
нт
сл
ие
об
дл
ив
кл
ов
ия
уж
нт
сл
яие
ан
дл
кл
ив
ов
58
уж
ор
ия
нт
яие
ан
дл
об
ив
га
кл
ов
ор
нт
60
ия
яни
сл
ан
ие
дл
га
ов
об
кл
ор
уж
ия
за
янт
ни
дл
сл
ие
га
ив
кл
ци
ов
ор
за
янт
61
уж
ни
ан
ие
и,
дл
га
ци
ор
об
ив
ов
за
ия
нт
ис
яи,
ни
га
сл
ан
дл
ци
кл
ов
по
ор
за
62
ис
ни
уж
ия
яль
и,
ие
дл
га
ци
об
по
за
ив
кл
ор
ис
нт
ясл
зу
ни
и,
ль
ци
ан
ие
га
по
ов
ор
ю
за
ис
уж
и,
зу
ия
нт
ни
ль
дл
га
щ
ци
по
2.3 Проектирование схемы базы данных
2.4 Ограничения целостности и безопасность базы данных
2.4.1 Ограничения на значения атрибутов
2.4.2 Выбор стратегий целостности для связей
2.5 Разработка алгоритмов функционирования системы
2.5.1 Разработка алгоритма обработки события «Прибытие клиента»
2.5.2 Разработка алгоритма выбора окна обслуживания
2.5.3 Разработка алгоритма расчёта занятости сотрудника
2.5.4 Разработка алгоритма обработки события «Окончание
обслуживания»
2.6 Проектирование логики диалога с пользователем
2.6.1 Проектирование интерфейса элемента программного комплекса
«Клиентское приложение»
2.6.2 Проектирование интерфейса элемента программного комплекса
«Рабочее место оператора»
5
2.6.3 Проектирование интерфейса элемента программного комплекса
«Рабочее место администратора»
64
3 ОПИСАНИЕ ПРОГРАММНЫХ СРЕДСТВ, ВХОДЯЩИЙ В СОСТАВ
КОМПЛЕКСА «ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
69
3.1 Описание работы программного средства «Клиентское приложение»
69
3.2 Описание работы программного средства «Рабочее место оператора»
70
3.3 Описание работы программного средства «Рабочее место
администратора»
72
ЗАКЛЮЧЕНИЕ
75
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
76
ПРИЛОЖЕНИЕ А (ОБЯЗАТЕЛЬНОЕ) ФРАГМЕНТЫ ЛИСТИНГА
ПРОГРАММНОГО КОМПЛЕКСА «ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
УДОСТОВЕРЯЮЩИЙ ЛИСТ
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
78
84
об
сл
уж
85
ив
об
ан
сл
ия
уж
кл
ив
ие
ан
нт
ия
ов
кл
дл
ие
янт
ор
ов
га
дл
ни
я
за
ор
ци
га
и,
ни
ис
за
по
ци
ль
и,
зу
ис
ю
по
щ
ль
ий
зу
ра
ю
зр
щ
аб
ий
ат
ра
ыв
6
ВВЕДЕНИЕ
В настоящее время во многих организациях остро стоит проблема длинных
очередей
клиентов.
Длинные
очереди
вносят
хаос
в
нормальное
функционирование процесса обслуживания и создают дискомфорт, в первую
очередь для самих клиентов. Очередь является неизбежным явлением
практически
в
любом
учреждении.
Поток
клиентов
всегда
носит
непредсказуемый характер, следовательно, независимо от времени общения с
каждым из них, возможно образование очередей.
Главная задача системы электронной очереди – распределение потока
посетителей по времени в течение дня и по сотрудникам, ведущим прием
граждан. Иными словами, с помощью такой системы можно упорядочить и
сделать цивилизованным обслуживание посетителей, создать благоприятные
психологические
условия
для
посетителей
и
сотрудников,
исключить
конфликты и споры в очередях. При этом качество обслуживания посетителей
значительно улучшается, как и уровень удовлетворенности самих клиентов
работой
организации.
предоставляющие
услуги
С
помощью
населению,
такой
дают
системы
организации,
гражданам
возможность
самостоятельно записываться на прием через Интернет, осуществлять
предварительную запись к специалистам, потребители могут удаленно
распечатывать талон на обслуживание. Часто система электронной очереди
является и удобным инструментом управленческого учета. В частности, в
системе можно формировать аналитические отчеты для оценки качества работы
учреждения, а также обеспечивать контроль за работой персонала. С помощью
такой информационной системы можно оценивать востребованность услуг,
оперативность работы операторов, степень их загруженности и другие
параметры.
Актуальность данной выпускной квалификационной работы обусловлена в
том
числе
и
тем
фактом,
что
улучшение
качества
предоставления
муниципальных и государственных услуг – один из приоритетов государства
7
сегодня,
а
программный
комплекс
«Электронная
очередь»
является
эффективным инструментом повышения качества и уровня удовлетворенности
потребителей. Если же говорить об актуальности данной разработки в аспекте
бизнес-компаний,
то
нельзя
не
упомянуть
о
таком
термине
как
клиентоориентированность. Клиентоориентированность – это выставление
интересов
покупателя
(клиента)
превыше
всех
остальных.
Во
время
выполнения должностных обязанностей сотрудники часто оказываются перед
выбором,
удовлетворить
свои
потребности
или
клиента.
Клиентоориентированным сотрудником можно считать того, кто ставит
интересы
клиента выше
собственных
ежеминутных потребностей.
На
сегодняшний день все больше компаний стремится к выстраиванию системы по
удовлетворению
потребностей
клиента,
формированию
клиентоориентированности. Становится актуальным отслеживание изменений
потребностей клиентов, уделять внимание повышению ценности услуг и
продукта для клиента, в том числе повышать качество услуг. Внедрение
системы электронной очереди является важным шагом на пути принятия
принципов клиентоориентированности, основополагающих для современных
методов ведения бизнеса. Все это позволяет сделать вывод, что в целом
внедрение систем электронной очереди обусловлено вескими причинами,
целесообразно и решает ряд довольно актуальных проблем как в бюджетных
организациях, так и в условиях бизнес-модели организации предприятия.
Целью выпускной квалификационной работы является проектирование и
создание программного комплекса «Электронная очередь». Данный комплекс
будет представлять собой интернет-сервис, включающий в себя сервер с базой
данных и контактирующие с ним приложения-клиенты: «Рабочее место
администратора» для администраторов системы, «Рабочее место оператора»
для операторов, обслуживающих клиентов, и собственно «Клиентское
приложение» для самих клиентов, находящихся в очереди на исполнение
выбранной ими заявки.
8
Задачами выпускной квалификационной работы являются:
 анализ рынка систем управления очередью;
 формализация процесса управления очередью;
 разработка требований к системе;
 определение общей структуры программного комплекса;
 проектирование базы данных;
 разработка алгоритмов функционирования системы;
 проектирование интерфейса приложений, входящих в состав
программного комплекса;
 реализация программного комплекса.
9
1 АНАЛИЗ ЗАДАЧИ РАЗРАБОТКИ ПРОГРАММНОГО
КОМПЛЕКСА «ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
1.1 Обзор аналогов разрабатываемого программного комплекса
«Электронная очередь»
Основными факторами конкуренции на рынке систем управления
очередью сейчас являются технологические преимущества, условия поставки
(время
и
возможности
развертки
решения,
условия
обслуживания,
предлагаемое оборудование, возможности кастомизации и т.п.), а также цены,
наличие партнерской сети. По функциональным характеристикам самих
решений конкуренция практически не идет. Дело в том, что процесс,
автоматизируемый
системой
управления
очередью
(СУО)
конечен
и
константен, поэтому продукты ведущих вендоров, находясь в стадии зрелости,
более-менее равны по функционалу и прочим требованиям. Различие идет
только в инновационных функциях, вроде интеграции с SRM-системами,
дистанционной записи через интернет, SMS-интерфейсах.
В настоящее время рынок подобных систем представлен в основном
специализированными под конкретные условия программно-аппаратными
комплексами, часто громоздкими и дорогостоящими. Рассмотрим наиболее
популярные и распространённые подобные системы от различных компаний.
1. Компания «Дамаск» (www.damask.ru).
Изначально работала как одно из направлений крупного системного
интегратора «Группа компаний АСК», но выделилась в самостоятельное
направление. Компания с успехом продвигает оригинальную СУО собственной
разработки ДАМАСК. Концепция этого решения – аппаратная независимость,
использование типового оборудования и внедрение силами компанийпартнеров – оказалась очень удачной и востребованной на рынке идеей. В
результате, за четыре года компания заняла порядка 15-20% рынка (по оценке
самих специалистов Дамаск) и освоила почти всю территорию России.
Информация о ценах на данную систему предоставляются компанией только
10
после направления заявки, в которой подробно указываются необходимые
требования и условия эксплуатации. На рисунке 1 представлен скриншот
модуля «Рабочее место оператора» системы ДАМАСК.
Рисунок 1 – Скриншот модуля «Рабочее место оператора» системы
ДАМАСК
2. Компания «МетаТехнологическая Группа» (www.metatg.ru).
Один из старейших участников этого рынка (работает с 2004 года). Она
является дистрибьютором литовской системы «AKIS», поставляя к ней
оборудование и сервис, а также разработчиком собственной системы
МАКСИМА. Конечная цена за продукт зависит от конкретного программноаппаратного решения, выбор которого основывается на объемах охвата
системы, специфике предприятия и особых требованиях заказчика. Компания
предлагает гибкую схему оплаты за разработку и установку продукции для
каждого клиента. Возможно предоставление скидок в зависимости от
количества
приобретенного
оборудования
и
широты
функционала
автоматизированного решения МАКСИМА. На рисунке 2 представлен
скриншот модуля «Пульт СУО» системы МАКСИМА.
11
Рисунок 2 – Скриншот модуля «Пульт СУО» системы МАКСИМА
3. Компания «Вилдис» (www.vildis.ru).
Выходила на рынок СУО со стороны банковской сферы. Вотчиной
компании является производство оборудования для определения подлинности
(детекторы банкнот, определение подлинности ценных бумаг, экспертное
оборудование). Однако, зафиксировав в банковской сфере потребность в
автоматизации управления, компания выпустила свою систему управления
очередью – СУО «Вызов». Свою систему компания «Вилдис» выводила на
рынок позже всех, с 2009 года. Однако, используя агрессивную политику
демпинга и учитывая все уже имеющиеся на рынке наработки, они смогли
довольно быстро захватить определенную область рынка. Информация о ценах
на данное решение на официальном сайте отсутствует. На рисунке 3
представлен скриншот рабочего места оператора системы «Вызов».
12
Рисунок 3 – Скриншот рабочего места оператора системы «Вызов»
4. Q-Matic SE (www.q-matic.ru).
Значимым фактом, отмечающим формирование рынка, стал приход в
Россию в 2004 году шведской компании Q-Matic SE – крупнейшего в мире
вендора систем электронной очереди. Собственно, компания Q-Matic как раз и
придумала эти системы - ее основателем является шведский предприниматель
Пер Мартин Рун, внедривший прототип системы в своем ресторане в начале 80х годов. Сейчас у QMatic SE налажена дистрибуция по 110 странам и
зафиксировано более 25 000 инсталляций. Orchestra от компании QMatic SE —
это управленческая платформа корпоративного класса для развертывания на
локальных узлах или в облаке. Интегрированная система API и среда
формирования удовлетворенности клиентов обеспечивает эффективную работу
решения Orchestra во всех частях организации. Распределение операций
позволяет
развертывать
платформу
и
управлять
ей
из
единого
централизованного пункта, что обеспечивает бесперебойное выполнение
операций и высокую
удовлетворенность клиентов в любом филиале
организации по всему миру. На рисунке 4 представлен скриншот мобильного
клиента данного программного средства.
13
Рисунок 4 – Скриншот мобильного клиента решения Orchestra от
компании Q-Matic SE
Преимущества
обуславливаются
обслуживания
разрабатываемой
простотой
ввиду
настройки,
отсутствия
информационной
лёгкостью
дополнительных
системы
использования
и
специализированных
аппаратных устройств, а также поддержкой и совместимостью с любой
современной
ЭВМ
с
возможностью
выхода
в
Интернет
ввиду
кроссплатформенности предоставляемого веб-сервиса.
Актуальность разработки программного комплекса «Электронная очередь»
в экономическом аспекте также основывается на позиционировании и
ориентированности системы на малый бизнес, желающий выйти на новый
уровень качества обслуживания и предоставляемого сервиса. Малый бизнес –
14
это один из основных секторов рыночного хозяйства, который является
составной частью экономики страны и формирует существенную часть
государственного бюджета. Опыт развитых стран показывает, что малый
бизнес играет весьма и весьма большую роль в экономике, его развитие влияет
на экономический рост, на насыщение рынка товарами необходимого качества,
на создание новых дополнительных рабочих мест, то есть решает многие
экономические, социальные и другие проблемы. Малый бизнес в рыночной
экономике — это ведущий сектор, определяющий темпы экономического роста,
структуру и качество валового национального продукта во всех развитых
странах.
Разработка и внедрение современного, функционального, недорогого и
качественного программного обеспечения является одним из аспектов
поддержки и развития малого бизнеса.
Данная информационная система может быть выгодна для небольших
организаций, в которых, тем не менее, существует проблема очередей, но
отсутствует нужда в дорогостоящих и громоздких комплексах, часто
поставляемых только в комплекте с габаритными аппаратными средствами.
1.2 Формализация процесса управления очередью
Формализация процесса управления очередью в системе будет реализована
с помощью стандарта IDEF0.
IDEF0 — методология функционального моделирования и графическая
нотация, предназначенная для формализации и описания бизнес-процессов.
Отличительной особенностью IDEF0 является её акцент на соподчинённость
объектов. В IDEF0 рассматриваются логические отношения между работами, а
не их временная последовательность (поток работ).
Стандарт IDEF0 представляет организацию как набор модулей, здесь
существует правило — наиболее важная функция находится в верхнем левом
углу, кроме того есть правило стороны:

стрелка входа приходит всегда в левую кромку активности,
15

стрелка управления — в верхнюю кромку,

стрелка механизма — нижняя кромка,

стрелка выхода — правая кромка.
Описание выглядит как «чёрный ящик» с входами, выходами, управлением
и механизмом, который постепенно детализируется до необходимого уровня.
Также для того чтобы быть правильно понятым, существуют словари описания
активностей и стрелок. В этих словарях можно дать описания того, какой
смысл вкладывается в данную активность либо стрелку.
На рисунке 5 представлена контекстная диаграмма процесса «Управление
очередью».
Рисунок 5 – Контекстная диаграмма процесса «Управление очередью»
Для единственного входящего в состав контекстной диаграммы блока
«Управление очередью» входными данными являются данные о появлении
новых клиентов. Имеется в виду сам факт наличия нового клиента, решившего
стать в очередь на одну (или сразу несколько) из доступных операций.
«Информация о процессе обслуживания» также является входом в данный
блок.
Подразумевается
информация
о
работниках,
рабочих
местах,
производимых операциях и т.д., необходимая для настройки и регистрации
16
процесса обслуживания в системе. Управление для данного блока представлено
стрелками
«Внутренний
регламент»,
«Регламент
регистрации
процесса
обслуживания» и «Общие принципы очерёдности». Стрелки механизма –
«Работники»,
автоматизации
«Администратор»,
процесса
«Система»,
управления
«Клиенты».
очередью,
В
получаем
результате
следующие
результаты, отображённые в стрелках выхода: «Статистика обслуживания»,
сформированная и рассчитанная на основе полученных данных за какой-либо
период, «Обслуженные заявки» и «Архив», представляющий собой набор
записей о проведённых операциях и тому подобных данных из специальных
архивных таблиц. Архивные записи хранятся в специально отведённых для
этой цели таблицах базы данных. Доступ к таким записям имеют только
пользователи с правами администратора.
Единственная функция, представленная на контекстной диаграмме
верхнего уровня, может быть разложена на основные подфункции посредством
создания дочерней диаграммы.
Дочерняя диаграмма, создаваемая при
декомпозиции, охватывает ту же область, что и родительский блок, но
описывает ее более подробно. Таким образом, дочерняя диаграмма как бы
вложена в свой родительский блок. На рисунке 6 представлена детализация
процесса «Управление очередью».
Данная диаграмма состоит из шести функциональных блоков, два из
которых в дальнейшем будут декомпозированы, а остальные четыре являются
атомарными (они помечены косой чертой возле верхнего левого угла
функционального блока).
Блок «Создать процесс обслуживания» не является атомарным и
декомпозирован на более детальные операции. Он предназначен для создания,
настройки
и
последующей
регистрации
в
системе
нового
процесса
обслуживания.
Процессы обслуживания служат для обеспечения одновременной работы
сервиса с несколькими организациями.
17
Рисунок 6 – Детализация процесса «Управление очередью»
Под процессом обслуживания понимается совокупность данных об
особенностях организации работы каждого предприятия или организации,
внедряющей данную систему. Каждая такая совокупность имеет уникальный
идентификационный номер, позволяя однозначно установить, к какому
зарегистрированному процессу относятся те или иные данные. Входом для
данного блока является информация о процессе обслуживания, выходом –
зарегистрированные данные о процессе обслуживания. Механизмами являются:
администратор (поскольку именно он регистрирует процесс в системе) и
собственно система, производящая необходимые операции. Управление для
данного блока – стрелка «Регламент регистрации процесса обслуживания»
Блок «Начать новый рабочий день» является атомарным и предназначается
для перевода даты рабочего дня, позволяя установить работникам активные
статусы и начать обслуживание клиентов. На вход данному блоку подаются
зарегистрированные данные о процессе обслуживания, а выходом является
информация о текущем рабочем дне. Механизмом в данном случае является
администратор, инициирующий запуск процесса и сама система, а управлением
– внутренний регламент.
18
Блок «Обслужить клиентов» воплощает основной функционал системы.
Он
предназначен
для
выполнения
всех
необходимых
операций,
автоматизирующих процесс обслуживания клиентов в очереди, является
декомпозируемым. На вход данному блоку идут данные о появлении новых
клиентов и зарегистрированные данные о процессе обслуживания, выходом
являются следующие виды отчётов: отчёт о времени занятости работников,
отчёт о времени выполнения операций и отчёт об исполнении заявки. Кроме
того, стрелка «Обслуженные заявки» также является выходом. Управление для
данного блока – стрелки «Внутренний регламент» и «Общие принципы
очерёдности», а механизмами выступают работники, система и клиенты.
Блок «Завершить текущий рабочий день» является атомарным и
предназначается для остановки всех рабочих процессов и очищения данных о
текущих очередях. На вход подаётся информация о текущем рабочем дне и
зарегистрированные данные процесса обслуживания. На выходе получаем
отчёт о прошедшем рабочем дне. Механизмом в данном случае является
администратор, инициирующий запуск процесса и сама система, а управлением
– внутренний регламент.
Блок «Перенести записи в архив» предназначен для присвоения
накопленным данным архивного статуса, при котором они переносятся из
обычных таблиц в специальные таблицы, имеющие пометку «Архив», ускоряя
процессы взаимодействия с базой данных в виду уменьшения объёма хранимых
данных в неархивных таблицах. Блок является атомарным. Вход для него –
зарегистрированные данные процесса обслуживания и отчёт о прошедшем
рабочем дне. Выходом является совокупность архивных данных, помеченных
как «Архив». Управление здесь происходит при помощи внутреннего
регламента, а в роли механизмов выступают администратор и система.
Блок «Просмотреть статистическую информацию» предназначен для
расчёта и вывода статистики. Блок является атомарным. На вход ему подаются
отчёты различных видов, о времени занятости работников, о времени
выполнения операций, об исполнении заявок, о прошедшем рабочем дне.
19
Выходом является статистика обслуживания. Управлением здесь является
внутренний регламент, а в роли механизмов выступают администратор и
система.
На рисунке 7 представлена детализация процесса «Создать процесс
обслуживания».
Рисунок 7 – Детализация процесса «Создать процесс обслуживания»
Данная диаграмма состоит из пяти атомарных функциональных блоков.
Управлением для всех блоков является стрелка «Регламент регистрации
процесса обслуживания», а механизмом – стрелка «Администратор» (для блока
«Зарегистрировать настроенный процесс в системе» также добавляется стрелка
«Система»).
Блок «Создать список работников» предназначен для формирования
списка действующих работников и занесения в БД всей сопутствующей
необходимой информации. На вход данному блоку идёт информация о
процессе обслуживания, выходом является настроенный список работников.
Блок «Создать список рабочих мест» предполагает формирование и
настройку списка рабочих мест (или окон обслуживания) в соответствующей
20
форме в системе. На вход подаётся информация о процессе обслуживания, а на
выходе получаем настроенный список рабочих мест.
Блок «Создать список операций» предназначен для создания списка всех
производимых организацией операций по обслуживанию клиентов. При
регистрации клиентской заявки на обслуживание обязательно указывается
необходимая клиенту операция, на основе которой будет определена очередь.
Входной информацией к данному блоку является информация о процессе
обслуживания, выходной – настроенный список операций.
Блок «Настроить доступность операций для рабочих мест и работников»
служит для формирования матрицы текущей доступности операций. Входом
является информация о процессе обслуживания. На выходе из данного блока
получаем информацию о доступности операций.
Блок «Зарегистрировать настроенный процесс в системе» предполагает
окончательную
регистрацию
идентификационного
номера
процесса
обслуживания
данному
процессу
с
и
назначением
присвоением
администратору, выполняющему данное действие, статус владельца процесса.
Входом являются настроенные списки работников, рабочих мест, операций, а
также
информация
о
доступности
операций.
Выход
для
блока
«Зарегистрировать настроенный процесс в системе» – зарегистрированные
данные процесса обслуживания, используемые системой в дальнейшем с целью
определения параметров и идентификации данного процесса обслуживания.
Каждому процессу обслуживания может быть поставлен в соответствие только
один владелец.
На рисунке 8 представлена детализация процесса «Обслужить клиентов»,
являющаяся дочерней диаграммой для диаграммы «Управление очередями».
Данная диаграмма состоит из шести функциональных блоков, пять из
которых являются атомарными. Блок «Обработать заявку клиента» будет
декомпозирован далее.
21
Рисунок 8 – Детализация процесса «Обслужить клиентов»
Общим входом для всех представленных на данной диаграмме блоках
является стрелка «Зарегистрированные данные процесса обслуживания», а
стрелка «Система» — общий для данных блоков механизм. Для краткости
изложения при описании блоков ниже данные факты будут опущены.
Блок установки работником статуса «Активен» (А31) предназначен для
перевода учётной записи сотрудника в активный режим, означающий, что
работник готов принять клиента. Механизмом является работник, выходом –
отчёт о времени занятости работников (после слияния с выходом блока
установки работником доступности «Неактивен»).
Блок «Зарегистрировать клиентскую заявку на исполнение операции»
предполагает занесение в систему информации о новой клиентской заявке, в
которой указана необходимая операция. Входом является стрелка «Данные о
появлении новых клиентов», выходом – стрелка «Заявка на обслуживание».
Механизм – «Клиенты», управление – «Внутренний регламент».
Блок «Поставить клиента в очередь к выбранному окну обслуживания»
предназначен для процесса занесения клиентской заявки в текущую очередь к
данному окну обслуживания. Вход – стрелка «Информация о выбранном окне
22
обслуживания», выход – информация о выбранной клиентом операции,
управление – стрелка «Общие принципы очередности».
Блок «Выбрать окно обслуживания» отвечает за работу алгоритма по
оптимальному выбору окна обслуживания для исполнения клиентской заявки.
Входом является заявка на обслуживание, полученная в ходе исполнения
функционального блока «Зарегистрировать клиентскую заявку на исполнение
операции», выходом – информация о выбранном окне обслуживания. Стрелки
управления для данного блока – это «Общие принципы очерёдности» и
«Информация о занятости работников», полученная на выходе из блока
«Обработать заявку клиента».
Блок
«Обработать
заявку
клиента»
является
декомпозируемым
и
предназначен для выполнения операций по работе с конкретной клиентской
заявкой. Вход – «Информация об очереди», управление – «Внутренний
регламент», механизм – «Работники», выход – стрелки «Отчёт о времени
выполнения операции», «Отчёт об исполнении заявки», «Информация о
занятости работников», являющаяся управлением для функционального блока
«Выбрать окно обслуживания».
Блок установки работником статуса «Неактивен» (А36) предназначен для
перевода учётной записи сотрудника в неактивный режим. Механизмом
является работник, выходом – отчёт о времени занятости работников (после
слияния с выходом блока установки работником доступности «Активен»).
На рисунке 9 представлена детализация процесса «Обработать заявку
клиента».
Данная диаграмма состоит из шести функциональных блоков, каждый из
которых является атомарным.
Общим входом для всех представленных на данной диаграмме блоках
является стрелка «Зарегистрированные данные процесса обслуживания», а
стрелки «Работники» и «Система» (за исключением блока «Выполнить
заявленную клиентом операцию», где отсутствует стрелка «Система») —
23
общий для данных блоков механизм. Для краткости изложения при описании
блоков ниже данные факты будут опущены.
Рисунок 9 – Детализация процесса «Обработать заявку клиента»
Блок «Информировать клиента о наступлении его очереди» предназначен
для
исполнения
функциональности
оповещения
клиентов
о
моменте
наступления их очереди. Входом является информация об очереди, выходом —
«Информационные сообщения», управлением — внутренний регламент.
Блок установки работником статуса «Занят» (А352) служит для перевода
учётной записи сотрудника в режим занятости. Выход блока (после слияния с
выходом блока установки работником доступности «Активен») — информация
о занятости работников.
Блок «Зафиксировать время начала обслуживания» выполняет операцию
занесения в БД информации о времени начала обслуживания текущей заявки.
Выход — стрелка «Время начала обслуживания».
24
Блок «Выполнить заявленную клиентом операцию» предназначен для
выполнения операции по клиентской заявке. Выходом является стрелка «Отчёт
об исполнении заявки», управлением — «Внутренний регламент».
Блок
«Зафиксировать
время
окончания
обслуживания»
выполняет
операцию занесения в БД информации о времени окончания обслуживания
текущей заявки. Выход — стрелка «Время окончания обслуживания».
Блок установки работником статуса «Активен» (А356) служит для
перевода учётной записи сотрудника в активный режим. Выход блока (после
слияния с выходом блока установки работником доступности «Занят») —
информация о занятости работников.
1.3 Разработка требований к системе
Сбор требований — это один из самых важных этапов процесса создания
любой информационной системы, будь то десктопное, веб или мобильное
приложение, или же просто доработка уже существующего решения. Полнота и
качество анализа требований играют ключевую роль в успехе всего проекта.
Требования
к
ПО
должны
быть
документируемыми,
выполнимыми,
тестируемыми, а также иметь уровень детализации, достаточный для
проектирования системы.
На этапе формирования требований, прежде всего, необходимо определить
область действия разрабатываемой системы и получить точное представление о
желаемых возможностях системы.
1.3.1 Разработка функциональных требований
При разработке программного средства необходимо определить все
функциональные требования к нему. Исходя из потребностей клиентов, можно
сформулировать следующий список функциональных требований.
1. Создание, настройка и регистрация в системе процесса обслуживания.
2. Возможность установки работником различных статусов активности.
25
3. Регистрация
и
внесение
в
систему
поступающих
заявок
на
обслуживание от клиентов.
4. Выбор наиболее подходящего окна обслуживания для выполнения
клиентской заявки.
5. Постановка, продвижение и удаление клиентской заявки из очереди.
6. Фиксирование и хранение данных об исполнении заявок.
7. Расчёт статистических данных на основании имеющихся.
8. Редактирование
параметров
процесса
обслуживания:
списка
работников, операций, окон обслуживания, доступности операций и т.д.
9. Перенос устаревших данных в архив, обеспечивающий надёжное
хранение.
10. Просмотр статистики.
11. Разграничение уровней доступа к системе (администратор и обычные
работники).
1.3.2 Разработка нефункциональных требований
Нефункциональные требования к программному средству определяют ее
характеристики, проявляемые в процессе использования. Основной задачей
программного комплекса является управление очередями, поэтому основное
внимание должно быть уделено таким характеристикам как точность и
быстрота выполнения операций, эффективность и устойчивость к сбоям,
тестируемость, возможность модификации посредством добавления новых
модулей, реализующих дополнительную функциональность в рамках отдельно
взятой организации, целостность.
1.4 Создание диаграммы вариантов использования в нотации UML
Основная цель создания любой программной системы - создание такого
программного продукта, который помогает пользователю выполнять свои
повседневные
задачи.
Для
создания
таких
программ
первым
делом
определяются требования, которым должна удовлетворять система. Однако
26
если дать пользователям написать эти требования на бумаге, то часто можно
получить список функций, по которому трудно судить, будет ли будущая
система выполнять свое назначение и сможет ли она облегчить пользователю
выполнение его работы вообще. Непонятно, какие из выполняемых функций
более важны и для кого.
Для того, чтобы более точно понять, как должна работать система, все
чаще используется описание функциональности системы через варианты
использования (Use Case или прецеденты). Варианты использования — это
описание последовательности действий, которые может осуществлять система
в ответ на внешние воздействия пользователей или других программных
систем. Варианты использования отражают функциональность системы с точки
зрения получения значимого результата для пользователя, поэтому они точнее
позволяют ранжировать функции по значимости получаемого результата.
Диаграмма прецедентов (диаграмма вариантов использования) в UML
отражает отношения между актёрами и прецедентами и является составной
частью модели прецедентов, позволяющей описать систему на концептуальном
уровне.
Прецедент
—
функциональности),
возможность
благодаря
моделируемой
которой
системы
пользователь
может
(часть
её
получить
конкретный, измеримый и нужный ему результат. Прецедент соответствует
отдельному сервису системы, определяет один из вариантов её использования и
описывает типичный способ взаимодействия пользователя с системой.
Варианты
использования
обычно
применяются
для
спецификации
внешних требований к системе.
В ходе выполнения данной выпускной квалификационной работы была
построена
диаграмма
вариантов
использования
(прецедентов)
для
разрабатываемой программной системы в нотации UML. Данная диаграмма
представлена на рисунке 10.
27
Рисунок 10 – Диаграмма вариантов использования для программного комплекса «Электронная очередь»
28
Для
системы
определены
три
типа
акторов:
клиент,
работник,
администратор. Клиент – человек, стоящий в очереди. Работник – это
сотрудник, занимающийся обслуживанием клиентов за своим рабочим местом.
Администратор – пользователь, сотрудник организации, имеющий права
доступа к редактированию параметров рабочего процесса обслуживания.
Для клиента предусмотрены следующие возможности:
1. Зарегистрироваться.
2. Повысить
приоритет
(расширение
операции
регистрации,
подразумевает учёт прав клиента на внеочередное обслуживание).
3. Просмотреть доступные операции.
4. Зарегистрировать заявку на выбранную операцию (расширение
прецедента просмотра доступных операций).
Для работника в системе предусмотрены возможности:
1. Установить доступность «Активен».
2. Зафиксировать время начала обслуживания (расширение прецедента
«Установить доступность «Активен»).
3. Установить
доступность
«Занят»
(включение
прецедента
«Зафиксировать время начало обслуживания»).
4. Зафиксировать время окончания обслуживания (включение прецедента
«Установить доступность «Занят»).
5. Вернуть
доступность
«Активен»
(включение
прецедента
(расширение
прецедента
«Зафиксировать время окончания обслуживания).
6. Установить
доступность
«Неактивен»
«Установить доступность «Активен»).
Для администратора в системе предусмотрены следующие возможности:
1. Создать процесс обслуживания.
2. Редактировать список операций.
3. Редактировать доступность операций для рабочих мест и работников.
4. Редактировать список работников.
29
5. Редактировать список рабочих мест (окон обслуживания).
6. Редактировать доступность операций для окна.
7. Начать новый рабочий день.
8. Завершить текущий рабочий день.
9. Перенести записи в архив.
10. Просмотреть статистику.
30
2 РАЗРАБОТКА ПРОГРАММНОГО КОМПЛЕКСА
«ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
2.1 Обоснование выбора инструментальных средств разработки
Для разработки программного комплекса «Электронная очередь» была
выбрана технология клиент-сервер, что обуславливается рядом причин,
рассматриваемых ниже.
Сервером определенного ресурса в компьютерной сети называется
компьютер (программа), управляющая этим ресурсом, клиентом - компьютер
(программа), использующий этот ресурс. В качестве ресурса компьютерной
сети могут выступать, базы данных, файловые системы, службы печати,
почтовые службы.
При использовании технологии клиент-сервер приложение разделяется на
две части. Клиентская часть обеспечивает удобный графический интерфейс и
размещается на компьютере пользователя. Серверная часть осуществляет
управление
данными,
разделение
информации,
администрирование
и
обеспечивает безопасность информации. Клиентское приложение формирует
запросы к серверу базы данных, на котором выполняются соответствующие
команды. Результаты выполнения запросов пересылаются клиенту.
При такой архитектуре сервер базы данных обеспечивает выполнение
основного объема обработки данных. Формируемые пользователем или
приложением запросы поступают к серверу базы данных в виде инструкции
языка SQL. Сервер базы данных выполняет поиск и извлечение нужных
данных, которые затем передаются на компьютер пользователя.
По сравнению с файл-серверной архитектурой, архитектура клиент-сервер
имеет следующие преимущества:
1. Сохранность информации. Ведение базы данных осуществляет сервер
базы данных, что позволяет обеспечить независимость обработки данных в базе
от
программ
пользователя.
Целостность
информации
поддерживается
централизованной обработкой конфликтов, возникающих при одновременной
31
модификации одних и тех же данных с разных рабочих станций.
2. Устойчивость к сбоям. Сбой при работе клиента не сказывается на
целостности данных и их доступности для других клиентов.
3. Масштабируемость (способность к расширению). Система способна
адаптироваться к росту количества пользователей и увеличению объема базы
данных без замены программного обеспечения, а, в основном, за счет
наращивания аппаратных средств.
4. Большая защищенность информации от несанкционированного доступа.
Защитить информацию на сервере базы данных легче, так как права доступа
администрируются достаточно гибко. При необходимости, прямой доступ
может быть ограничен до определенного поля таблицы или запрещен вообще.
При запрещении прямого доступа обращение к таблицам осуществляется через
промежуточные процедуры.
5. Меньшая нагрузка сети одним пользователем, что обеспечивает
большую пропускную способность сети и возможность обслуживать большее
число пользователей.
6. Большая гибкость системы.
Основной принцип технологии "клиент-сервер" заключается в разделении
функций приложения на три группы:

ввод и отображение данных (взаимодействие с пользователем);

прикладные функции, характерные для данной предметной области;

функции управления ресурсами (файловой системой, базой данных и
т.д.).
Поэтому, в любом приложении выделяются следующие компоненты:

компонент представления данных;

прикладной компонент;

компонент управления ресурсом.
Связь между компонентами осуществляется по определенным правилам,
которые называют «протокол взаимодействия».
Клиент и сервер взаимодействую друг с другом в сети Интернет или в
32
любой другой компьютерной сети при помощи различных сетевых протоколов,
например, IP протокол, HTTP протокол, FTP и другие. Протоколов на самом
деле очень много и каждый протокол позволяет оказывать ту или иную услугу.
Например, при помощи HTTP протокола браузер отправляет специальное HTTP
сообщение, в котором указано какую информацию и в каком виде он хочет
получить от сервера, сервер, получив такое сообщение, отсылает браузеру в
ответ похожее по структуре сообщение (или несколько сообщений), в котором
содержится нужная информация, обычно это HTML документ.
Сообщения,
которые
посылают
клиенты
получили
названия HTTP
запросы. Запросы имеют специальные методы, которые говорят серверу о том,
как обрабатывать сообщение. А сообщения, которые посылает сервер получили
название HTTP ответы, они содержат помимо полезной информации еще и
специальные коды состояния, которые позволяют браузеру узнать то, как
сервер понял его запрос.
Также стоит заметить, что в основе взаимодействия клиент-сервер лежит
принцип того, что такое взаимодействие начинает клиент, сервер лишь отвечает
клиенту и сообщает о том, может ли он предоставить услугу клиенту и если
может, то на каких условиях. Клиентское программное обеспечение и
серверное программное обеспечение обычно установлено на разных машинах,
но также они могут работать и на одном компьютере.
В разрабатываемой информационной системе существует необходимость
долговременного хранения информации и многократного доступа к ней.
Очевидно, что для этого необходимо использовать базу данных (БД), которая
соответственно работает под управлением СУБД (система управления базами
данных) обеспечивает две основные функции:
1) Возможность управления долговременно хранимыми данными.
2) Эффективный доступ к большим объемам данных.
Система управления базами данных обычно поддерживает одну модель
данных, т.е. способ их логического представления.
33
В качестве модели данных выбрана реляционная модель, являющаяся
концепцией, которая легка для понимания и имеет широкие возможности.
Реляционная база данных состоит из набора двумерных таблиц, называемых
отношениями, которые в свою очередь включают кортежи (записи) и атрибуты
(элементарные типы), значения которых выбираются из простого домена. Связи
между отношениями неявно определены на перекрывающихся доменах.
Используя общую информацию, например такую, как уникальный ключ
исходной записи для поиска ее порожденных записей, можно проектировать
преобразования между основными моделями данных. В реляционных базах
данных связь типа «исходный - порожденный» реализуется путем определения
домена в порожденной записи, содержащей ключевой элементарный тип
исходной записи.
Исходя из смысла решаемых задач, сформулируем требования к СУБД:
1) поддержка реляционной модели данных;
2) многопользовательская архитектура;
3) защита данных;
4) поддержка современных стандартов языков управления данными (в
частности наиболее распространенного языка SQL);
5) доступность и невысокая стоимость.
Исходя из вышеперечисленных требований, в качестве СУБД было решено
использовать СУБД MySQL.
В настоящее время СУБД MySQL является одной из самых известных,
надежных и быстрых из всего семейства существующих СУБД.
MySQL представляет собой систему управления реляционными базами
данных с поддержкой языка запросов SQL. MySQL характеризуется
относительно
высокой
скоростью,
устойчивостью
и
легкостью
в
использовании. СУБД MySQL это идеальное решение для средних и малых
приложений. Являясь кроссплатформенной СУБД, MySQL обладает очень
высокими показателями совместимости.
Действующей версией MySQL
считается последняя доступная версия 5.x. MySQL 5.x по производительности
34
сопоставима с любой из гораздо более дорогих баз данных уровня предприятия,
например Oracle, Informix, DB2 (IBM) или SQL Server (Microsoft). Такое
повышение производительности стало возможным благодаря усилиям многих
талантливых разработчиков открытого исходного кода, а также тестированию в
сообществе. Механизм базы данных по умолчанию MyISAM прекрасно
справляется с основными задачами баз данных, связанных с веб-приложениями.
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого
имеет множество расширений к этому стандарту, которых нет ни в одной
другой СУБД. Так же данная СУБД обладает такими важными функциями как
многопоточность, то есть
поддержка нескольких одновременных запросов и
оптимизация связей с присоединением многих данных за один проход.
Краткий перечень возможностей MySQL:
1) Поддерживается
неограниченное
количество
пользователей,
одновременно работающих с базой данных.
2) Количество строк в таблицах может достигать 50 млн.
3) Быстрое выполнение команд. Возможно MySQL самый быстрый сервер
из существующих серверов.
4) Простая и эффективная система безопасности.
Работать
в графическом.
с MySQL
можно
Существует
не только
очень
в текстовом
популярный
режиме,
визуальный
но и
интерфейс
PhpMyAdmin, использующийся для работы с этой СУБД. Этот интерфейс
позволяет значительно упростить
работу
пользователя с базами данных
в MySQL.
Кроме того, одним из наиболее важных преимуществ MySQL является то
что, она находится в свободном распространении и представляет из себя
программное обеспечение с открытым исходным кодом.
Таким образом MуSQL является оптимальным решением в выборе целевой
СУБД, за счет таких характеристик как:
 надежность;
 простота использования;
35
 оптимальная скорость;
 свободное распространение.
В качестве используемого веб-сервера для разработки программного
комплекса «Электронная очередь» был выбран Apache.
Веб-сервером называется программа, которая анализирует приходящие
запросы и формирует готовые документы отправляемые пользователю.
Основные достоинства Apache — надежность, безопасность и гибкость
настройки. Apache позволяет подключать различные модули, добавляющие в
него новые возможности РНР или любого другого Web-ориентированного
языка программирования.
Несмотря на то, что Apache по многим параметрам, например таким как:
потребление ресурсов и скорость работы не является лидером среди
аналогичных сервисов, его выгодно отличает, то что на нем гарантированно
будет работать большинство интернет приложений без дополнительных
доработок и настроек. Нельзя не отметить гибкость и простоту этого сервиса, а
также подкупает низкий порог вхождения и большое количество документации
как
от
разработчиков
Кроссплатформенность
интеграции
с
Apache,
данного
другим
так
сервиса
программным
и
от
сторонних
авторов.
предоставляет
возможность
обеспечением
и
языками
программирования, такими как Ruby, Python, Perl и PHP.
Для разработки веб-сервиса будет использоваться язык программирования
PHP. Его преимущества:
1. Практичность.
Язык программирования должен предоставить программисту средства для
решения поставленной задачи. Благодаря своей богатой функциональности
PHP отлично подходит для решения широкого спектра задач.
2. Простота в изучении.
Отсутствие строгой типизации, такой как в Java или C++, делает этот язык
простым в изучении. Например, при создании переменной Вам совершенно
необязательно указывать её тип или беспокоиться об её усечении или
36
переполнении.
3. Традиционность.
Изначально PHP создавался как настройка на Perl, поэтому язык сочетает в
себе достоинства Perl и С. Код PHP очень похож на написанный на Cи, что
заметно снижает усилия при изучении этого языка.
4. Эффективность.
Один из важнейших факторов при выборе языка программирования.
Благодаря своему «движку», сценарии в PHP выполняются с большой
скоростью, что позволяет создавать на PHP серьезные WEB-приложения.
5. Гибкость.
Так как PHP является встраиваемым языком, это дает чрезвычайную
гибкость в процессе разработки. Чаще всего сценарии PHP интегрируются в
HTML страницы, но при необходимости могут встраиваться и в JavaScript,
WML, XML и другие языки.
6. Безопасность.
В PHP реализованы гибкие и эффективные средства безопасности, в том
числе ряд надежных механизмов шифрования. Кроме того, так как сценарии
компилируются на стороне сервера, их исходный текст нельзя просмотреть в
браузере. Мелочь, а приятно. Ваши гениальные сценарии не подсмотрит
пытливый глаз продвинутого пользователя.
7. Базы данных.
Одним из самых больших преимуществ PHP является поддержка большого
числа баз данных (более 20 видов). Кроме того, PHP поддерживает DBX для
работы на абстрактном уровне и ODBC, что позволяет работать с любой базой
данных, поддерживающей эти стандарты.
2.2 Определение общей структуры системы
Разрабатываемая информационная система электронной очереди будет
представлять
собой
интернет-сервис,
предоставляющий
возможность
постановки множества клиентов в очередь. Постановка в очередь производится
37
в случае, если на текущий момент времени нет свободного окна обслуживания,
в котором можно было бы выполнить выбранную клиентом необходимую ему
операцию из предоставленного списка возможных. Каждый раз, когда оператор
завершает
обслуживание
очередного
клиента,
срабатывает
событие
«Окончание обслуживания», в ходе которого система просматривает текущую
очередь на наличие ближайшего клиента, заявка которого может быть
исполнена в освободившемся окне. Также функциями системы будут являться
учёт,
хранение
и
обработка
статистической
информации
касательно
функционирования рабочего процесса обслуживания клиентов с целью
оптимизации и повышения эффективности, а как следствие и доходности. Для
каждого отдельно взятого пользователя в разрабатываемом сервисе будет
создан уникальный процесс обслуживания, включающий собственные данные о
рабочих
местах, доступных
операциях
и
т.д, что позволит сервису
поддерживать одновременную работу сразу множества различных электронных
очередей.
Предполагается,
что
сервис
пользователя,
внедрившего
данную
информационную систему, занимается обслуживанием клиентов по различным
вопросам (операциям) и имеет несколько окон обслуживания (рабочих мест), за
которыми
сидят
сотрудники
организации
(работники),
занимающиеся
исполнением заявок клиентов. В таком случае на входе потенциально может
возникнуть очередь из клиентов. Для упорядочивания их обслуживания на
входе также устанавливается общедоступный персональный компьютер,
имеющий доступ к Интернету и использующий разрабатываемый сервис с
преднастроенным процессом для регистрации посетителей (клиентов) и
постановки их в очередь в зависимости от доступности выбранной операции
для окна обслуживания, в соответствии с принципом справедливого
распределения нагрузки между всеми рабочими местами. На рисунке 11
представлено схематичное изображение функционирования рабочего процесса
обслуживания клиентов для организации, использующий разрабатываемый
интернет-сервис.
38
Доступ к
Интернет-сервису
Вход для
клиентов
Рабочие места
Рабочее место 1
Рабочее место 2
Работник 1
Работник 2
Рабочее место 3
Рабочее место N
Работник 3
Работник N
Рисунок 11 – Схема функционирования рабочего процесса
обслуживания клиентов
2.3 Проектирование схемы базы данных
В основе процесса создания базы данных лежат определенные принципы.
Первый принцип состоит в том, чтобы избегать повторяющихся сведений
(также называемых избыточными данными), поскольку они занимают много
места и повышают вероятность появления ошибок и несоответствий. Второй
принцип провозглашает важность правильности и полноты сведений. Если база
данных содержит неправильные сведения, то все отчеты, созданные на основе
сведений из этой базы данных, будут содержать неправильные сведения. В
итоге решения, которые принимаются на основе этих отчетов, могут оказаться
неверными.
Первым шагом при создании базы данных является создание плана,
который одновременно выступает в качестве руководства при внедрении базы
39
данных и в качестве ее функциональной спецификации в ходе ее дальнейшего
использования. Сложность и подробность проектирования базы данных
определяется сложностью и размером приложения базы данных, а также
количеством пользователей.
Важнейшим принципом разработки базы данных является нормализация
полученных таблиц, которая сводится к устранению недостатков структуры
базы данных, приводящих к различным аномалиям и нарушениям целостности
данных. Недостатками структуры можно назвать, например, противоречивость
данных,
а аномалией
–
возникновение
случайных
ошибок
в процессе
эксплуатации БД. Проще говоря, нормализация – разбиение таблицы на две или
более для исключения повторения (избыточности) информации.
При планировании базы данных, независимо от ее размера и сложности,
необходимо придерживаться следующих основных шагов:

сбор сведений;

выделение объектов;

моделирование объектов;

определение типов данных для каждого объекта;

определение связей между объектами.
Сбор сведений.
Для создания базы данных необходимо хорошо представлять задачи,
которые она будет решать.
Выделение объектов.
В процессе сбора сведений необходимо определить ключевые объекты или
сущности, которыми предстоит управлять базе данных. Объектом может
являться как реальный предмет (например, человек или товар), так и
нематериальный элемент (например, коммерческая сделка, отдел предприятия
или расчетный период). Обычно основных объектов немного, и после их
выявления становится легче определить связанные с ними элементы. Каждому
элементу в разрабатываемой базе данных должна соответствовать таблица.
40
Моделирование объектов.
После определения объектов системы необходимо записать их в таком
порядке, чтобы можно было представить систему визуально. С этой целью
разработчиками баз данных используются инструменты различной сложности:
начиная от простых карандаша и бумаги и заканчивая различным программным
обеспечением, таким как текстовые редакторы, программы табличных расчетов
и специально разработанные для моделирования данных программы. При
использовании любого инструментария важно помнить о его современности.
Определение типов данных для каждого объекта.
После
выделения
основных
объектов
базы
данных
в
качестве
потенциальных таблиц необходимо определить типы данных, которые будут
храниться для каждого объекта. Указанные данные будут являться столбцами
таблицы объекта.
Определение связи между объектами.
Одним из преимуществ реляционной базы данных является возможность
сопоставлять сведения о различных элементах в базе данных. Данные
различных типов могут храниться отдельно и комбинироваться в случае
необходимости. Для определения связей между объектами в процессе
проектирования необходимо просмотреть таблицы, определить их логические
взаимосвязи, а затем добавить к ним столбцы отношений, устанавливающие
связь между рассматриваемыми таблицами.
В настоящее время для проектирования БД активно используются CASEсредства, в основном ориентированные на использование ERD (Entity –
Relationship
Diagrams,
диаграммы
«сущность–связь»).
С
их
помощью
определяются важные для предметной области объекты (сущности), отношения
друг с другом (связи) и их свойства (атрибуты).
Для разработки схемы базы данных для разрабатываемого программного
комплекса «Электронная очередь» использовалась система ERwin фирмы Logic
Works, которая позволяет существенно сократить временные затраты на
41
разработку модели базы данных и поддерживает наиболее популярный
стандарт моделирования IDEF1X.
ERwin имеет два уровня представления модели – логический и
физический. Логический уровень – это абстрактный взгляд на данные, на нем
данные представляются так, как выглядят в реальном мире, и могут называться
так, как они называются в реальном мире, например, «Постоянный клиент»,
«Отдел» или «Фамилия сотрудника». Объекты модели, представляемые на
логическом уровне, называются сущностями и атрибутами. Логическая модель
данных является универсальной и никак не связана с конкретной реализацией
СУБД.
Физическая модель данных, напротив, зависит от конкретной СУБД,
фактически являясь отображением системного каталога. Поскольку стандартов
на объекты БД не существует (например, нет стандарта на типы данных), то
данная модель зависит от конкретной реализации СУБД. Следовательно, одной
и той же логической модели могут соответствовать несколько разных
физических моделей. Если в логической модели не имеет значения, какой
конкретно тип данных имеет атрибут, то в физической модели важно описать
всю информацию о конкретных физических объектах – таблицах, колонках,
индексах, процедурах и т. д.
В ходе выполнения данной выпускной квалификационной работы
средствами системы ERwin была спроектирована база данных, как на
логическом, так и на физическом уровнях. Схема базы данных для
разрабатываемого программного комплекса на логическом уровне представлена
на рисунке 12.
42
Рисунок 12 – Схема базы данных для программного комплекса «Электронная очередь» на логическом уровне
43
Итак, в ходе проектирования базы данных для информационной системы
электронной очереди были созданы следующие сущности (таблицы):
1) «Процесс обслуживания».
Сущность хранит информацию о созданных процессах обслуживания для
отдельно взятого пользователя (владельца процесса). Пользователь с правами
администратора может создавать несколько процессов. Данная сущность
содержит следующие атрибуты:
 «ID процесса» – идентификационный номер процесса, является
первичным ключом;
 «Название» – название процесса;
 «Владелец» –
идентификатор пользователя, создавшего данный
процесс;
 «Дата создания» – дата регистрации данного процесса в системе;
 «Дата завершения» – дата удаления данного процесса из системы;
 «Периодичность» – булевский атрибут, принимает значения да/нет. В
случае значения «да» данный процесс будет восстанавливаться в системе
согласно заданному расписанию.
2) «Клиенты».
Хранит информацию о зарегистрировавшихся в системе клиентах. Данная
сущность содержит следующие атрибуты:
 «ID клиента» – идентификационный номер, являющийся первичным
ключом;
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит данный клиент;
 «ID
работника»
–
идентификационный
номер
работника,
обслуживающего данного клиента;
 «Номер талона» – идентификационный номер присвоенного клиенту
талона;
44
 «Время постановки в очередь» – момент, в который клиент
зарегистрировал
заявку
на
обслуживание,
а
система
автоматически
распределила его в соответствующую очередь;
 «Время вызова» – момент объявления системой наступления очереди
данного клиента;
 «Время
начала
обслуживания»
–
момент
начала
фактического
исполнения операции;
 «Время завершения обслуживания» – момент фактического завершения
операции;
 «Приоритет» – используется для назначения клиенту повышенной
важности права внеочередного обслуживания.
3) «Операции».
Сущность используется для хранения информации о существующих
операциях. Имеет следующие атрибуты:
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит операция;
 «ID операции» – идентификационный номер данной операции,
первичный ключ;
 «Название» – название операции в строковом виде;
 «Среднее время исполнения» – рассчитывается исходя из фактических
продолжительностей исполнения данной операции в ходе функционирования
системы.
4) «Доступность операций».
Таблица предназначена для определения доступности выбранной операции
в существующих окнах. Имеет следующие атрибуты:
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит операция;
 «ID рабочего места» – идентификационный номер обслуживающего
окна, первичный ключ;
 «ID операции» – идентификационный номер выбранной операции.
45
5) «Рабочие места».
Сущность предназначена для хранения информации о существующих
окнах обслуживания. Имеет следующие атрибуты:
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит рабочее место;
 «ID рабочего места» – идентификационный номер рабочего места;
 «Название» – название рабочего места в строковом виде;
 «Статус» – показывает, в каком состоянии находится рабочее место.
6) «Работники».
Сущность предназначена для хранения информации о сотрудниках,
занимающихся обслуживанием клиентов. Имеет следующие атрибуты:
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит работник;
 «ID работника» – идентификационный номер сотрудника, первичный
ключ;
 «ФИО» – фамилия, имя и отчество оператора;
 «Пароль» – пароль учётной записи для сотрудника;
 «Права администратора» – булевский атрибут, принимающий значения
да/нет. В случае значения «да» сотрудник обладает правами администратора на
систему.
7) «Сеансы».
Сущность
предназначена
для
хранения
информации
о
сеансах
пользователей (работников). Имеет следующие атрибуты:
 «ID работника» – идентификационный номер сотрудника, к которому
принадлежит данный сеанс, первичный ключ;
 «ID рабочего места» – идентификационный номер рабочего места, за
которым производится данный сеанс, первичный ключ;
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит данный сеанс;
46
 «Время начала сеанса» – момент установки активного статуса
сотрудника за данным рабочим местом;
 «Время окончания сеанса» – момент установки неактивного статуса
сотрудника за данным рабочим местом.
8) «Периоды активности работника».
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит данная активность;
 «ID работника» – идентификационный номер работника, которому
принадлежит данная активность;
 «Время установки активного статуса» – момент перехода работника в
активное состояние;
 «Время перехода в неактивный статус» – момент перехода работника в
неактивное состояние;
 «Общее время активности» – рассчитываемый на основе данных о
периодах
активности
показатель,
отражающий
суммированное
время
активности работника.
9) «Даты сеансов».
Сущность предназначена для хранения информации о днях работы. Имеет
следующие атрибуты:
 «ID процесса» – идентификационный номер процесса, к которому
принадлежит данная дата сеанса;
 «Дата» – дата данного сеанса. Если отличается от текущей даты, то
значение поля Архивность принимает истинное значение;
 «Архивность» – булевский атрибут, принимающий значения да/нет.
Если «да», то запись перемещается в архив.
10) «Архивные операции».
Сущность предназначена для хранения информации об операциях за
прошедшее время. Имеет аналогичные атрибуты.
47
11) «Архивные рабочие места».
Сущность предназначена для хранения информации о рабочих местах за
прошедшее время. Имеет аналогичные атрибуты.
12) «Архив доступности операций».
Сущность предназначена для хранения информации о доступности
операций за прошедшее время. Имеет аналогичные атрибуты.
13) «Архивные работники».
Сущность предназначена для хранения информации о работниках за
прошедшее время. Имеет аналогичные атрибуты.
14) «Архивные активности работника».
Сущность предназначена для хранения информации об активностях
работника за прошедшее время. Имеет аналогичные атрибуты.
15) «Архивные клиенты».
Сущность предназначена для хранения информации о клиентах за
прошедшее время. Имеет аналогичные атрибуты.
2.4 Ограничения целостности и безопасность базы данных
Целостность (от англ. integrity – нетронутость, неприкосновенность,
сохранность, целостность) – понимается как правильность данных в любой
момент времени. Но эта цель может быть достигнута лишь в определенных
пределах: СУБД не может контролировать правильность каждого отдельного
значения, вводимого в базу данных (хотя каждое значение можно проверить на
правдоподобность).
Поддержание целостности базы данных может рассматриваться как защита
данных от неверных изменений или разрушений (не путать с незаконными
изменениями и разрушениями, являющимися проблемой безопасности).
Современные СУБД имеют ряд средств для обеспечения поддержания
целостности (так же, как и средств обеспечения поддержания безопасности).
48
Выделяют три группы правил целостности:
1. Целостность по сущностям.
2. Целостность по ссылкам.
3. Целостность, определяемая пользователем.
Для того, чтобы обеспечить нормальное, бесперебойное и, что особенно
важно,
корректное
функционирование
проектируемой
информационной
системы, необходимо соответствующим образом организовать поддержку
целостности данных.
Первая группа правил обусловлена тем, что тот или иной атрибут
сущности концептуальной схемы, в первую очередь своим существованием
должен определять некоторый смысл, описывать небольшую часть этой
предметной области. В связи с этим, требуется ограничить то множество
значений, которые допускаются для данного атрибута.
Вторая группа правил обеспечения целостности данных возникает в
результате
появления
особого
типа
взаимосвязей
между
отдельными
сущностями концептуальной схемы, игнорирование существования которых
может привести в ряде случаев к потере данных и некорректному отображению
информации.
Третья группа правил определяет особые, пользовательские ограничения.
2.4.1 Ограничения на значения атрибутов
Значения атрибутов ограничиваются, в первую очередь, типом и форматом
поля. Рассмотрим существующие ограничения на значение некоторых
атрибутов. Все атрибуты, на которые необходимо наложить те или иные
ограничения были сведены в таблицу 1.
Эта таблица содержит сведения о названии атрибута, сущности, к которой
относится данный атрибут, непосредственно об ограничении, а также
пояснение.
49
Таблица 1 – Ограничения целостности атрибутов базы данных
Принадлежность Возможные значения
сущности
атрибута
Название
атрибута
Статус
Рабочие места
«Свободно»,
Пояснение
Статус рабочего
«Занято»,
места служит для
«Неактивно»
определения его
доступности на
текущий момент
времени
2.4.2 Выбор стратегий целостности для связей
Основные
стратегии
ограничения
целостности,
которые
будут
использоваться для различных видов связей, перечислены в таблице 2.
Таблица 2 – Стратегии ограничения целостности связей
Действие
Вставка родителя
Удаление родителя
Изменение родителя
Вставка потомка
Удаление потомка
Изменение потомка
Выбор
запрещающих
Идентифицирующая
связь
Неидентифицирующая
связь
Запрещающая
Каскадная
Запрещающая
Запрещающая
Запрещающая
Запрещающая
Запрещающая
Запрещающая
Запрещающая
Запрещающая
Запрещающая
Запрещающая
стратегий
при
не
идентифицирующих
и
идентифицирующих связях обусловлен особенностями предметной области;
кроме того, большинство ключей сущностей являются суррогатными, поэтому
на протяжении срока существования системы не возникнет необходимости
изменять их значения.
50
2.5 Разработка алгоритмов функционирования системы
Алгоритм — это набор инструкций, описывающих порядок действий
исполнителя для достижения некоторого результата.
Понятие алгоритма относится к первоначальным, основным, базисным
понятиям математики. Вычислительные процессы алгоритмического характера
(арифметические действия над целыми числами, нахождение наибольшего
общего делителя двух чисел и т. д.) известны человечеству с глубокой
древности.
Любой алгоритм обладает следующими свойствами:
1. Дискретность — алгоритм должен представлять процесс решения задачи
как последовательное выполнение некоторых простых шагов.
2. Элементарность шагов — означает, что объем работы, выполняемой на
любом шаге зависит от характеристик исполнителя алгоритмов, но не зависит
от входных данных и промежуточных значений, получаемых алгоритмом.
3. Детерминированность — определённость. В каждый момент времени
следующий шаг работы однозначно определяется состоянием системы:
алгоритм выдаёт один и тот же результат для одних и тех же исходных данных.
Результаты не зависят ни от каких случайных факторов.
4. Понятность — алгоритм для исполнителя должен включать только те
команды, которые ему (исполнителю) доступны, которые входят в его систему
команд.
5. Конечность алгоритма — означает, что для получения результата нужно
выполнить конечное число шагов, т.е. исполнитель в некоторый момент
времени останавливается. Требуемое число шагов зависит от входных данных
алгоритма.
6. Массовость — алгоритм должен быть применим к разным наборам
исходных данных.
7.
Результативность
—
завершение
алгоритма
определенными
результатами.
Программный код алгоритмов представлен в Приложении А.
51
2.5.1 Разработка алгоритма обработки события «Прибытие клиента»
Для разрабатываемого программного комплекса «Электронная очередь»
определено событие «Прибытие клиента». Данное событие подразумевает
выбор клиентом необходимой ему операции из списка доступных в
программном средстве «Клиентское приложение» и подтверждение сделанного
выбора. При этом в системе запускается соответствующая процедура,
выполняющая
определённый
алгоритм,
сущность
которого
состоит
в
детерминации наличия свободных окон обслуживания, в которых может быть
исполнена заявленная операция, и постановка клиента в общую очередь в
случае отсутствия таких окон обслуживания. Более подробно данный алгоритм
описан на соответствующей блок-схеме, представленной на рисунке 14.
На данной блок-схеме присутствуют четыре запроса к базе данных.
В общем случае, запрос к базе данных строится на основе одной или
нескольких взаимосвязанных таблиц, позволяя комбинировать содержащуюся в
них информацию. При этом могут использоваться как таблицы базы данных,
так и сохраненные таблицы, полученные в результате выполнения других
запросов. Кроме того, запрос может строиться непосредственно на другом
запросе с использованием его временной таблицы с результатами.
Запрос 1 представляет собой запрос на вставку (Insert) в таблицу
«Клиенты» данных о клиенте, выбранной им операции и сформированного
системой идентификационного номера талона в соответствующие поля
таблицы.
Текст запроса:
INSERT INTO Clients (ID_Client, ID_operation, Ticket_Number)
VALUES '$ID_Client', '$ID_operation', '$Ticket_Number'
WHERE ID_Process = $ID_Process
Запрос 2 является запросом на выбор (Select) из таблицы «Рабочие места»
тех записей, у которых значение поля «Статус» равняется «Свободно», а
идентификационный номер запрашиваемой клиентом операции присутствует в
таблице «Доступность операций» для данного рабочего места.
52
Текст запроса:
SELECT ID_Work_Place
FROM Work_Places
WHERE ID_Process = $ID_Process
AND Status="Свободно"
AND EXISTS
(SELECT ID_operation
FROM Availability_Operations
WHERE ID_operation = %ID_operation
AND ID_Work_Place = $ID_Work_Place)
Запрос 3 – это запрос на обновление (Update) данных таблицы «Клиенты»,
предполагающий внесение информации о времени постановки в очередь в
соответствующее поле для существующей записи о текущем клиенте.
Текст запроса:
UPDATE Clients
SET Queuing_Time='$_SERVER['REQUEST_TIME']'
WHERE ID_Process = $ID_Process
AND ID_Client=$ID_Client
Запрос 4 также является запросом на обновление (Update) данных таблицы
«Клиенты». Его сущность заключается во внесении информации о времени
вызова клиента в соответствующее поле для существующей записи о текущем
клиенте.
Текст запроса:
UPDATE Clients
SET Call_Time='$_SERVER['REQUEST_TIME']'
WHERE ID_Process = $ID_Process
AND ID_Client='$ID_Client
53
Рисунок 14 – Блок-схема алгоритма обработки события
«Прибытие клиента»
54
Кроме того, на блок-схеме алгоритма функционирования системы для
события
«Прибытие
клиента»
присутствует
блок
«Выбрать
окно
обслуживания», представляющий операцию, не являющуюся атомарной. Более
подробно процесс декомпозиции данного блока будет представлен ниже.
2.5.2 Разработка алгоритма выбора окна обслуживания
Сущность процедуры «Выбор окна обслуживания» заключается в выборе
наиболее подходящего с точки зрения минимальной занятости сотрудника окна
обслуживания для более справедливого и рационального распределения
нагрузки на работников.
На блок-схеме данного алгоритма присутствует запрос к базе данных –
Запрос 5. Он представляет собой запрос на выбор (Select) из таблицы «Рабочие
места» тех записей, у которых значение поля «Статус» равно «Свободно».
Текст запроса:
SELECT ID_Work_Place
FROM Work_Places
WHERE ID_Process = $ID_Process
AND Status="Свободно".
Также блок-схема содержит блок «Рассчитать занятость сотрудника»,
который будет декомпозирован ниже. Данный элемент необходим для
вычисления времени, потраченного конкретным сотрудником на исполнение
заявок клиентов за текущий день для более справедливого распределения
заявок в случае наличия нескольких свободных окон обслуживания. Более
подробно блок «Рассчитать занятость сотрудника» описан ниже.
Блок-схема
разработанного
алгоритма
обслуживания» представлена на рисунке 15.
процедуры
«Выбор
окна
55
Рисунок 15 – Блок-схема алгоритма выбора окна обслуживания
56
2.5.3 Разработка алгоритма расчёта занятости сотрудника
Данный алгоритм служит для определения времени, потраченного
конкретным сотрудником на исполнение заявок клиентов за текущий день.
Вызывается эта функция из процедуры «Выбор окна обслуживания»,
описанной
выше.
Показатель
«Занятость»
рассчитывается
как
сумма
продолжительностей выполнения операций по клиентским заявкам для всех
исполненных данным сотрудником за сегодня заявок. На рисунке 16
представлена блок-схема алгоритма функции «Занятость сотрудника».
На данной блок-схеме присутствуют два запроса к базе данных.
Запрос 6 представляет собой запрос на выбор (Select) из таблицы
«Работники» идентификационного номера работника, который в настоящий
момент находится на заданном рабочем месте.
Текст запроса:
SELECT ID_Employee
FROM Employees
WHERE ID_Process = $ID_Process
AND ID_Work_Place = $window
Запрос 7 является запросом на выбор (Select) из таблицы «Клиенты» тех
записей, у которых значение поля «Время окончания обслуживания» заполнено
каким-либо значением, а поле «ID сотрудника» содержит идентификационного
номер выбранного работника.
Текст запроса:
SELECT *
FROM Clients
WHERE ID_Process = $ID_Process
AND $ID_Employee = $id AND End_Service_Time IS NOT NULL
AND Date = GETDATE ( )
57
Рисунок 16 – Блок-схема алгоритма функции «Рассчитать занятость
сотрудника»
58
2.5.4 Разработка алгоритма обработки события «Окончание
обслуживания»
Для разрабатываемого программного комплекса «Электронная очередь»
одним из определенных событий является также «Окончание обслуживания».
Данное
событие
подразумевает
нажатие
оператором,
выполняющим
обслуживание клиентской заявки, кнопки завершения обслуживания. При этом
в
системе
запускается
соответствующая
процедура,
выполняющая
определённый алгоритм, сущность которого состоит в фиксации момента
времени завершения обслуживания текущего клиента и последующего
определения, имеется ли в очереди клиент, который может быть обслужен в
данном окне. Если такой клиент будет найден, то происходит его вызов к
данному окну обслуживания. Более подробно данный алгоритм описан на
соответствующей блок-схеме, представленной на рисунке 17.
На данной блок-схеме присутствуют три запроса к базе данных.
Запрос 8 представляет собой запрос на обновление (Update) таблицы
«Клиенты», предполагающий внесение информации о времени окончания
обслуживания в соответствующее поле для существующей записи о текущем
клиенте.
Текст запроса:
UPDATE Clients
SET Service_End_Time = '$_SERVER['REQUEST_TIME']
Запрос 9 является запросом на выбор (Select) из таблицы «Клиенты» тех
записей, у которых значение поля «Время постановки в очередь» содержит
текущую дату, а поле «Время начала обслуживания» не заполнено.
Текст запроса:
SELECT *
FROM Clients
WHERE ID_Process = $ID_Process
AND Queuing_Time IS NOT NULL AND Service_Start_Time IS NULL
59
Рисунок 17 – Блок-схема алгоритма обработки события «Окончание
обслуживания» обслуживания
60
Запрос 10 также является запросом на обновление (Update) данных
таблицы «Клиенты». Его сущность заключается во внесении информации о
времени вызова клиента в соответствующее поле для существующей записи о
текущем клиенте.
Текст запроса:
UPDATE Clients
SET Call_Time='$_SERVER['REQUEST_TIME']'
WHERE ID_Process = $ID_Process
AND ID_Client='$ID_Client
2.6 Проектирование логики диалога с пользователем
Логика диалога программы с пользователем позволяет показать, каким
образом будет осуществляться взаимодействие пользователя с приложением.
Современные веб-сервисы и системы в корне меняют работу людей.
Существуют, например, системы управления театральными механизмами,
которые
упрощают
работу
с
электронным
оборудованием,
лишая
необходимости постоянно находиться у аппаратуры. Но едва ли работа
упростится, если у таких систем будет слишком сложный интерфейс.
Получается, что интерфейс не только решает проблему взаимодействия с
приложением, но и делает это взаимодействие максимально комфортным.
Важно наличие интерфейса, позволяющего при меньшем количестве усилий
ознакомиться с возможностями приложения и понять принципы работы в нём.
Для представления логики диалога с пользователем обычно используется
простая транзитивная сеть, или иначе называемая, сеть состояний и переходов.
Главное
предназначение
последовательности
этой
состояний
диаграммы
и
переходов,
–
описать
которые
в
возможные
совокупности
характеризуют поведение модели системы в течение ее жизненного цикла.
61
2.6.1 Проектирование интерфейса элемента программного комплекса
«Клиентское приложение»
Программное средство «Клиентское приложение», входящее в состав
разрабатываемого комплекса «Электронная очередь», предназначено для
использования клиентами, желающими встать в очередь на какую-либо
операцию. Функционал данного средства также включает в себя возможность
повышения
приоритета
конкретного
пользователя
и
его
дальнейшего
распознавания в системе. Данная функциональность не является обязательной и
предназначается только для тех клиентов, которые имеют льготы, дающие
право внеочередного обслуживания. Такому пользователю присваивается
определённый приоритет, варьирующийся от 1 до 10. При сортировке списка
очереди, клиенты с более высоким приоритетом, оказываются ближе к началу
очереди.
Схема транзитивной сети для программного средства «Клиентское
приложение» представлена на рисунке 18, описание сигналов представлено в
таблице 3, а описание действий – в таблице 4.
Состояние
«Повышение
приоритета»
5
1
2
3
Начальное
состояние
4
Состояние
«Выбор
операции»
Рисунок 18 – Схема транзитивной сети для программного
средства «Клиентское приложение»
62
Таблица 3 – Описание сигналов для транзитивной сети для программного
средства «Клиентское приложение»
Обозначение
Сигнал
1
Нажатие кнопки «Повысить приоритет»
2
Нажатие кнопки «Отмена»
3
Нажатие кнопки «Выбрать операцию»
4
Нажатие кнопки «Отмена»
5
Нажатие кнопки «Ок»
Таблица 4 – Описание действий для транзитивной сети для программного
средства «Клиентское приложение»
Обозначение
1
2
3
4
5
Действие
Переход приложения в состояние «Повышение
приоритета»
Переход приложения в начальное состояние
Переход приложения в состояние «Выбор
операции»
Переход приложения в начальное состояние
Верификация введённых данных и переход в
состояние «Выбор операции»
2.6.2 Проектирование интерфейса элемента программного комплекса
«Рабочее место оператора»
Программное средство «Рабочее место оператора», входящее в состав
разрабатываемого комплекса «Электронная очередь», предназначено для
использования работниками, которые занимаются выполнением клиентских
заявок на обслуживание. Функционал данного средства включает в себя
возможность смены статусов активности данного работника и текущего
63
рабочего места соответственно, а также фиксирование времени начала и
завершения процесса обслуживания клиента.
Схема транзитивной сети для программного средства «Рабочее место
оператора» представлена на рисунке 19, описание сигналов представлено в
таблице 5, а описание действий – в таблице 6.
Состояние «Смена
статуса
активности»
Состояние
«Работа с
текущим
клиентом»
4
3
5
6
2
Окно ввода
логина и
пароля
Начальное
состояние
1
Рисунок 19 – Схема транзитивной сети для программного
средства «Рабочее место оператора»
64
Таблица 5 – Описание сигналов для транзитивной сети для программного
средства «Рабочее место оператора»
Обозначение
Сигнал
1
Нажатие кнопки «Ок»
2
Нажатие кнопки «Сменить пользователя»
3
Нажатие кнопки «Изменить статус активности»
4
Нажатие кнопки «Отмена»
5
Нажатие кнопки «Начало обслуживания»
6
Нажатие кнопки «Конец обслуживания»
Таблица 6 – Описание действий для транзитивной сети для программного
средства «Рабочее место оператора»
Обозначение
1
2
Действие
Переход в основное окно под выбранным
пользователем
Выход из текущей учётной записи и переход к окну
ввода логина и пароля
3
Переход в состояние смены статуса активности
4
Возврат к начальному состоянию
5
6
Переход к состоянию работы с текущим клиентом и
фиксация момента времени начала обслуживания
Возврат к начальному состоянию и фиксация
момента времени завершения обслуживания
65
2.6.3 Проектирование интерфейса элемента программного комплекса
«Рабочее место администратора»
Программное средство «Рабочее место администратора», входящее в
состав разрабатываемого комплекса «Электронная очередь», предназначено для
работников с правами администратора данной системы для первоначальной
настройки и последующего редактирования параметров функционирования
текущего процесса обслуживания, к примеру, таких как списки работников и
рабочих мест, доступных операций и т.д., а также выполнения ряда других
административных задач, в частности, операций начала и завершения текущего
рабочего дня, просмотра статистики, переноса записей в архив. Кроме того,
именно через данный элемент программного комплекса осуществляется
управление уже запущенными процессами обслуживания, создание новых и
удаление неактуальных процессов. Предполагается, что права администратора
выдаются
только
специально
обученным
работе
с
данной
системой
сотрудникам, так как данное приложение представляет собой фактически
консоль управления всей системой. Права доступа, логины и пароли
сотрудников-администраторов, должны быть конфиденциальны и держаться в
строгой тайне во избежание вредоносной деятельности, как злоумышленной,
так и нечаянной.
Схема транзитивной сети для программного средства «Рабочее место
администратора» представлена на рисунке 20, описание сигналов представлено
в таблице 7, а описание действий – в таблице 8.
66
Рисунок 20 – Схема транзитивной сети для программного средства «Рабочее место администратора»
67
Таблица 7 – Описание сигналов для транзитивной сети для программного
средства «Рабочее место администратора»
Обозначение
Сигнал
1
Нажатие кнопки «Ок»
2
Нажатие кнопки «Сменить пользователя»
3
4
5
6
7
8
9
10
Нажатие кнопки «Редактировать список
возможных операций»
Закрытие окна редактирования списка операций
Нажатие кнопки «Редактировать список
работников»
Закрытие окна редактирования списка
работников
Нажатие кнопки «Редактировать список рабочих
мест»
Закрытие окна редактирования списка рабочих
мест
Нажатие кнопки «Редактировать доступность
операций для рабочих мест/работников»
Закрытие окна редактирования доступности
операций для рабочих мест/работников
11
Нажатие кнопки «Рабочий день»
12
Закрытие окна «Рабочий день»
13
Нажатие кнопки «Работа с архивом»
14
Закрытие окна работы с архивом
15
Нажатие кнопки «Статистика»
16
Закрытие окна статистической информации
17
Нажатие кнопки «Процессы обслуживания»
18
Закрытие окна «Процессы обслуживания»
68
Таблица 8 – Описание действий для транзитивной сети для программного
средства «Рабочее место администратора»
Обозначение
1
2
3
4
5
6
7
8
9
Действие
Переход в основное окно под выбранным
пользователем
Выход из текущей учётной записи и переход к
окну ввода логина и пароля
Открытие окна редактирования списка
возможных операций
Переход в основное окно
Открытие окна редактирования списка
работников
Переход в основное окно
Открытие окна редактирования списка рабочих
мест
Переход в основное окно
Открытие окна редактирования доступности
операций для рабочих мест/работников
10
Переход в основное окно
11
Открытие окна «Рабочий день»
12
Переход в основное окно
13
Открытие окна «Работа с архивом»
14
Переход в основное окно
15
Открытие окна «Статистика»
16
Переход в основное окно
17
Открытие окна «Процессы обслуживания»
18
Переход в основное окно
69
3 ОПИСАНИЕ РАБОТЫ ПРОГРАММНЫХ СРЕДСТВ, ВХОДЯЩИХ
В СОСТАВ КОМПЛЕКСА «ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
В ходе выполнения данной выпускной квалификационной работы были
реализованы три приложения-клиенты: «Рабочее место администратора»,
«Рабочее место оператора» и «Клиентское приложение». Каждое из них
предназначено для использования соответствующими типами пользователей –
администратором
системы,
оператором
и
клиентом,
решившим
воспользоваться системой электронной очереди.
3.1 Описание работы программного средства «Клиентское
приложение»
«Клиентское
приложение»
предназначено
для
использования
на
общедоступном компьютере, находящимся на входе в организацию, решившую
внедрить данную систему. Компьютер должен иметь доступ к Интернету или
внутренний сети организации для обеспечения корректной работы приложения.
Данное программное средство позволяет выбрать пользователю необходимую
операцию
из
списка
доступных
на
текущий
момент
и
получить
соответствующий виртуальный талон на обслуживание. При подтверждении
пользователем факта выбора операции, генерируется событие «Прибытие
клиента» и запускается определённую для данного случая программную
процедуру, более подробно описанную выше. В случае, если запрошенная
клиентом операция может быть выполнена без промедления (есть подходящие
свободные окна обслуживания), система оповещает пользователя об этом и
отмечает время вызова в соответствующей таблице базы данных. Если же
подходящие свободные окна обслуживания отсутствуют на текущий момент, то
клиентская заявка ставится в очередь. При окончании обслуживания какоголибо клиента запускается событие «Окончание обслуживания», в ходе
обработки которого происходит проверка на возможность обслуживания
ближайшего в очереди клиента в освободившемся окне.
70
Основное
окно
программного
средства
«Клиентское
приложение»
представлено на рисунке 21.
Рисунок 21 – Экранная форма основного окна программного
средства «Клиентское приложение»
3.2 Описание работы приложения «Рабочее место оператора»
Приложение «Рабочее место оператора» предназначено для использования
на компьютере работника, занимающегося обслуживанием заявок клиентов.
Компьютер должен иметь доступ к Интернету или внутренний сети
организации для обеспечения корректной работы приложения. Данное
программное средство позволяет фиксировать моменты начала и завершения
обслуживания
клиентской
заявки.
Текущее
время
исполнения
заявки
отображается в главном окне приложения, что позволяет оператору получать
наглядное представление о темпе своей работы.
Нажатие кнопки «Начало обслуживания» приводит к невозможности её
нажатия ещё раз, до тех пор, пока не будет нажата кнопка «Завершить
71
обслуживание». Нажатие кнопки «Завершить обслуживание», в свою очередь,
приводит к невозможности её повторного нажатия до момента очередного
начала обслуживания клиентской заявки. Изначально в приложении активна
кнопка «Начало обслуживания», а кнопка «Завершить обслуживание»
находится в неактивном состоянии.
При нажатии кнопки «Завершить обслуживание» в системе генерируется
событие «Окончание обслуживания», приводящее к срабатыванию алгоритма, в
ходе выполнения которого происходит фиксации момента времени завершения
обслуживания текущего клиента и последующего определения, имеется ли в
очереди клиент, который может быть обслужен в данном окне. Если такой
клиент будет найден, то происходит его вызов к данному окну обслуживания.
Перед
использованием
приложения
«Рабочее
место
оператора»
пользователю необходимо выполнить авторизацию. В случае успешной
попытки авторизации совершается переход на главное окно приложения, в
случае неуспешной – предлагается ввести логин и пароль ещё раз. Авторизация
доступна только для сотрудников, имеющих свою запись в списке работников в
приложении «Рабочее место администратора».
Главное окно приложения «Рабочее место оператора» также предоставляет
возможность смены статуса текущей активности работника. Для этой цели
служит кнопка «Изменить статус», размещённая в верхней правой части окна
приложения.
Также имеется возможность просмотреть список клиентов, имеющих
право на внеочередное обслуживание, а также настроить формирование
талонов необходимым образом, сформировать отчёты о проделанной работе,
получить справку о приложении.
Основное окно программного средства «Рабочее место оператора»
представлено на рисунке 22.
72
Рисунок 22 – Экранная форма основного окна программного
средства «Рабочее место оператора»
3.3 Описание работы приложения «Рабочее место администратора»
Приложение
«Рабочее
место
администратора»
предназначено
для
использования на компьютере сотрудника, имеющего права администратора на
систему и занимающегося настройкой рабочего процесса и редактированием
параметров функционирования программного комплекса. Компьютер, с
которого осуществляется запуск приложения «Рабочее место администратора»
должен иметь доступ к Интернету или внутренний сети организации для
обеспечения корректной работы приложения. Данное программное средство
позволяет
производить
редактирование
первоначальную
параметров
настройку
функционирования
и
последующее
текущего
процесса
обслуживания, в том числе списки работников и рабочих мест, доступных
операций и т.д.
Также приложение «Рабочее место администратора» позволяет выполнять
ряд других административных задач, в частности, операции начала и
73
завершения текущего рабочего дня, просмотра статистики, переноса записей в
архив. Кроме того, именно через данный элемент программного комплекса
осуществляется управление уже запущенными процессами обслуживания,
создание новых и удаление неактуальных процессов.
Перед использованием приложения «Рабочее место администратора»
пользователю необходимо выполнить авторизацию. В случае успешной
попытки авторизации совершается переход на главное окно приложения, в
случае неуспешной – предлагается ввести логин и пароль ещё раз. Авторизация
доступна только для сотрудников, имеющих свою запись в списке работников в
приложении «Рабочее место администратора» с пометкой «Да» в столбце
«Права администратора».
Главное окно приложения «Рабочее место администратора» содержит все
необходимые кнопки для предоставления вышеперечисленных возможностей.
При нажатии выбранной кнопки происходит открытие соответствующего окна
программного средства.
Основное окно программного средства «Рабочее место оператора»
представлено на рисунке 22.
На рисунке 23 показана экранная форма редактирования списка
работников в приложении «Рабочее место администратора».
74
Рисунок 22 – Экранная форма основного окна программного
средства «Рабочее место администратора»
Рисунок 23 – Экранная форма окна редактирования списка
работников в приложении «Рабочее место администратора»
75
ЗАКЛЮЧЕНИЕ
В ходе выполнения данной выпускной квалификационной работы был
произведён анализ рынка систем управления очередью, включающий краткий
обзор
существующих
информационных
систем-аналогов
и
выделение
некоторых аспектов разработанного программного комплекса, дающих ему
возможность занять свою нишу на данном рынке. Также был формализован
процесс управления очередью в нотации IDEF0, представляющий систему в
виде «чёрного ящика» со входами и выходами, управлением и механизмами,
детализированного
до
необходимого
уровня.
Были
разработаны
функциональные и нефункциональные требования к системе на основе анализа
рынка систем управления электронной очередью. Также определена общая
структура программного комплекса «Электронная очередь», построена UMLдиаграмма вариантов использования системы, предполагающая наличие
пользователей с ролями «Клиент», «Оператор» и «Администратор», выбраны
инструменты технической реализации системы на основе анализа поставленной
задачи и приведены аргументы в поддержку выбранных технологий и языков.
Спроектирована
база
данных,
разработаны
основные
алгоритмы
функционирования системы, позволяющие не только оптимизировать процесс
движения очереди, но и реализовать возможность выбора наименее занятого
сотрудника для обслуживания клиента в случае наличия нескольких свободных
окон
обслуживания.
Произведено
проектирование
интерфейса
всех
приложений, входящих в состав данного программного комплекса, и, наконец,
реализован сам комплекс «Электронная очередь». Продемонстрированы
скриншоты программных средств «Клиентское приложение», «Рабочее место
оператора», «Рабочее место администратора» и описана работа каждого из
созданных приложений.
Следовательно, все задачи можно считать выполненными, а цель
написания работы – достигнутой.
76
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
Аллен, Э. Типичные ошибки проектирования [Текст] : [пер. с
1
англ.] / Э. Аллен. - СПб.: Питер, 2003. - 224 с.
Баронов, В.В Автоматизация управления предприятием [Текст]/
2
В.В. Баронов – М.: ИНФРА-М, 2000. – 239 с. – ISBN 5-16-000133-6.
3
Маклаков, С.В. Электронные очереди. Особенности разработки
[Текст]: [практ. рук-во для спец. и студ.] / Сергей Владимирович Маклаков. –
М.: Диалог-МИФИ, 2003. – 427 с., ил.
4
Васкевич, Дэвид Стратегии клиент/сервер; Киев: Диалектика -
Москва, 1996. - 384 c.
5
Маклаков, С. В. BPwin и ERwin. CASE-средства разработки
информационных систем / С. В. Маклаков. - 2-е изд., испр. и доп. - М. : ДиалогМИФИ, 2001. - 304 с. : ил.+ 21 см. ISBN 5-86404-128-9.
6
Буч
Г.,
Рамбо
Д.,
Якобсон А.
Язык UML. Руководство
пользователя. Второе издание. ДМК, 2006, 496 с.
7
Душин, В.К. Теоретические основы информационных процессов и
систем в нотации IDEF0[Текст]: учеб. для вузов / Владимир Константинович
Душин. – М.: Дашков и К, 2006. – 348 с., ил. – ISBN 7-28457-5688
Коннолли, Т. Базы данных: проектирование, реализация и
сопровождение: теория и практика [Текст]/ Томас Коннолли; Каролин Бегг. – 2е изд., испр. и доп. – М.: Вильямс, 2000. – 1111 с., ил. – ISBN 5-84590-109-Х.
9
Леонтьев Борис PHP 5.0 для начинающих, или как создать
динамический WEB-сайт; Новый издательский дом - М., 2005. - 176 c.
10
Кузнецов Максим , Симдянов Игорь MySQL 5; БХВ-Петербург -
Москва, 2010. - 770 c.
11
Голицына Базы данных / Голицына, О.Л. и. - М.: Форум; Инфра-М,
2007. - 399 c.
12
Карпова, И.П. Базы данных. Учебное пособие. Курс лекций и
материалы для практических занятий. – СПб.: Питер, 2013. — 240 с.
77
13
Назаренко Н. А. Введение в проектирование интеллектуальных
интерфейсов Учебное пособие СПб: СПбГУ ИТМО. С-Пб. 2011. – 108
14
Скотт б., Нейл т. Проектирование веб-интерфейсов. – пер. С англ. –
спб.: символ-плюс, 2010. – 352 с.
15
Калянов Г. Н., CASE - структурный системный анализ [Текст] .- М.:
Лори, 1996.-174с.
16
Трофимова В.В., Информационные технологии и системы в
экономике и управлении [Текст] / Под ред. В.В. Трофимова. Учебное пособие
для вузов - М.: Высшее образование, 2007.-488с.
17
Томсон Лаура. Разработка Web-приложений на РНР и MySQL: Пер.
с англ. /Лаура Томсон, Люк Веллинг. — 2-е изд., испр. — СПб: ООО
«ДиаСофтЮП», 2003. — 672 с.
18
Материалы официального сайта языка программирования PHP
http://www.php.net/
19
Прохоренок Н. HTML, JavaScript, PHP и MySQL. Джентльменский
набор Web-мастера / Н. Прохоренок. – СПб.: БХВ-Петербург, 2010. 900с.
78
ПРИЛОЖЕНИЕ А
(ОБЯЗАТЕЛЬНОЕ)
ФРАГМЕНТЫ ЛИСТИНГА ПРОГРАММНОГО КОМПЛЕКСА
«ЭЛЕКТРОННАЯ ОЧЕРЕДЬ»
<?php
/*Алгоритм для события Прибытие клиента*/
$db = mysql_connect('Сервер MySQL',$login,$BD_password);
mysql_select_db('Electronic_Queue', $db);
/*Сделать запись о новом клиенте – Запрос 1*/
$result = mysql_query ("INSERT INTO Clients (ID_Client, ID_operation,
Ticket_Number) VALUES ('$ID_Client', '$ID_operation', '$Ticket_Number'
WHERE ID_Process = $ID_Process)",$db);
if ($result == 'true')
{
echo "Запись о клиенте добавлена успешно";
}
else
{
echo "Внимание! Запись о клиенте не добавлена!";
}
/*Определение свободных окон обслуживания, в которых можно
выполнить запрашиваемую операцию – Запрос 2*/
$result = mysql_query("SELECT ID_Work_Place FROM Work_Places
WHERE ID_Process = $ID_Process AND Status="Свободно" AND EXISTS
(SELECT ID_operation FROM Availability_Operations WHERE ID_operation =
%ID_operation AND ID_Work_Place = $ID_Work_Place)",$db);
/*Преобразовываем результат в массив*/
$myrow = mysql_fetch_array($result);
/*Проверка наличия окон, удовлетворяющих условиям*/
if int count ( mixed $myrow )> 0
{
if int count ( mixed $myrow )> 1
/*Если найдено больше одного окна, то вызвать процедуру Выбрать окно
обслуживания*/
{
79
selection_service_window($myrow)
}
else
/*Если свободное окно одно, то поставить клиента к нему в очередь –
Запрос 4*/
{
$result = mysql_query ("UPDATE Clients SET
Call_Time='$_SERVER['REQUEST_TIME']' WHERE ID_Process = $ID_Process
AND ID_Client='$ID_Client)",$db);
if ($result == 'true')
{
echo "Данные о времени вызова текущего клиента успешно обновлены";
}
else
{
echo "Внимание! Данные о времени вызова текущего клиента не
обновлены!";
}
}
}
else
/*Если свободных окон нет вообще, то поставить клиента в очередь –
Запрос 3*/
{
$result = mysql_query ("UPDATE Clients SET
Queuing_Time='$_SERVER['REQUEST_TIME']' WHERE ID_Process =
$ID_Process AND ID_Client='$ID_Client)",$db);
if ($result == 'true')
{
echo "Данные о времени постановки текущего клиента в очередь успешно
обновлены";
}
else
{
echo "Внимание! Данные о времени постановки текущего клиента в
очередь не обновлены!";
}
}
?>
<?php
/*Алгоритм функции Выбор окна обслуживания*/
80
function selection_service_window($myrow)
{
/*Преобразуем массив в строку*/
$Work_Places = implode(',', $myrow);
/*Генерируем строку SQL-запроса*/
$sql = "SELECT ID_Work_Place FROM Work_Places WHERE ID_Process
= $ID_Process AND `ID_Work_Place` IN($id)";
/*Выполняем запрос 5*/
$query = mysqli_query($link, $sql);
/*Для каждого свободного окна рассчитать занятость сотрудника*/
for ($i = 1; $i <= int count (mixed $myrow); $i++) {
$window = $Work_Places[$i];
$Employee_Employment = Employee_Employment($window);
%Minimum_Employment_Time = 99999;
/*Если рассчитанная занятость меньше минимального времени
занятости, то запоминаем новое минимальное время занятости*/
if ($Employee_Employment < %Minimum_Employment_Time)
}
{
%Minimum_Employment_Time = $Employee_Employment;
$id = $i;
}
/*Выбираем окно с минимальной занятостью*/
echo $window[$id];
}
?>
<?php
/*Алгоритм функции Занятость сотрудника*/
function Employee_Employment($window); {
/*Найти сотрудника, обслуживающего данное окно - Запрос 6*/
$result = mysql_query("SELECT ID_Employee FROM Employees WHERE
ID_Process = $ID_Process AND ID_Work_Place = $window",$db);
/*Преобразовываем результат в массив и запоминаем единственное
значение*/
$myrow = mysql_fetch_array($result);
$id = $myrow[1];
81
/*Присвоить параметру Занятость 0*/
$Employee_Employment=0;
/*Выбрать записи о исполненных сотрудником заявказ за сегодня - Запрос
7*/
$query = mysql_query("SELECT * FROM Clients WHERE ID_Process =
$ID_Process AND $ID_Employee = $id AND End_Service_Time IS NOT NULL
AND Date = GETDATE ( ),$db);
/*Преобразовываем результат в массив*/
$massiv = mysql_fetch_array($query);
/*Проверка на кол-во обслуженных сегодня клиентов*/
if int count ( mixed $massiv )> 0
{
/*Преобразуем массив в строку*/
$string = implode(',', $massiv);
/*Генерируем строки SQL-запроса*/
$sqlStart = "SELECT Service_Start_Time FROM Work_Places WHERE
ID_Process = $ID_Process AND `ID_Work_Place` IN($id)";
$sqlFinish = "SELECT Service_End_Time FROM Work_Places WHERE
ID_Process = $ID_Process AND `ID_Work_Place` IN($id)";
/*Выполняем запросы*/
$query1 = mysqli_query($sqlStart, $db);
$query2 = mysqli_query($sqlFinish, $db);
for ($i = 1; $i <= int count (mixed $myrow); $i++) {
$window = $Work_Places[$i];
$Employee_Employment = $Employee_Employment + ($sqlFinish(($i)$sqlStart($i));
}
}
echo $Employee_Employment;
}
?>
<?php
/*Алгоритм для события Окончание обслуживания*/
$db = mysql_connect('Сервер MySQL',$login,$BD_password);
mysql_select_db('Electronic_Queue', $db);
82
/*Завершить обслуживание текущего клиента - Запрос 8*/
$result = mysql_query ("UPDATE Clients SET Service_End_Time =
'$_SERVER['REQUEST_TIME']',$db);
if ($result == 'true')
{
echo "Запись о времени завершения обслуживания клиента добавлена
успешно";
}
else
{
echo "Внимание! Запись о времени завершения обслуживания клиента не
добавлена!";
}
/*Выбрать записи о клиентах, ожидающих обслуживания - Запрос 9*/
$result = mysql_query ("SELECT * FROM Clients WHERE ID_Process =
$ID_Process AND Queuing_Time IS NOT NULL AND Service_Start_Time IS
NULL",$db);
$myrow = mysql_fetch_array($result);
/*Если очередь не пуста, сортируем и выбираем первую запись*/
if int count ( mixed $myrow )> 0
{
$result = mysql_query ("SELECT * FROM Clients WHERE ID_Process =
$ID_Process AND Queuing_Time IS NOT NULL AND Service_Start_Time IS
NULL ORDER BY Queuing_Time",$db);
$myrow = mysql_fetch_array($result);
$i=1;
$Current_Client=$myrow[$i];
/*Если запрошенная клиентом операция есть в списке доступных для окна,
то вызываем клиента на обслуживание, иначе выбираем следующую запись*/
$result = mysql_query("SELECT ID_Operation FROM Operations WHERE
ID_Process = $ID_Process AND EXISTS (SELECT ID_operation FROM
Availability_Operations WHERE ID_operation = %ID_operation AND
ID_Work_Place = $ID_Work_Place)",$db);
if #ID_operation = $result
{
/*Вызываем клиента на обслуживание - Запрос 10*/
$result = mysql_query ("UPDATE Clients SET
Call_Time='$_SERVER['REQUEST_TIME']' WHERE ID_Process = $ID_Process
AND ID_Client='$ID_Client)",$db);
if ($result == 'true')
{
echo "Данные о времени вызова текущего клиента успешно обновлены";
83
}
else
{
echo "Внимание! Данные о времени вызова текущего клиента не
обновлены!";
}
}
else
{
if $i<int count ( mixed $myrow )
{
$i++;
$Current_Client=$myrow[$i];
}
}
}
?>
85
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
Наименование
группы атрибутов
атрибута
1. Описание
Обозначение документа
документа
(идентификатор(ы)
файла(ов))
Наименование документа
2. Даты и время
3. Создатели
4. Внешние
ссылки
5. Защита
6. Характеристики
содержания
Характеристики документа
на электронном носителе
\Плакаты\Презентация.pptx
Демонстрационные плакаты
к выпускной
квалификационной работе
Класс документа
ЕСКД
Вид документа
Оригинал документа на
электронном носителе
Аннотация
Демонстрационный
материал, отображающий
основные этапы выполнения
выпускной
квалификационной работы
Использование документа Операционная система
Windows 10, Microsoft
PowerPoint 2016
Дата и время
23.06.2018
копирования документа
Дата создания документа 18.06.2018
Дата утверждения
23.06.2018
документа
Автор
Полковников И.А.
Изготовитель
Полковников И.А.
Ссылки на другие
Удостоверяющий лист
документы
№ 165158/п
Санкционирование
ОГУ имени И.С. Тургенева
Классификация защиты
По законодательству РФ
Объем информации
959 689 Б
документа
86
7. Структура
документа(ов)
Наименование плаката
(слайда) №1
Наименование плаката
(слайда) №2
Наименование плаката
(слайда) №3
Наименование плаката
(слайда) №4
Наименование плаката
(слайда) №5
Наименование плаката
(слайда) №6
Наименование плаката
(слайда) №7
Наименование плаката
(слайда) №8
Наименование плаката
(слайда) №9
Наименование плаката
(слайда) №10
Наименование плаката
(слайда) №11
Наименование плаката
(слайда) №12
Титульный лист
Цель и задачи выпускной
квалификационной работы
Детализация процесса
«Управление очередью»
Детализация процесса
«Обслужить клиентов»
Диаграмма вариантов
использования для
программного комплекса
«Электронная очередь»
Схема функционирования
рабочего процесса
обслуживания клиентов
Схема базы данных для
программного комплекса
«Электронная очередь» на
логическом уровне
Блок-схема алгоритма
обработки события
«Прибытие клиента»
Блок-схема алгоритма выбора
окна обслуживания
Схема транзитивной сети для
программного средства
«Рабочее место
администратора»
Экранная форма основного
окна программного средства
«Рабочее место оператора»
Экранная форма окна
редактирования списка
работников в приложении
«Рабочее место
администратора»
1/--страниц
Пожаловаться на содержимое документа