Автоматизация рабочего места администратора гостиницы
Введение
Объектом автоматизации является Гостиница, а именно место администратора.
Именно здесь сосредоточенно много однотипной и рутинной работы, которая за счёт
автоматизации может дать значительный прирост быстродействия администратора,
организовать эффективное оформления клиентов и учёт свободных номеров. Замена
ведения бумажного каталога электронным, значительно увеличит скорость поиска
необходимой информации.
Анализ системы
Описание задачи
Разрабатываемая система должна автоматизировать работу гостиницы,
заменить долгие и рутинные операции по ведению базы данных . Оказывать помощь в
поиске необходимой информации, брать на себя рутинную часть оформления заказов
на оформления номера. Отслеживание свободных номеров и организация
предварительного бронирования номера.
Назначение разработки
Разрабатываемый продукт позволит автоматизировать процесс ведения
каталога, что в свою очередь даст возможность легко и быстро находить
необходимую информацию путём запроса у системы. Встроенные средства оформления
заказов, регистрации клиента и номера, позволят стандартизировать
документооборот гостиницы. Созданные модули системы позволят отслеживать
информацию о номере.
Техническое задание
Разработать информационную систему для ведения базы данных о посетителях,
поисковую систему, систему бронирования номера, систему контроля о свободных и
занятых номерах.
Требования к ПО
Необходимо реализовать
. Удобный и простой интерфейс работы с программой.
. Возможность легкого внесения информации в Базу Данных
* О клиенте и оплате услуг;
* О занятых номерах;
* Формирование заказа бронирования номера;
* Сведения о номере;
. Быстрый поиск необходимой информации
* Поиск клиента по номеру;
* Поиск клиента по ФИО;
* Поиск по сотовому тел;
* Поиск по дате посещения;
. Удобное предоставление запрашиваемой информации
* Печать накладных на заказ номера;
* Отображение информации в виде таблиц.
* Длительность проживания
Требования к надёжности
Необходимо создать систему проверки вводимой информации, и выявление
некорректных попыток её внесения, с указанием необходимых форматов вводимых
данных. Особенных требований по надёжности системы при работе в нештатных
ситуациях не предусмотрено. Предусмотреть дублирования информации.
Требования технических средств
Серверная машина
· Процессор 2,4 Ггц;
· ОЗУ 2048;
· Место на HDD
120 Гб;
· Поддержка Lan;
Рабочая машина
· Процессор 1 Ггц;
· ОЗУ 512 ;
· Место на HDD 20 Гб;
· Поддержка Lan;
Технико-экономические показатели
Данный
продукт позволит увеличить прибыль за счёт снижения издержек, а также увеличить
конкурентоспособность. Стадии и этапы разработки. Процесс разработки будет
включать в себя 7 стадий:
1) Анализ
2) Проектирование
БД
) Разработка
БД
) Проектирование
клиент-серверной части
) Разработка
клиент-серверной части
) Тестирование
) Внедрение
Порядок контроля и приёмки
В ходе проверки работы системы необходимо будет:
создать несколько элементов БД (запись читателя, книга)
произвести проверку на некорректный ввод данных
произвести печать отчётов
обеспечит поиск по ключам
Словарь данных
· Номер;
· Место расположения номера;
· Бронирования номер;
· Клиент;
· Фамилия;
· Имя;
· Отчество;
· Адрес;
· Телефон;
· Номер карточки;
· Сумма заказа номера;
· Дата бронирования;
· Дата окончания оплаченного номера;
· Количество свободных номеров;
· Количество занятых номеров;
· Оформить заказ на номер;
· Оплатить номер;
· Добавить информацию о номере;
· Выдать ключи от номера;
· Отменить бронирования;
· Добавить клиента;
· Удалить клиента;
· Изменить информацию о клиенте;
· Частый клиент;
Словарь предметной области
Сформируем словарь предметной области на основании выше проделанных
работ.
Существительные
|
Глаголы
|
Клиент
|
Добавить клиента Удалить
Клиента, Изменить информацию о клиенте
|
ФИО
|
Добавить / Удалить/Изменить
|
Адрес
|
Добавить / Удалить/Изменить
|
Телефон
|
Добавить / Удалить/Изменить
|
Номер карточки
|
Добавить / Удалить/Изменить
|
Бронирование
|
Отменить
бронирования/Добавить бронирование /Изменить информацию о бронированном
номере
|
Сумма заказа номера
|
Добавить цену / Удалить
цену/Изменить цену
|
Дата бронирования
|
Добавить / Удалить/Изменить
|
Дата окончания оплаченного
номера
|
Добавить / Удалить/Изменить
|
Количество свободных
номеров;
|
Добавить / Удалить/Изменить
|
Количество занятых номеров
|
Добавить / Удалить/Изменить
|
Заказ
|
Оформить заказ на
номер/Отказаться от записи
|
Номер
|
Оплатить номер/Добавить
информацию о номере/Выдать ключи от номера/Номер на уборке
|
Определения границ задачи
Требования к системе были изложены в «требованиях ПО» технического
задания. На рис.1 можно увидеть схему состава вычислительной системы. При
детальном рассмотрении можно выделить 3 основные функции системы:
· Ведение базы клиентов и номеров;
· Работа по клиентам и заказанным номерам;
· Ведение поиска.
Рис.1 Схема состава вычислительной системы.
Сценарии работы системы
На данном этапе анализа явно выявляются порядка 24 сценария работы
системы, которые можно заметить, проанализировав диаграммы объектов и классов
рис.2 и рис.3. Данное число не окончательное, на этапе проектирования могут
быть найдены и дополнительные сценарии. Представление данных в виде удобных
отчётов, как бумажных, так и электронных.
· Создать запись о клиенте;
· Удалить запись о клиенте;
· Создать запись о свободных номерах;
· Создать запись о свободных номерах;
· Забронировать номер;
· Создать запись о готовности номера;
· Запись на бронирования номера;
· Оформить бронирования;
· Добавить информацию о клиенте;
· Изменить информацию о клиенте;
· Удалить клиента;
· Оплатить номер;
· Отклонить бронирования;
· Добавить номер к заказу;
· Удалить запись о бронирование;
· Записаться в книгу;
· Получить ключи от номера;
· Найти номер по ФИО клиента;
· Найти номер по готовности;
· Найти номер по расположению;
· Добавить клиента в базу;
· Удалить клиента из базы;
· Поиск забронированных номеров;
Базовые классы системы.
Перечень классов в библиотечной системе:
· Группа «номере»
1. Номер;
2. Сведение о номере
· Бронирование;
· Оформления_номера;
· Каталог_клиентов.
Рис.3 Диаграмма классов на этапе анализа
Анализ
затрат на разработку системы
Анализ производится на основании проделанных выше работ, а именно
выявленных сценариев работы системы. В среднем на описание одного сценария необходимо
написать порядка 30-40 операторов, это равносильно 30 - 50 строкам кода. Однако
существуют сценарии повышенной сложности, к ним относятся сценарии обработки
критических ситуаций, условно, для ведения подсчётов затрат по этим сценариям
примем их сложность равную 2 обычным сценариям, это где то 60-80 операторов или
60-100 строк кода.
В анализе не учитываются затраты на оборудование, необходимое для работы
системы, к которому относятся сервер, рабочие станции, сетевоё оборудование
(сетевые карты, маршрутизаторы. коммутаторы).
Работа программиста
Месячная зарплата программиста составляет 24000р, это 1000 рублей в день
при 24 рабочих днях в месяце. При этом квалифицированный специалист
обеспечивает производительность в 3600 строк кода ежемесячно, ежедневно это
составляет 150 строк отлаженного кода, то сопоставив количество сценариев и
объём кода на описание и реализацию этих сценариев, получим:
основных сценариев = 1050-1750 строк кода
сценариев по отчётам = 450-750 строк кода
сценариев исключительных ситуаций = 900-1500 строк кода
Проведя суммирование получим: 2400-4000 строк кода.
Написание программы нельзя сравнивать с написанием книжного издания, при
организации взаимодействия нескольких модулей могут быть выявлены конфликты, и
разрешение этих проблем так же отнимает время и увеличивает объёмы
переработанного кода. Во избежание отставания от графика, в затратах учтём
время потраченное на разрешения проблем взаимодействия модулей, условно
обозначим его 15% от объёма написанной программы, это будет - 360- 600 строк
кода. И того на написание исполняемого кода необходимо составить программу в
2760-4600 строк кода.
Произведя несложные вычисления, получаем, что на написание исполняемого
кода необходимо потратить 19- 31 день работы программиста, учитывая выходные
дни получается 4,5-6,5 недель. Что ровняется 19000 - 31000 рублей,
затрачивается на работу программиста.
Работа аналитика
Процесс произведения анализа системы, её структуризация и проектирование
является неотъемлемой частью в создании программных продуктов, наряду с
написанием исполняемого кода. На такого специалиста ложится ответственность за
проведение анализа, проектирования и подготовку необходимой технической
документации.
Из-за отсутствия данных по ежемесячной зарплате и ведении учёта объёма
работ такого специалиста, будем условно принимать, что ежедневная заработная
плата его будет ровняться заработной плате программиста, а именно 1000 рублей в
день. Условно примем, что на разработку одного документа у него уходит один
день. Произведём подсчёт затрат на работу аналитика.
Процесс анализа 2-3 дня - 2000-3000 рублей
Процесс проектировки 2-3 дня - 2000-3000 рублей
Составление документов:
· Техническое задание - 1000 рублей
· Руководство пользователя - 1000 рублей
· Руководство программиста - 1000 рублей
· Пояснительная записка - 1000 рублей
Итого 8-10 дней работы аналитика, соответственно 8000-10000 руб.
автоматизация
рабочий место программный
Общие
затраты на разработку системы
Произведя анализ затрат было выяснено, что разработка системы обойдётся в
27000 - 41000 рублей. Время разработки такой системы будет находиться в
интервале 5,5 до 8,5 недель.
Так же в анализе затрат не учитывалось время и стоимость на внедрение
системы, а именно стоимость сетевого оборудования, прокладка локальных сетей, установка
оборудования и настройки сервера.
Состояния системы
В разрабатываемой системе выделяются такие основные состояния:
· Состояние ожидания;
· Добавление информации;
· Пополнение БД;
· Создание учётной записи о клиенте;
· Оформление заказа;
· Запрос к БД;
· Использование БД (или ожидание ответа от БД);
· Отказ от заказа;
· Предоставление информации.
Состояний в данной информационной системе может быть на порядок больше, в
схеме состояний системы учитываются лишь основные рис.6, ниже, в подробном описании
каждого состояния, будет рассмотрено, почему их на самом деле больше.
Рис. 6 Диаграмма основных состояний системы
Основным состояние это - ожидание системы. С него начинается работа
разрабатываемой системы и на нём же она должна заканчиваться, за исключением
внештатных ситуаций которые могут привести к потере данных. Состояние ожидания
является связывающим звеном между всеми состояниями, именно из него начинается
работа с другими компонентами системы, тем самым обеспечивается возможность
совершения необходимого действия.
Добавление информации выделено отдельным состоянием, оно включает в себя
группу состояний, по своим действиям очень похожим. Добавлением информации по
клиентам, номерам, информация по бронированию номера и т.д. Так же оно включает
в себя набор состояний по изменению информации, уже находящейся в базе данных,
а также их удаление.
Создание учётной записи о клиенте, так же имеет в себе подгруппу
состояний по изменению, удалению информации. Но в связи со спецификой работы
системы решено было выделить его отдельно.
Пополнение БД, это состояние является промежуточным, между клиентской
программой и серверной, подразумевает создание записей и последующий перенос
информации на сервер.
Использование БД, это состояние подразумевает использование системой
отдельно выделенной серверной машины, которая занимается хранением, записью
информации и обработкой запросов от клиентских машин.
Оформление заказа, является важным состоянием системы, поэтому его
необходимо было выделить отдельно. В нем происходит формирование записей о
занятых номерах, их суммарной стоимости, удобное и быстрое предоставление
информации и отчет по номеру. Это состояние имеет очень сильное взаимодействие
состоянием «Запрос к БД», за счёт которого и достигается функционал этого
состояния.
Отказ от заказа, один из завершающих моментов состояния «оформление
заказа». В момент этого состояния, система должна отменить все изменения
которые могли произойти, на этапе формирования заказа.
Запрос к БД, одно из самых гибких состояний. Оно также является связующим
звеном между клиентской частью программы и серверной. Под запросом понимаются
не только SQL запросы, но и механизмы контроля
целостности базы данных и адекватности запрашиваемых данных из хранилища.
Использование БД, состояние системы при котором серверная машина
(серверная часть системы), работает с базой данных на прямую через СУБД,
обрабатывает запросы формируя на них ответы и высылает их запрашивающим
клиентским машинам (приложениям).
Предоставление информации, обработчик информации от серверной части
системы (серверной машины), с целью её дальнейшего представления в удобной
форме.
Модули системы
В разрабатываемой системе подразумевается создать 8 модулей, 2 из
сгруппированы под общим названием наполнение таблиц, это удобно потому что
решаемые ими задачи подобны, а именно формирование начальных данных в БД для
возможности функционирования системы в целом. Взаимодействие модулей между
собой показано на рис.7.
Рис.7 Взаимодействие модулей в системе
Перечень модулей в гостиничной системе:
1. Группа модулей «наполнение таблиц»;
· Номер;
· Сведение о номерах;
2. Модуль Услуг
· Бронирование
· Ведение заказов
3. Модуль работы с клиентами;
Экранные
формы
Рис.8 Экранная форма гостиница
Рис 9 экранная форма БД
Рис.10 экранные формы с нумерации формы
Таблица 2 Экранные формы и модулей
Номер формы
|
Название модуля
|
1
|
Гостиница
|
1.2
|
Услуги
|
1.2.1
|
Заказ
|
1.2.2
|
Бронь
|
1.3
|
Номер
|
1.4
|
Клиент
|
2
|
БД
|
Заключение
После прохождения всех стадий объектно-ориентированного анализа и
проектирования, мне удалось сформировать определённое представление о работе
системы, выделение компонентов в отдельные объекты позволяет более эффективно
подойти к созданию необходимого программного продукта, что в свою очередь
позволяет сэкономить время на создание гостиничной системы.
Литература
1. Патрикеев Ю. Н. Объектно-ориентированное
проектирование <http://www.object.newmail.ru/oop1.html>;
. О. А. Акулов, Н. В.
Медведев, Информатика базовый курс - Омега-Л, 2009;
. Гради Буч,
Объектно-ориентированный анализ и проектирование - Вильямс, 2009;
. Б. Карпов, С++ - Питер,
2008;
. Б. Страуструп, Язык
программирования С++ - Бином, 2008;
. Р. Лафоре,
Объектно-ориентированное программирование, 4-е издание - Питер, 2012;
. Д. Паттерсон, Дж.
Хеннесси, Архитектура компьютера, 4-е издание - Питер, 2012;
. Э. Таненбаум, А.
Вудхалл, Операционные системы. Разработка и реализация, 3-е издание - Питер,
2007;
. Э. Таненбаум,
Компьютерные сети, 4-е издание - Питер, 2009;
. Э. Таненбаум,
Архитектура компьютера, 5-е издание - Питер, 2007.