Введение 7
1 Анализ требований к программному средству и постановка задач 8
1.1 Анализ исходных данных и функциональных возможностей разрабатываемого программного средства 8
1.2 Сравнительный анализ с аналогичными программными средствами 10
1.3 Выбор языка программирования и средств разработки 13
1.4 Постановка задач по разработке программного средства 16
2 Разработка программного средства 18
2.1 Анализ и формализация предметной области по теме дипломного проекта 18
2.2 Разработка алгоритмов, использующихся в программном средстве 19
2.3 Особенности реализации пользовательского интерфейса 25
2.4 Интеграция и взаимодействие программного средства с сервисом Firebase 33
2.5 Взаимодействие программного средства с картами сервиса Google Maps 39
2.6 Использование сторонних библиотек при разработке программного средства 43
3 Инженерные расчеты программного средства 47
3.1 Расчет временных характеристик функционирования программного средства 47
3.2 Оценка объема передаваемого трафика 52
4 Тестирование и проверка роботоспособности программного средства 60
5 Эксплуатация программного средства 63
5.1 Ввод в эксплуатацию программного средства 63
5.2 Руководство к пользованию разработанным программным средством 66
6 Технико-экономическое обоснование разработки программного средства автоматизации работы курьера для операционной системы Android 68
6.1 Определение единовременных затрат на создание программного средства автоматизации работы курьера 68
6.2 Определение ожидаемого прироста прибыли в результате внедрения программного продукта 75
6.3 Расчет показателей эффективности использования программного продукта 78
Заключение 81
Список использованных источников 82
Приложение А (обязательное) Листинги кода 85
Приложение Б (информационное) Техническое задание 99
Приложение В (информационное) Результат проверки дипломного проекта в системе «Антиплагиат» 104
Приложение Г (обязательное) Ведомость дипломного проект 106
В результате дипломной работы были выполнены поставленные задачи в начале проектирования по разработке программного средства автоматизации работы курьера для операционной системы Android. Были проанализированы существующее программные средства и составлено техническое задание. На основе этих данных были поставлены и реализованы все технические требования. Данное программное средство позволяет абсолютно любому пользователю зарегистрироваться и оформить предпочитаемый заказ выбрав при этом необходимый ему товар и указав адрес доставки. А курьерам данного мобильного приложения предоставляется уже готовая и сформированная корзина заказов на определенную дату, по которым и строиться оптимальный маршрут их доставки, промежуточными точками которого являются адреса клиентов.
В ходе роботы был использован сервис Firebase, выступающий в качестве сервера. Для выполнения задач воспользовались следующими облачными услуги: Authentication, Realtime Database, Cloud Messaging. Данные услуги использовались в качестве регистрации и аутентификации пользователей, хранение и записи данных в облачной базе, уведомления на устройствах соответственно. Также были задействованы сервисы Google Maps для отображения карты. Воспользовались и некоторыми предоставленными сервисами API, такие как Geocoding API для геокодирования введенного пользователем адреса в координаты и Directions API для построения оптимального маршрута доставки заказов.
В ходе инженерных расчетов были получены рассчитаны временные показатели функционирование и результаты которых показали быстродействие программного средства как на новых, так и на старых устройствах. Была проанализирована временная зависимость от скорости передачи данных, которая показала, что при слабом подключении к сети Интернет программное средство функционирует стабильно и без длительных задержек. Проанализирован входящий и исходящий трафик во время функционирования приложения и результаты которого, при загруженных картах местности, были довольно
малы – порядка всего 50КБ. Как показали результаты основную часть трафику приходиться на загрузку картографических данных.
Показан один из видов тестирования программного средства, которое позволяет находить неисправности и ошибки в его работе при помощи написания специальных отладочных строк кода на удаленных облачных сервисах.
Разработанное программное средство является актуальным на сегодняшний день и было уделено внимание технико-экономическому расчету.
[1] Актуальность версий ОС Android [Электронный ресурс]. – Режим доступа: https://developer.android.com/about/dashboards. Дата: 22.04.2018.
[2] Material Design for Android [Электронный ресурс]. – Режим доступа: https://developer.android.com/design/material. Дата: 14.04.2018.
[3] Delivery App [Электронный ресурс]. – Режим доступа: http://deliveryapp.org. Дата: 18.04.2018.
[4] Postmaster [Электронный ресурс]. – Режим доступа: https://postmates.com. Дата: 18.04.2018.
[5] Road Warrior Route Planner [Электронный ресурс]. – Режим доступа: https://www.roadwarriorllc.com. Дата: 18.04.2018.
[6] Язык программирования Java [Электронный ресурс]. – Режим доступа: https://www.java.com/ru/about. Дата: 18.04.2018.
[7] Язык программирования Java [Электронный ресурс]. – Режим доступа: https://www.metanit.com/java/tutorial/. Дата: 18.04.2018.
[8] Язык программирования Kotlin [Электронный ресурс]. – Режим доступа: https://kotlinlang.org. Дата: 18.04.2018.
[9] Язык программирования Kotlin [Электронный ресурс]. – Режим доступа: https://artjoker.ua/ru/blog/kotlin-vs-java-top-7-preimuschestv/. Дата: 18.04.2018.
[10] Android Studio [Электронный ресурс]. – Режим доступа: https://developer.android.com/studio/features.html. Дата: 18.04.2018.
[11] Архитектурные паттерны проектирования [Электронный
ресурс]. – Режим доступа: https://clck.ru/DU2kv. Дата: 26.04.2018.
[12] Firebase [Электронный ресурс]. – Режим доступа: https://firebase.google.com. Дата: 01.05.2018.
[13] Firebase by product [Электронный ресурс]. – Режим доступа: https://firebase.google.com/docs. Дата: 01.05.2018.
[14] Firebase Authentication [Электронный ресурс]. – Режим доступа: https://firebase.google.com/docs/auth. Дата: 01.05.2018.
[15] Firebase Realtime Database [Электронный ресурс]. – Режим доступа: https://firebase.google.com/docs/database. Дата: 01.05.2018.
[16] Firebase Cloud Messaging [Электронный ресурс]. – Режим доступа: https://firebase.google.com/docs/cloud-messaging. Дата: 02.05.2018.
[17] Карты Google Maps [Электронный ресурс]. – Режим доступа: https://developers.google.com/maps/documentation. Дата: 04.05.2018.
[18] Google Maps Geocoding API [Электронный ресурс]. – Режим доступа: https://developers.google.com/maps/documentation/geocoding. Дата: 04.05.2018.
[19] Google Maps Directions API [Электронный ресурс]. – Режим доступа: https://developers.google.com/maps/documentation/directions. Дата: 04.05.2018.
[20] Lombok [Электронный ресурс]. – Режим доступа: https://projectlombok.org/setup/android. Дата: 05.05.2018.
[21] Butter Knife [Электронный ресурс]. – Режим доступа: http://jakewharton.github.io/butterknife. Дата: 05.05.2018.
[22] Java Client Google Maps Services [Электронный ресурс]. – Режим доступа: https://github.com/googlemaps/google-maps-services-java. Дата: 05.05.2018.
[23] Logcat [Электронный ресурс]. – Режим доступа: https://developer.android.com/studio/debug/am-logcat. Дата: 07.05.2018.
[24] 3G Watchdog [Электронный ресурс]. – Режим доступа: http://3gwatchdog.fr. Дата: 08.05.2018.
[25] Test apps on Android [Электронный ресурс]. – Режим доступа: https://developer.android.com/training/testing. Дата: 11.05.2018.
[26] Build effective unit tests [Электронный ресурс]. – Режим доступа: https://developer.android.com/training/testing/unit-testing. Дата: 11.05.2018.
[27] Automate user interface tests [Электронный ресурс]. – Режим доступа: https://developer.android.com/training/testing/ui-testing. Дата: 11.05.2018.
[28] Espresso [Электронный ресурс]. – Режим доступа: https://developer.android.com/training/testing/espresso. Дата: 11.05.2018.
[29] UIAutomator [Электронный ресурс]. – Режим доступа: https://developer.android.com/training/testing/ui-automator. Дата: 11.05.2018.
[30] Firebase Test Lab [Электронный ресурс]. – Режим доступа: https://firebase.google.com/docs/test-lab. Дата: 11.05.2018.
[31] Пример скриншотов [Электронный ресурс]. – Режим доступа: http://www.pvsm.ru/google-play/253168. Дата: 14.05.2018.
[32] ГОСТ Р ИСО/МЭК 15910-2002. Информационная технология. Процесс создания документации пользователя программного средства. – Введ. 2003-07-01. – М.: Изд-во стандартов, 2002. – 49 с.
[33] ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения. – Введ. 1992-01-01. – М.: Изд-во стандартов, 1990. – 24 с.
[34] ГОСТ 19.201-78. ЕСПД. Техническое задание. Требование к содержанию и оформлению. – Введ. 1980-01-01. – М.: Изд-во стандартов,
1978. – 4 с.
[35] ГОСТ 19.102-77. ЕСПД. Стадии разработки. – Введ. 1980-01-01. – М.: Изд-во стандартов, 1977. – 4 с.
[36] OMG. Unified Modeling Language (OMG UML). Version 2.5.1 [Электронный ресурс]. – 2017. – Режим доступа: https://www.omg.org/spec/UML/2.5.1/PDFВа. Дата: 28.05.2018.
[37] Android. Программирование для профессионалов / Б. Харди,
Б. Филлипс, К. Стюарт. 2-е изд. – СПб. : Питер, 2016. – 640 с.
[38] Эффективное использование потоков в операционной системе Android. Технологии асинхронной обработки данных / А. Ёранссон. – Москва: ДМК Пресс, 2015. – 300 с.
[39] Android's Architecture Components / M. Murphy. – CommonsWare, 2018. – 338 с.