Введение
1 Разработка серверных приложений приема навигационных данных и мониторинга
1.1 Предпроектное исследование серверной части АИС 16
1.2 Техническое задание на разработку сервера 18
1.3 Разработка архитектуры АИС 19
1.4 Выбор технологий, методов и средств разработки 22
1.4.1 Язык программирования C++ 22
1.4.2 Фреймворк QT 23
1.4.3 RabbitMQ 24
1.4.4 PostgreSQL 25
1.4.5 PostGIS 26
1.4.6 Протоколы обмена телеметрическими данными 27
1.5 Проектирование серверных приложений 40
1.6 Разработка серверных приложений 44
1.6.1 Подготовка к разработке 44
1.6.2 Разработка модуль менеджера 45
1.6.3 Разработка модуля конфигурации 48
1.6.4 Разработка модуля ведения логов 49
1.6.5 Разработка модуля для работы с очередью сообщений 50
1.6.6 Разработка модуля подключения к базе данных 51
1.6.7 Реализация модуля для сохранения навигационных данных 52
1.6.8 Разработка модуля для работы с протоколом EGTS 53
1.6.9 Разработка модуля для работы по протоколу NavTelecom 60
1.6.10 Проверка работоспособности программы 62
2 Разработка API обмена данными между клиентскими и серверными приложениями АИС «Управление транспортом» 65
2.1 Теоретический анализ. Разработка базы данных 65
2.1.1 Теория и анализ необходимых средств разработки REST API 65
2.1.2 Описание данных. Проектирование и разработка базы данных 78
2.2 Описание процессов извлечения и обработки данных. Разработка алгоритмов обработки данных 85
2.3 Разработка API обмена данными 94
3 Разработка клиентского приложения АИС «Управление транспортом» 111
3.1 Предпроектное исследование клиентской части АИС «Управление транспортом»
3.2 Составление частного ТЗ разработки клиентской приложения АИС 121
3.3 Проектирование клиентского приложения АИС 128
3.4 Разработка клиентского приложения АИС 137
3.4.1 Разработка модуля «Регулятор» 137
3.4.3 Разработка модуля «Карта» 158
3.4.4 Управление состоянием приложения на примере компонента элементов управления картой
3.4.5 Разработка компонента «Контрольная точка» 172
3.4.6 Разработка компонента «Маршруты» 179
4.1 Предпроектное исследование модуля составления расписания пассажирских перевозок 187
4.1.1 Алгоритмы составления расписания для городского транспорта 187
4.1.2 Анализ алгоритмов составления расписания для междугородних пассажирских перевозок ..195
4.2 Разработка технического задания модуля составления расписания пассажирских перевозок ..210
4.3 Проектирование модуля 213
4.3.1 Разработка диаграмм: UML, IDEF 213
4.3.2 Проектирование базы данных 226
4.4 Разработка программного средства прогнозирования расписания общественного транспорта 239
4.4.1 Проектирование структуры и функционала модуля 239
4.4.2 Выбор архитектурного решения 244
4.5.1 Создание базы данных проекта 253
4.5.2 Реализация модулей программного средства 258
4.5.3 Тестирования разработанной системы 261
Заключение к главе 4 268
Список использованных источников 269
ПРИЛОЖЕНИЕ А 275
ПРИЛОЖЕНИЕ Б 279
В данной комплексной работе рассматривается проектирование и разработка АИС «Управление транспортом». Каждый раздел посвящен определенному модулю системы и подробно рассматривает каждый этап её разработки, от анализа предметной области до её реализации. Объектом, рассматриваемым в данной работе, является транспортная система. АИС не привязана к определенному городу и должна быть достаточно гибкой в отношении географического местоположения.
Актуальность данной работы достаточно высока. Современный мир продолжает осваивать и использовать информационные технологии все большими темпами. Каждая кампания и предприятие стараются опередить своих конкурентов и использование передовых программ стало уже не просто преимуществом, но и необходимостью.
Реализация приложения подобного масштаба позволит существенно упростить работу как управленческого персонала транспортной системы, так и водителей. Простой и легкий в освоении интерфейс позволит быстро изучить данную АИС и запустить в эксплуатацию.
Задачами данной работы являются:
- сбор, анализ научно-технической информации, отечественного и зарубежного опыта по тематике исследования;
- углубление знаний и навыков по проектированию, внедрению и сопровождению информационных систем и технологий на производстве;
- исследование процессов функционирования АИС «Управление транспортом»;
- выбор методов и средств моделирования процессов функционирования АИС «Управления транспортом»;
Целями выполнения данной работы являются:
- Теоретический анализ предметной области;
- Выбор среды разработки;
- Моделирование и построение алгоритмов;
- Разработка серверных приложений приема навигационных данных и мониторинга;
- Разработка API обмена данными между клиентскими и серверными приложениями АИС «Управление транспортом»;
- Разработка базы данных для АИС «Управления транспортом»;
- Разработка клиентского приложения АИС «Управление транспортом»;
- Разработка модуля составления расписания.
Разрабатываемая система должна соответствовать государственным и международным стандартам, а также требованиям, предъявляемым заказчиком.
В ходе выполнения работы необходимо использовать материал, полученный в ходе обучения и приобрести новые навыки разработки приложений. Необходимо проанализировать существующие решения и методики реализации поставленных задач и выбрать наиболее оптимальное решение.
Данная дипломная работа состоит из четырех частей. Первая часть описывает реализацию серверного приложения, направленного на прием, хранение и сортировку данных о перемещении транспортных средств. Вторая часть описывает API, направленный на прием и обработку запросов со стороны WEB-клиента. В третьей части работы описывается клиентская WEB-часть со всем её обширным функционалом. Четвертая часть описывает разработку интерфейса модуля составления расписания.
В результате выполнения работы достигнута поставленная цель: разработан модуль расписания общественного транспорта. При достижении цели решены следующие задачи:
проведен анализ алгоритмов составления расписания пассажирских перевозок;
разработан проект модуля расписания общественного транспорта;
реализован прототип программного средства прогнозирования расписания общественного транспорта.
Основными технологиями создания модуля выбраны: язык гипертекстовой разметки HTML, который служит для наглядного и хорошо структурированного представления информации; SQL - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных; Docker – как инструмент организации окружения для реализации проекта; phpMyAdmin - веб-приложение с открытым кодом, написанное на языке PHP, представляющее собой веб-интерфейс для администрирования СУБД MySQL.
системы вызова экстренных оперативных служб с инфраструктурой системы экстренного реагирования при авариях [Текст]. - Москва: Стандартинформ, 2013. -67с.
2. Об утверждении требований к средствам навигации, функционирующим с использованием навигационных сигналов системы ГЛОНАСС или ГЛОНАСС/GPS и предназначенным для обязательного оснащения транспортных средств категории М, используемых для коммерческих перевозок пассажиров, и категории N, используемых для перевозки опасных грузов [Текст]: Приказ Минтранса РФ от 31 июля 2012 г. № 285. -2012. -82с.
3. Протокол информационного обмена оборудования ООО «Навтелеком»
[Электронный ресурс] Режим доступа:
https://navtelecom.ru/images/documentation/protocol/protocol_of_information_excha nge_navtelecom_v5.5_%28160817%29.pdf, свободный
4. Advantages and Disadvantages of C++ | Make your Next Move! // Data Flair [Электронный ресурс] Режим доступа: https://data-flair.training/blogs/advantages- and-disadvantages-of-cpp/, свободный
5. Шлее Макс Qt 5.10. Профессиональное программирование на C++ / Макс Шлее. - СПб.: БХВ-Петербург, 2018. -1072 с.
6. Qt (software) // Wikipedia [Электронный ресурс] Режим доступа: https://en.wikipedia.org/wiki/Qt_(software), свободный
7. RabbitMQ // Wikipedia [Электронный ресурс] Режим доступа: https://en.wikipedia.org/wiki/RabbitMQ/, свободный
8. Моргунов, Е. П. PostgreSQL. Основы языка SQL: учебное пособие / Е. П. Моргунов. - СПб.: БХВ-Петербург, 2018. -336 с.
9. Новиков, Б. А. Основы технологий баз данных: учебное пособие / Б. А. Новиков, Е. А. Горшкова, Н. Г. Графеева. - М.: ДМК Пресс, 2020. -582 с.
10. PostGIS 3.0.2dev Manual [Электронный ресурс] Режим доступа: https://postgis.net/stuff/postgis-3.0.pdf, свободный
11. Леоненков, А. В. Самоучитель UML / А. В. Леоненков. - СПб.: БХВ- Петербург, 2007. -417 с.
12. Исаев Г.Н. Проектирование информационных систем: Учебное пособие / Г.Н. Исаев. - М.: Омега-Л, 2013. -424 с.
13. Мюллер, Р.Дж. Базы данных и UML. Проектирование / Р.Дж. Мюллер. - М.: ЛОРИ, 2017. -420 с.
14. Зандастра М. PHP. Объекты, шаблоны и методики программирования // И.: Вильямс, 2011. - 560 с.
15. Кузнецов М., Симдянов И. Самоучитель PHP 7 // И.: БХВ-Петербург,
2018. - 450 с.
16. [Интернет-ссылка] https://www.kennethlange.com/books/The-Little-
Book-on-REST-Services.pdf // REST API
17. [Интернет-ссылка] https://ozvid.com/blog/46/reasons-why-laravel-
framework-is-more-preferred-over-other-php-frameworks // Исследование
фреймворков.
18. [Интернет-ссылка] What are the best PHP frameworks for building a RESTfull API // Slant URL: https://www.slant.co/topics/6956/~php-frameworks-for- building-a-restful-api.
19. [Интернет-ссылка] Fat-Free Framework // URL: []
20. [Интернет-ссылка] Панченко И. PostgreSQL: вчера, сегодня, завтра // URL: https://www.osp.ru/os/2015/03/13046900/
21. Г.-Ю. Шениг PostgreSQL 11. Мастерство разработки // И.: ДМК Пресс,
2019, 352 с.
22. Д. Арлоу, А. Нейштадт UML 2 и Унифицированный процесс: практический объектно-ориентированный анализ и проектирование, 2-е издание// И.: БХВ-Петербург, 2014, 257с.
23. Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование
информационных систем Интернет-университет информационных технологий - 2-е изд. - М.: Бином. Лаборатория знаний Интуит Серия: Основы
информационных технологий, 2008. - 300 с.
24. ГИС «Управление транспортом» [Электронный ресурс]. Режим доступа: https://transport.stavregion.ru
25. ГИС «Московский транспорт» [Электронный ресурс]. Режим доступа: http://transport.mos.ru/
26. ГИС «Московский транспорт» [Электронный ресурс]. Режим доступа: http://transport.mos.ru/
27. ГИС «Портал общественного транспорта Санкт-Петербурга»
[Электронный ресурс]. Режим доступа:
http://transport.orgp. spb.ru/Portal/transport/main
28. ГИС «Официальный портал транспортного информирования граждан» [Электронный ресурс]. Режим доступа: http://transport.volganet.ru/main.php
29. Develop - OpenStreetMap Wiki [Электронный ресурс]. Режим доступа: https: //wiki.openstreetmap. org/wiki/Develop
30. Leaflet - a JavaScript library for interactive maps [Электронный ресурс]. Режим доступа: https://leafletjs.com/
31. Реактивное программирование — Википедия [Электронный ресурс]. Режим доступа: https: //ru.wikipedia.org/wiki/Реактивное_программирование
32. Обзор Vue.js - База знаний Timeweb Community [Электронный ресурс]. Режим доступа: https://timeweb.com/ru/community/articles/obzor-vue-js-1
33. Введение — Vue.js [Электронный ресурс]. Режим доступа:
http s: //ru.vuej s. org/v2/guide/
34. Хаммер М., Чампи Дж. X 18 Реинжениринг корпорации: Манифест революции в бизнесе. Пер. с англ. — СПб.: Издательство С.-Петербургского университета, 1997. — 332 с.
35. Бизнес-логика [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/Бизнес-логика
36. Гаврилов А. В. Анализ функциональных возможностей бесплатных CASE-средств проектирования баз данных // Открытое образование. 2016. — С. 39-43.
37. Гридина Е. Г. Использование поисковых систем для увеличения посещаемости федеральной системы информационно-образовательных ресурсов / Е. Г. Гридина, Д. С. Лысенко // Открытое образование. 2009. №3. C. 43-48.
38. Душкина М. Р. PR и продвижение в маркетинге. Коммуникациии воздействие, технологии и психология. - СПБ: Питер, 2010. - 560 с.
39. Зашеловский А. Е. Среды разработки программного обеспечения, ориентированные на процессы [Электронный ресурс] / А. Е. Зашеловский, О. Ф. Абрамова. - Режим доступа: http://www.scienceforum.ru/2015/pdf/15128.pdf(дата обращения 18.11.2010).
40. Играем мускулами: методы и средства взлома баз данных MySQL [Электронный ресурс]. — URL: https://xakep.ru/static/best-hacks/MYSQL.pdf(дата обращения: 22.06.2020).
41. Карпова И. П. Базы данных. Учебное пособие. - Московский государственный институт электроники и математики (Технический университет). - М., 2009. — 131 с.
42. Косенко В. В. Популярные языки программирования с позиций системного программирования / В. В. Косенко // Информационные технологии и вычислительные системы. - 2013. - № 1. - С. 54-59
43. Коцюба И. Ю. Основы проектирования информационных систем. Учебное пособие / И. Ю. Коцюба, А. В. Чунаев, А. Н. Шиков. - СПб: Университет ИТМО, 2015. - 206 с.
44. Либерти Д. Программирование на C#. Создание .NET приложений. Программирование на C# / Д. Либерти. - М.: Бином 2010. - 684 с.
45. Малыхина, М.П. Базы данных: основы, проектирование,
использование: учебное пособие / М. П. Малыхина, Санкт-Петербург: БХВ- Петербург, 2004, 512 с.
46. Неретина Е. А. Web-сайт ВУЗа как важный инструмент маркетинговых коммуникаций // Вестник ЮУрГУ. Серия: Экономика и менеджмент. 2009. №41 (174). [Электронный ресурс] URL: http://cyberleninka.ru/article/n/web-sayt-vuza-
47. Пинягина О. В. Практикум по курсу "Базы данных": [учебное пособие] / О. В. Пинягина, И. А. Фукин; Казан. (Приволж.)федер. ун-т, Казань: Казанский университет, 2012, 91 с.
48. Понимание NoSQL // Spring [Электронный ресурс]. — URL: https://spring-projects.ru/understanding/nosql/(дата обращения: 22.06.2020).
49. Релевантность: [Электронный ресурс] // SEO-COPYWRITING.
Уникальный контент. URL: http://www.seo-copywrite.ru/15/(Дата обращения: 18. 05.2020).
50. Советов Б.Я. Базы данных: теория и практика: учебник для бакалавров: для студентов вузов, обучающихся по направлениям "Информатика и вычислительная техника" и "Информационные системы" / Б.Я.Советов, В.В.Цехановский, В.Д.Чертовской, Издание 2-е,Москва:Юрайт, 2012,463 с
51. Туманов В. Е. Проектирование хранилищ данных для систем бизнес- аналитики: учебное пособие / В.Е.Туманов, Москва: Интернет-Университет Информационных Технологий: БИНОМ. Лаборатория знаний, 2011, 615 с.
52. Что нужно знать о развитии СУБД // Cnews [Электронный ресурс]. — URL: https://www.cnews.ru/articles/2019-08-26_chto_nuzhno_znat_o_razvitii_subd(дата обращения: 22.06.2020).
53. Шипулина Ю. С. SEO-оптимизация: основные ошибки в её применении
/ Ю. С. Шипулина, М. С. Проноза // Экономические проблемы устойчивого развития: материалы Международной научно-практической конференций,
посвященной памяти проф. Балацкого Е. Ф. (г. Суммы, 24-26 апреля 2013 г.): в 4 т. общ. ред. А. В. Прокопенко. - Сумы: Сумский государственный университет, 2013.-Т. 4. - С. 152-153.
54. Явич М. П. Сравнение процессов оптимизации сайта в поисковых системах с использованием PHP и HTML / М. П. Явич, Г. Ю. Иашвили // Современная техника и технологии. 2014. № 3 [Электронный ресурс]. URL: http://technology.snauka.ru/2014/03/3233(дата обращения: 18.02.2016).
55. Microsoft SQL Server // Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/Microsoft_SQL_Server(дата обращения: 22.06.2020).
56. MySQL Workbench // Википедия [Электронный ресурс]. — URL: https://ru.wikipedia.org/wiki/MySQL_Workbench(дата обращения: 22.06.2020).