Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Автоматизация продажи авиабилетов (Технико-экономическая характеристика предметной области и предприятия)

Содержание:

Введение

В данной курсовой работе планируется создать информационную систему, которая будет автоматизировать процесс продажи авиабилетов. Для реализации данной системы необходимо будет проанализировать возможные СУБД и возможные варианты реализации информационной системы.

Для начала необходимо изучить структуру организации – составить организационную структуру, изучить текущее положение компании и соотнести всю полученную информацию.

После анализа структуры организации и выбора типа информационной системы можно составить будущую техническую архитектуру и прототип базы данных. Необходимо подобрать подходящую конфигурацию для сервера.

При разработке информационной системы необходимо сделать её удобной и понятной для пользователей и для будущей поддержки, а также правильно спроектировать её структуру, в целях экономии времени если будет необходимо дополнить или как-то изменить систему без необходимости в полном переписываний.

Следует изучить опыт уже разработанных информационных систем других предприятий, определить какие решения пользуются популярностью, какие методы разработки можно использовать для сокращения расходов при разработке и поддержке выпущенной системы.

Пользователями данной информационной системы будут в большей части клиенты предприятия и в меньшей – работники этого предприятия, так как цель информационной системы – автоматизировать процесс и уменьшить, а в идеале – убрать, людей, для функционирования бизнес-процесса.

Следовательно, информационная система должна быть дружелюбна и интуитивно понятна в первую очередь клиентам. Самый популярный способ взаимодействия между клиентом и каким-либо предприятием – это с помощью сети Интернет. Благодаря сети Интернет можно мгновенно общаться с клиентами и реагировать на поступающие заявки. Самой распространённой реализации информационной системы, которая использует все преимущества сети Интернет, является Веб-приложения. Кроме того, отсутствует необходимость в установке и настройке данной системы каждому пользователю, вся настройка происходит единожды на стороне компании с помощью квалифицированных сотрудников. Это обеспечивает единый интерфейс и единый принцип работы для всех клиентов и сотрудников компании, а интуитивно понятный принцип работы с Веб-приложением знаком каждому пользователю компьютера или переносных устройств, благодаря чему нет нужды в обучении.

Ещё одним большим преимуществом Веб-приложения является одинаковая работа на всех популярных платформах: персональные компьютеры, ноутбуки и смартфоны. Также Веб-приложения одинаково работает на всех операционных системах: Windows, MacOS, системы на базе ядра Linux и другие, на которых возможна установка браузера. Из этого следует, что для работы с информационной системой требуется только подключение к сети Интернет и современный браузер, что в наше время является повсеместным. С другой стороны – стороны разработки информационной системы, также существует большое преимущество. В отличии от традиционных приложении, которые должны быть разработаны с учётом конечной платформы (персональный компьютер или смартфон), необходимо учитывать еще и конечную операционную систему, на которой будут использовать информационную систему. Из-за необходимости в разработке и тестировании под несколько платформ растут расходы на её создание. Веб-приложение не имеет таких минусов и для работы требует только браузер и соединение с сетью Интернет. Существуют современные инструменты, которые даже помогают учитывать разные версии браузеров и создавать почти идентичный интерфейс на разных браузерах.

Из всего сказанного выше, для автоматизации продажи авиабилетов было решено разработать Веб-приложение.

  1. Технико-экономическая характеристика предметной области и предприятия.

    1. Характеристика предприятия и его деятельности

Компания «РосАвиа» начала свою деятельность в 2011 году, она осуществляет продажу авиабилетов. Клиентами компании являются физические лица. Главный офис компании расположен в городе Москва.

Самолёты компании перевозят пассажиров через аэропорты Москвы, Санкт-Петербурга, Архангельска и другие аэропорта РФ, а также в страны Европы: “Польша”, “Германия” и т.д.

Также компания участвует в подготовке и тренировке молодых пилотов с помощью своего квалифицированного персонала и современного оборудования.

В ближайшее время компания планирует расширить свой бизнес на регионы Азии: Китай, Южную Корею, Японию и охватить Дальний Восток Российской Федерации.

На данный момент основной доход идёт с перелётов на территории СНГ, на втором месте идёт доход с перелётов между стран Европы, но компания планирует получать доход с Азиатского региона сравнимый с основным доходом.

Компания старается модернизировать все текущие самолёты до самых современных моделей и принимает активное участие в разработке международных стандартов.

Кроме перевозки пассажиров, компания планирует освоить грузоперевозки между Китаем и Российской Федерацией.

Технико-экономические показатели объекта управления Таблица 1

№ п\п

Наименование характеристики (показателя)

Значение показателя на определённую дату либо за период

1

Количество катастроф

0 катастроф за 2018 год

2

Количество проданных билетов

120 тысяч за 2018 год

3

Средняя оплата труда

90 тысяч рублей в месяц

4

Количество самолётов

40 на 2018 год

5

Прибыль

420 000 000 рублей за последний год

    1. Организационная структура управления предприятием

Рисунок 1 организационная структура предприятия

Руководство, менеджер, IT-отдел, отдел кадров и маркетинговый отдел находятся в главном офисе компании “РосАвиа” в городе Москва. Обслуживающий персонал и наземное обслуживание расположены в аэропортах. Лётные персонал в основном находится в полёте или на перерыве между полётами.

    1. Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов

На диаграмме прецедентов, рисунок 2, отражено отношение между клиентом и работниками предприятия.

Рисунок 2 Диаграмма прецедентов

В качестве задачи для автоматизации бизнес-процесса была выбрана продажа авиабилетов, как самая важная и трудоёмкая для ручной работы задача.

Сам бизнес-процесс продажи билетов делится на: просмотр всех доступных рейсов клиентом и выбор необходимого, получение дополнительной информации о рейсе, заполнение необходимой информации и совершение платежа. Все эти процессы можно довольно легко и просто автоматизировать с помощью веб-приложения, благодаря чему можно совершать покупку билетов с любой точки Земли. Потоки информации также автоматизированы, история покупок, список всех клиентов, самолётов и рейсов хранится в базе данных, и необходимая информация может быть быстро отсортирована и получена.

Благодаря автоматизации данного бизнес-процесса можно избавиться от ручной работы и, следовательно, человеческой ошибки со стороны компании: при оформлении покупки, сортировке и получении информации.

Бизнес-процесс, который требуется автоматизировать показан с помощью IDEF на рисунке 3, декомпозиция данного бизнес-процесса отображена на рисунке 4.

Рисунок 3 IDEF0

Рисунок 4 декомпозиция бизнес-процессов

На рисунке 5 показана диаграмма деятельности, где отображена процедура покупки билета.

Рисунок 5 диаграмма деятельности

  1. Техническое и программное обеспечение

    1. Структура и состав комплекса технических средств и конфигурации сети

Каждый отдел в компании имеет компьютеры, факс, VOIP и МФУ, все отделы и сервер соединены в одну сеть. Веб-сервер и сервер базы данных работают на одном физическом сервере.

Рисунок 6 Техническая архитектура организации

Характеристика устройств Таблица 2

Названия устройства

Характеристика

Сервер “Dell PowerEdge R540 R540-7038_K2”

Процессор: Intel Xeon 5120

Оперативная память: 32Gb 2x

Компьютеры IT-отдела

Процессор: Intel Core I5 6500

Видеокарта: NVIDIA GeForce GT1030 2Gb

Оперативная память: Crucial 8Gb 1866MHz CL11

Материнская плата: Asus B150M

Жёсткий диск: Western Digital 500Gb 7200 RPM 64Mb Cash

Операционная система: Windows 10 Pro

Компьютера отдела маркетинга

Процессор: Ryzen 5 1600

Видеокарта: NVIDIA GeForce GTX1060 3GB

Оперативная память: Crucial 8Gb 1866MHz CL11

Материнская плата: ASRock 970 Pro3 R2.0

Жёсткий диск: Western Digital 500Gb 7200 RPM 64Mb Cash

Операционная система: Windows 10 Pro

Компьютеры отдела кадров

Процессор: Intel Core I3 6100

Видеокарта: NVIDIA GeForce GT710 2GB

Оперативная память: 4GB

Материнская плата: Gigabyte H110

Жёсткий диск: Western Digital 500Gb 7200 RPM 64Mb Cash

Операционная система: Windows 10 Pro

Компьютеры руководства

Процессор: Intel Core I5 6500

Видеокарта: NVIDIA GeForce GT1030 2Gb

Оперативная память: Crucial 8Gb 1866MHz CL11

Материнская плата: Asus B150M

Жёсткий диск: Western Digital 500Gb 7200 RPM 64Mb Cash

Операционная система: Windows 10 Pro

VOIP

IP-Telephone GrandStream GXP-1610

Факс

Panasonic KX-FT 984RU-B

МФУ

HP-LaserJet Pro M28A

Маршрутизатор

Router Asus RT-AC66U

    1. Характеристика базы данных

Для разработки ИС необходимо было выбрать СУБД и разработать базу данных в ней. В качестве СУБД была выбрана MySQL которая:

  • Бесплатная.
  • Открытый исходный код.
  • Отлично подходит для малых и средних приложений.

В качестве подсистемы был сделан выбор в пользу InnoDB, данная подсистема имеет механизм транзакции и внешних ключей.

Был спроектирован минимальный набор сущностей для функционирования ИС:

  • Пассажир – для хранения информации о клиентах.
  • Билет – для хранения информации о купленных билетах.
  • Рейс – для хранения информации о рейсах.
  • Аэропорт – для хранения информации о аэропортах.
  • Город – для хранения информации о городах.
  • Страна – для хранения информации о странах.
  • Самолёт – для хранения информации о самолёте.

Вся база данных была нормализована до 3 уровня.

В сущности “Пассажир” хранится минимальный набор информации о клиенте который хотя бы раз купил билет.

В сущности “Билет” хранится информация в виде внешнего ключа о клиенте (пассажире) и о рейсе, также есть поле указывающее на дату покупки билета и пустое поле указывающее на дату использования билета.

В сущности “Рейс” хранится информация о самолёте (внешний ключ), о датах прибытия/отбытия и о аэропортах прибытия/отбытия, также здесь указана стоимость.

В сущности “Аэропорт” хранится название аэропорта и внешний ключ на город в котором аэропорт находится.

В сущности “Город” хранится название города, координаты в виде полей “широта” и “долгота”, а также внешний ключ на страну. Координаты города были добавлены для возможности реализации показа в Веб-Приложении карты.

В сущности “Страна” хранится просто название страны.

В сущности “Самолёт” хранится название самолёта и вместимость.

Таким образом, в БД отсутствует дублирование данных, вся информация разделена на достаточное количество полей (Имя, фамилия клиента) и можно очень просто найти, например, список всех купленных билетов по первичному ключу сущности “Пассажир” и т.д.

Рисунок 7 ERD

Сущность “Пассажир” Таблица 3.1

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

10

Первичный ключ

Имя

first_name

Короткий текст

20

Фамилия

last_name

Короткий текст

20

Пол

sex

Короткий текст

3

Дата рождения

birthdate

Дата

Сущность “Билет” Таблица 3.2

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Идентификатор полёта

flight

Число

5

Внешний ключ

Идентификатор пассажира

passenger

Число

5

Внешний ключ

Дата покупки

buy_time

Дата

Дата использования

use_time

Дата

Сущность “Полёт” Таблица 3.3

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

10

Первичный ключ

Идентификатор самолёта

airplane

Число

5

Внешний ключ

Время прибытия

arrival_time

Дата

Время отбытия

departure_time

Дата

Идентификатор аэропорта прибытия

arrival_airport

Число

5

Внешний ключ

Идентификатор аэропорта отбытия

departure_airport

Число

5

Внешний ключ

Стоимость билета

cost

Число

5

Сущность “Самолёт” Таблица 3.4

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

1

Вместимость

capacity

Число

3

Сущность “Аэропорт” Таблица 3.5

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

45

Идентификатор города

city

Число

3

Внешний ключ

Сущность “Город” Таблица 3.6

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

20

Широта

lat

Вещественное число

Долгота

long

Вещественное число

Идентификатор страны

country

Число

5

Внешний ключ

Сущность “Страна” Таблица 3.7

Наименование поля

Идентификатор поля

Тип поля

Длина поля

Прочее

Идентификатор

_id

Счетчик

5

Первичный ключ

Название

name

Короткий текст

40

Рисунок 8 Сценарии диалога

    1. Описание программных модулей

ИС состоит из 2 модулей: серверная часть и клиентская часть.

Серверная часть прямо отвечает за работу Веб-Сервера NodeJS:

  • Перенаправление на страницы.
  • Отправка запросов к БД.
  • Обработка запросов от пользователя и БД.

Клиентская часть отвечает за:

  • Изменение и отображение HTML.
  • Интерфейс для работы с БД.
  • Покупка билетов.
  • Сортировка и проверка получаемой информации от БД или пользователя.

Серверная часть написана с использованием языка JavaScript и библиотек:

  • Express – работа с HTTP запросами.
  • Mysql – Работа с запросами к БД.
  • Qrcode – Создание QR-кода содержащего номер билета.
  • Html-pdf – Создание PDF файла из HTML страницы.
  • Crypto – Шифрование и дешифрование текста.

Клиентская часть написана с использование языка TypeScript, фреймворка Angular 7.

Фреймворк Angular 7 - JavaScript-фреймворк с открытым исходным кодом. Предназначен для разработки одностраничных приложений. Его цель — расширение браузерных приложений на основе MVC-шаблона, а также упрощение тестирования и разработки.

Фреймворк работает с HTML, содержащим дополнительные пользовательские атрибуты, которые описываются директивами, и связывает ввод или вывод области страницы с моделью, представляющей собой обычные переменные JavaScript. Значения этих переменных задаются вручную или извлекаются из статических или динамических JSON-данных.

Angular 7 написан на язык TypeScript, который требуется для использования Angular.

TypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript.

Для работы сайта требуется поддержка HTML5.

  1. Контрольный пример реализации и его описание

На странице “Покупка билетов” Веб-Приложения расположен список рейсов в виде таблицы.

Нажатие на заголовок колонки позволяет отсортировать всю таблицу по убыванию или возрастанию.

Нажатие на строку в таблице перенаправляет на страницу с детальной информацией по полёту, см. рисунок 9.2.

Рисунок 9.1 Пример страницы “Покупка билетов” Веб-Приложения

Адрес страницы “Покупка билетов” выглядит как: http://rosavia.com/flights.

Адрес страницы с информацией о рейсе выглядит как:

http://rosavia.com/flight/id, где: id – номер рейса.

Например: http://rosavia.com/flight/1.

Рисунок 9.2 Информация о рейсе

На странице с информацией о рейсе можно вернуться на страницу со списком рейсов или купить билет. При нажатии на кнопку “Купить билет” происходит перенаправление на адрес http://rosavia.com/buy/id, где: id – номер рейса. Например: http://rosavia.com/buy/1.

Рисунок 9.3 Покупка билета

На странице покупка билета необходимо ввести персональные данные:

  • Имя
  • Фамилия
  • Пол
  • Дата рождения

При вводе осуществляется проверка данных. Если какое-либо поле не введено: оно выделяется красным, см. рисунок 9.4.

При нажатии на кнопку “Оплатить” также происходит проверка введенных данных и, если какое-либо поле отсутствует – будет показано предупреждение.

Рисунок 9.4 Ошибка ввода

Если данные прошли проверку на сайте – они отправляются на Веб-Сервер, где обязательно проходят повторную проверку и, если есть ошибка – возвращается код и описание ошибки. В случае если ошибки не обнаружено – сервер делает запрос к БД и ищет на наличие уже купленного билета на данный рейс данным клиентом. Если билет на рейс уже куплен – возвращается ответ клиенту о том, что билет был куплен. Если билет не был куплен ранее – в БД заносится новая запись в таблицу “Билет”.

Рисунок 9.5 Повторная покупка билета

После успешных запросов к БД, сервер шифрует комбинацию персональных данных и информацию о билете и тем самым создаёт уникальный хэш купленного билета, по которому можно идентифицировать его.

Шифрование необходимо для усложнения перебора запросов к серверу в целях получения билетов клиентов. Обычный хэш билета выглядит так: “071669e491a354e8f518c2fe75c9948fd0a366867db6abf44e9397f443eddc38fe11097532545a7f8a4b8ee9acc028d76cd7a909304b3f1375b690e3d9caad21”

После получения хэша на сервере – он возвращает его клиенту и переводит на страницу http://rosavia.com/ticket/hash, где: hash – хэш билета. Например:

http://rosvia.com/ticket/071669e491a354e8f518c2fe75c9948fd0a366867db6abf44e9397f443eddc38fe11097532545a7f8a4b8ee9acc028d76cd7a909304b3f1375b690e3d9caad21

Уникальный номер билета такого вида очень и очень сложно подбирать, в качестве шифрования используется алгоритм AES-192, используемый США для шифрования данных. К нему добавляется пароль, который также требуется для шифрования и дешифрования хэша.

Рисунок 9.6 Пример билета

При переходе на страницу билета – выдаётся PDF файл, который можно напечатать и использовать как билет. Вёрстка билета была выполнена очень минималистично и в чёрно-белых цветах в целях доступности печати без траты красок.

Сверху на билете расположен QR-код в котором зашифрован номер билета. Это нужно для возможности мгновенно считать как клиенту с помощью камеры, так и на регистратуре в случае необходимости. Это намного упрощает ввод номера билета. Сам номер билета также присутствует сверху, в случае если у клиента нет средств для прочтения QR-кода или его искажения. Сам QR-код был сделан достаточно больших размеров что бы его можно было прочитать на большинстве камер.

Ниже верхней части билета расположена информация, которая получается с помощью хэша билета и поэтому может быть отрезана. Необходимо только знание хэша.

Весь билет помещается на лист A4.

Заключение

В ходе курсовой работы была создана ИС в виде Веб-приложения автоматизирующая продажу авиабилетов. Для ИС была разработана база данных с использованием MySQL и был продемонстрирован пример реализации данной ИС.

Перед созданием ИС были проанализированы различные СУБД и возможные способы реализации системы. Было решено что MySQL является надёжной и проверенной СУБД, а Веб-приложение – современный и удобный способ автоматизировать бизнес-процессы.

Веб-приложение позволяет предоставить пользовательский интерфейс клиентам без необходимости устанавливать дополнительное программное обеспечение, для работы с ИС требуется любой современный браузер, без которого современный пользователь не обходится. Нет нужды покупать или устанавливать дорогое или ресурсоёмкое приложение как клиенту – так и компании. MySQL и веб-сайт занимают совсем небольшое пространство на диске и не требуют много ресурсов, но позволяют взаимодействовать с ИС большому количеству людей а также разделять полномочии между сотрудниками.

Для создания данной ИС не требовалось большого количества времени благодаря уже разработанной СУБД, веб-серверу NodeJS и фреймворку Angular.

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

Фреймворк Angular, как и веб-сервер, имеет огромную известность и популярность среди разработчиков, в основном благодаря тому – что авторами фреймворка являются работники компании Google.

Единственный возможный недостаток связан с использованием фреймворка Angular – он требует язык TypeScript, который является производным от JavaScript, но он не сложен в освоении и схож с JavaScript.

Также, для СУБД был изучен язык запросов, с помощью которого осуществляются все манипуляции с базой данных, метод создания ERD, проектирование и создание таблиц, их нормализация, создание внешних ключей, создание запросов.

Была изучена процедура настройки сервера и маршрутизации при создании веб-сервера.

Стоит упомянуть, что использование такого набора инструментов имеет собственное название – “стэк MEAN”. Стэк MEAN подразумевает под собой создание Веб-приложения с помощью языка JavaScript на всех уровнях информационной системы. Если раньше на уровне веб-сервера необходимо было использовать язык PHP, а на уровне клиентской части – JavaScript, то сейчас нет необходимости изучать два языка, можно использовать только один – JavaScript. Кроме этого – в стэк MEAN входит:

  • Библиотека Express – для серверной части.
  • Фреймворк Angular – для клиентской части.
  • MongoDB – как база данных.
  • NodeJS – как веб-сервер.

Стэк MEAN не требует всех вышеперечисленных технологии. В данной реализации информационной системы вместо MongoDB была использована СУБД MySQL с использованием одного языка – JavaScript. Также могут быть использованы другие библиотеки и фреймворки. Стэк MEAN в главную очередь подразумевает использование единого языка JavaScript, чем использование определенных технологии.

В более крупных компаниях, команда разработчиков веб-приложения делится на серверную и клиентскую часть. В данной курсовой работе оба модуля были реализованы одним человеком. Следовательно, кроме всего вышеперечисленного, была изучена реализация всех частей любого современного Веб-приложения.

Список литературы

  1. Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационных систем – М.: ИУИТ, 2012 – 300 с.
  2. Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с
  3. Методология функционального моделирования IDEF0, Руководящий документ, Госстандарт России
  4. Абрамова Л.В. Инструментальные средства информационных систем: учебное пособие. - Архангельск: САФУ, 2013. - 118 с.
  5. Заботина Н.Н. Проектирование информационных систем: учебное пособие. – М.: ИНФРА-М, 2013. - 331с.
  6. Золотов С.Ю. Проектирование информационных систем: учебное пособие. - Томск: Эль Контент, 2013. - 88 с.
  7. Методы и средства проектирования информационных систем и технологий: учебное пособие / авт.-сост. Е.В. Крахоткина. - Ставрополь: СКФУ, 2015. - 152 с.
  8. Проектирование информационных систем. Проектный практикум: учебное пособие / А.В. Платёнкин, И.П. Рак, А.В. Терехов, В.Н. Чернышов. - Тамбов: Издательство ФГБОУ ВПО «ТГТУ», 2015. - 81 с.
  9. Советов Б.Я. Базы данных: учебник / Б.Я. Советов, В.В. Цехановский, В.Д.г
  10. Черноусова А.М Создание и использование баз данных: учебное пособие/ А.М Черноусова. – Оренбург: ГОУ ОГУ 2009г 244c 1. Атре Ш. Структурный подход к организации баз данных. - М.: Финансы и статистика, 1983. - 320 с.
  11. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. - М.: Финансы и статистика, 1999. - 351 с.
  12. Голицина О.Л., Максимов Н.В., Попов И.И. Базы данных: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2009. - 352 с.
  13. Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. -М.: Мир, 1991. - 252 с.
  14. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2008. - 304 с.
  15. Корнеев И.К., Машурцов В.А. Информационные технологии в управлении. - М.: ИНФРА-М, 201-. - 158 с.
  16. Мартин Дж. Планирование развития автоматизированных систем. - М.: Финансы и статистика. - 196 с.
  17. К.Дж. Дейт Введение в системы баз данных -- 8-е изд. -- М.: «Вильямс», 2011 -- С. 1328.