Введение
В настоящее время, с появлением высоких технологий и повсеместно доступной сети интернета люди стали проводить все больше времени за компьютерами, телефонами и другими устройствами которые заменяют реальные отношения, следовательно, становится актуальной задача формирования мероприятий для небольших групп лиц незнакомых друг с другом, по имеющимся общим интересам. Наряду с проблемой формирования, также стоит проблема уменьшения времени на поиск желаемых мероприятий, которое является важнейшим человеческим ресурсом и которого всегда не хватает. Таким образом возникает необходимость в разработке программы, позволяющей решить эти проблемы.
Таким образом, в рамках данной выпускной квалификационной работы необходимо разработать мобильную программу организации краткосрочных событий. программа аndroid мобильный руководство
Программа должна позволять просматривать имеющиеся и создавать собственные события, отображать и добавлять эти события на интерактивной карте в виде маркеров, делиться событиями в социальных сетях, синхронизировать эти события с календарем, а также отправлять push-уведомления.
1. Обзор и сравнение существующих решений
1.1 Nearify
Nearify — программа, разработанная индийскими программистами, позволяющая искать и создавать различные события, в большинстве своем события представляют собой массовые мероприятия, такие как концерты, конференции, фестивали, спортивные соревнования, выставки и т.д. По словам разработчиков, программой пользуются более чем в двухстах городах по всему миру.
Скриншот главного окна представлен на рисунке 1.
Рисунок 1 — Скриншот главного окна программы Nearify
Достоинства программы:
— возможность поиска событий, связанных с конкретными людьми, например, с певцами, артистами кино, программистами и т.д.;
— возможность подписки на зарегистрированного пользователя программного средства, что позволяет следить за созданными им событиями;
— возможность поиска по радиусу от определенного местоположения.
Основные характеристики:
— операционная система — iOS, Android;
— примерное количество скачиваний — 100 тыс.;
— язык интерфейса — английский;
— создание собственных событий — да;
— поддержка карт Google Maps — да;
— синхронизация с календарем — нет;
— сортировка по категориям — сейчас и в ближайшее время;
— возможность поделиться событием в социальных сетях — Facebook.
1.2 All events in city
All events in city — программа, также разработанная программистами из Индии, позволяет производить поиск и создание собственных событий, обладает небольшим количеством функций по сравнению с аналогичными решениями. Скриншот главного окна представлен на рисунке 2.
Рисунок 2 — Скриншот главного окна программы All events in city
Достоинства программы:
— возможность создания организации из нескольких зарегистрированных пользователей;
— возможность подписки на зарегистрированного пользователя.
Основные характеристики:
— операционная система — iOS, Android;
— примерное количество скачиваний — 100 тыс.;
— язык интерфейса — английский;
— создание собственных событий — да;
— поддержка карт Google Maps -да;
— синхронизация с календарем -да;
— сортировка по категориям — по роду и виду занятия;
Возможность поделиться событием в социальных сетях — Facebook.
1.3 Eventbrite
Eventbrite — очередная зарубежная программа, разработанная программистами из США, позволяет просматривать и создавать собственные события, является самой популярной из приведенных решений, исходя из данных, представленных в официальном магазине приложений для ОС Android — App Store.
Скриншот главного окна представлен на рисунке 3.
Достоинства программы:
— позволяет добавлять избранные категории событий для зарегистрированных пользователей;
— просмотр событий друзей из социальной сети Facebook.
Рисунок 3 — Скриншот главного окна программы Eventbrite
Основные характеристики:
— операционная система — iOS, Android;
— примерное количество скачиваний — 5 млн.;
— язык интерфейса — английский;
— создание собственных событий — да;
— поддержка карт Google Maps — да;
— синхронизация с календарем — нет;
— сортировка по категориям — по популярности, по роду и виду занятия;
— возможность поделиться событием в социальных сетях — Facebook.
1.4 Event near me
Event near me — зарубежная программа, разработанная разработчиками из Америки, имеет такую особенность, что возможно исключительно просматривать существующие события, информация о которых берется с сайтов организаторов этих событий. Также стоит отметить что отсутствует система аутентификации пользователя.
Скриншот главного окна представлен на рисунке 4.
Рисунок — 4 Скриншот главного окна программы Event near me
Особенности программы:
— возможность перехода на сайт организатора события по прямой ссылке.
— Основные характеристики:
— операционная система — iOS, Android;
— примерное количество скачиваний — 10 тыс.;
— язык интерфейса — английский;
— создание собственных событий — нет;
— поддержка карт Google Maps — да;
— синхронизация с календарем — да;
— сортировка по категориям — по роду и виду занятия;
— возможность поделиться событием в социальных сетях — Facebook.
1.5 Сравнение решений и вывод
Сравнение программ будет проводиться по следующим характеристикам:
— операционная система: iOS, Android;
— примерное количество скачиваний: n скачиваний;
— язык интерфейса: поддерживаемые языки;
— создание собственных событий: да, нет;
— поддержка карт Google Maps: да, нет;
— синхронизация с календарем: да, нет;
— сортировка по категориям: имеющиеся сортировки;
— возможность поделиться событием в социальных сетях: поддерживаемые социальные сети;
— поддержка технологии Push уведомлений.
Для наглядности сравнения программных средств, создадим таблицу, куда занесем вышеперечисленные характеристики.
Таблица 1 — Сравнение существующих решений
Программа и характеристики |
Nearify |
All events in city |
Eventbrite |
Events near me |
|
Операционные система |
iOS, Android |
iOS, Android |
iOS, Android |
iOS, Android |
|
Примерное количество скачиваний |
100 тыс. |
100 тыс. |
5 млн. |
10 тыс. |
|
Язык интерфейса |
английский |
английский |
английский |
английский |
|
Создание собственных событий |
да |
Да |
да |
нет |
|
Поддержка карт Google Maps |
да |
Да |
да |
да |
|
Синхронизация с календарем |
нет |
Да |
нет |
да |
|
Сортировка по категориям |
сейчас и в ближайшее время |
по роду и виду деятельности |
по популярн., роду и виду деятельности |
по виду деятельности |
|
Интеграция с социальными сетями: |
|
|
|
|
|
Технология Push уведомл. |
нет |
Нет |
нет |
нет |
На основе анализа таблицы 1, можно сделать следующие выводы:
— ни у одной программы не имеется поддержка русского языка;
— не все программы могут сохранят события в календарь;
— у большинства программ лишь частично реализована сортировка событий;
— ни в одной программе не реализована технология Push уведомлений;
— крайне низкая популярность в России.
Анализ популярности был проведен на основе количества имеющихся событий на 25.01.2017 в самом многочисленном городе России — Москве, было найдено от 0 до нескольких десятков событий в зависимости от программы.
2. Постановка задачи
2.1 Определение проблемы
После анализа существующих решений их сравнения и составленного вывода, было выявлено, что существует необходимость в разработке программы, которая устраняла бы недостатки имеющихся программ, а также предоставляла новые возможности.
2.2 Формальная постановка задачи
В данной ВКР, мобильная служба организации краткосрочных событий подразумевает создание, управление, просмотр и другие возможности по работе с событиями, которые выполняются пользователем. Для того чтобы правильно сформулировать все понятия и определения, использующиеся в данной ВКР, необходимо написать постановку задачи, которая давала бы наиболее ясное и точное описание решаемой задачи. В формальной постановке задачи описываются все процессы, происходящие при организации событий в мобильной службе.
Пусть имеется множество пользователей P состоящее из конкретных пользователей , формула (1).
где: P — множество пользователей мобильной службы;
— конкретный пользователь;
n — количество пользователей мобильной службы.
Предположим, что конкретный пользователь , который, например, решил набрать форму перед предстоящем экстремальным путешествием посредством утренних пробежек. Так как бег в компании предоставляет такие преимущества как: ответственность, соревновательный настрой, наблюдения со стороны компании для выявления ошибок при беге и т.д., у пользователя возникает желание в поиске той компании людей, вместе с которой он совершал бы коллективную утреннюю пробежку. Решением данной задачи в общем случае, будет выступать программа, разработанная в рамках данной ВКР, в которой пользователь будет иметь следующие основные возможности:
— производить поиск на основе существующих событий E, таких событий, которые будут удовлетворять критериям пользователя;
— создавать собственные события , с целью получения отклика от других пользователей.
В качестве примера разберем процесс поиска существующих событий , которые будут удовлетворять заданным критериям пользователя .
Поиск событий по заданным критериям осуществляется на основе множества из всех существующих событий E, формула (2), и критериям поиска, по которым фильтруются события. В качестве критериев поиска выступают такие фильтры как:
— род занятия;
— вид занятия;
— радиус поиска событий;
— время действия события;
— количество участников события.
где: — конкретное событие;
E — множество существующих событий;
n — количество существующих событий.
Процесс поиска конкретных событий по заданным критериям можно представить с помощью формулы (3).
После произведенного поиска событий из множества событий , удовлетворяющих заданным критериям, пользователю предоставляется соответствующее множество событий удовлетворяющих критериям поиска.
где: E’ — множество существующих событий, удовлетворяющих критериям поиска;
— конкретное событие, удовлетворяющее критериям поиска;
— время действия события;
R — радиус поиска событий;
G — род занятия, характеризующее событие;
H — вид занятия, характеризующее событие;
N — количество участников события.
После того, как пользователь получил множество событий удовлетворяющих критериям поиска, он может посмотреть время прибытия до них и принять в них участие. Время прибытия до событий вычисляется на основе расстояния до их места назначения и способа передвижения (частный автомобиль, ходьба, общественный транспорт). Функция подсчитывающая время прибытия до местонахождений событий представлена в формуле (4).
где: — время прибытия до местонахождений конкретных событий;
l — расстояние до события;
f — способ передвижения до события.
Так-как наряду с проблемой поиска событий существует проблема сокращения времени на их поиск, в данной работе была реализована поддержка технологии Push-уведомлений, которая решает эту проблему.
Push-уведомления — это такой способ распространения информации, когда уведомления отправляются от сервера клиенту по инициативе сервера на основе определённых параметров. В отличие от обратной схемы «клиент-сервер», push-технология выгодна тем, что даёт пользователю целевую информацию, которая может быть ему полезна в будущем времени.
В нашем случае, если интересующее пользователя событие не было найдено изначально, пользователь может включить Push-уведомление, и как только событие будет найдено, ему придет соответствующее уведомление.
Множество из всех будущих событий можно представить с помощью формулы (5).
где: — множество будущих событий;
— множество будущих событий;
Функция поиска будущих событий, удовлетворяющих критериям поиска, представлена с помощью формулы (6).
При поиске будущих событий, пользователь может задать время их поиска, которое будет для него актуально, и каждый раз, когда событие, удовлетворяющее условиям поиска, будет поступать в БД, оно будет доставляться с сервера, на Android — устройство пользователя с помощью Push-уведомлений.
где: — множество будущих событий, удовлетворяющих параметрам поиска;
— множество будущих событий;
— актуальное время поиска будущего события
2.3 Выработка требований
Для того чтобы определить функциональность системы необходимым этапом является выработка требований. Эти требования были определены как из анализа достоинств и недостатков существующих решений, так и из выдвинутых, собственных идей.
В Итоге были сформулированы следующие требования к программе:
— графический интерфейс пользователя;
— поддержка как русского, так и английского языков;
— аутентификация пользователя;
— просмотр с и создание собственных событий E;
— сортировка имеющихся событий ;
— просмотр событий E на интерактивной карте;
— добавление событий E на карту в виде маркеров;
— возможность делиться событиями в социальных сетях;
— сохранение событий в календарем;
— возможность подписки на зарегистрированного пользователя;
— поддержка технологии Push-уведомлений;
— расчет времени прибытия до события.
3. Разработка архитектуры программы и ее алгоритмов
3.1 Выбор состава средств разработки программы
Так как поиск краткосрочных событий требует своевременную информированность, и геолокационные данные для определения точного местоположения пользователя, выбор пал на мобильную платформу, так как именно мобильная платформа имеет возможность доступа к интернету в большинстве случаев и в практически любое время, а также позволяет получать точные данные о местоположении пользователя. В свою очередь операционная система Android была выбрана по следующим причинам:
— наиболее популярная ОС в мире;
— быстро развивающаяся система;
— удобная среда разработки;
— широкие возможности визуализации графического интерфейса;
— большой инструментарий для работы с картами Google Maps.
В процессе разработке программы стало ясно, что в перспективе будет разрабатываться сайт, который будет выполнять функции программы на OC Android, из-за этого, было принято решение хранить данные в БД предоставляемой хостингом, который является сервером, чтобы обращаться к единой БД для программы и сайта, вместо отдельных БД для двух платформ.
Хостинг — услуга по предоставлению ресурсов для размещения информации на сервере, постоянно находящемся в сети.
Обычно хостинг входит в пакет по обслуживанию сайта и подразумевает как минимум услугу размещения файлов сайта на сервере, на котором запущено ПО, необходимое для обработки запросов к этим файлам. Как правило, в обслуживание уже входит предоставление места для почтовой корреспонденции, баз данных, DNS, файлового хранилища на специально выделенном файл-сервере и т. Д., а также поддержка функционирования соответствующих сервисов. Хостинг базы данных, размещение файлов, хостинг электронной почты и услуги DNS могут предоставляться отдельно как самостоятельные услуги, либо входить в комплексную услугу.
Как упоминалось ранее, в данной работе, в качестве сервера используется хостинг базы данных, включающий в себя СУБД, а также веб-интерфейс PHPMyAdmin [11], с помощью которого мы выполняем администрирование СУБД.
PHPMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД [12] MySQL [13]. PHPMyAdmin позволяет через браузер и не только осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.
Непосредственно БД предназначена для хранения такой информации как:
— пароли, логины и другая информация учетных записей пользователей;
— существующие события и информация о них;
— события, созданные пользователем;
— информация о макетах событий, которые отображаются на карте Google Maps.
В качестве СУБД используется MySQL.
СУБД MyS QL была выбрана в следствии следующих причин:
— высокая скорость работы;
— высокая надежность данных;
— наличие в большинстве хостингов;
— удобство взаимодействия с БД;
— не высокая стоимость за объем хранимой информации.
За взаимодействие сервера и клиента отвечают PHP-запросы, которые отправляют команды на редактирование, добавление, удаление и выборку данных в БД.
3.2 Разработка архитектуры программы
Одной из основных задач разработки архитектуры [3 — 4] программы, является разработка единой системы из взаимодействующих служб, которые будут наиболее эффективно, гибко и надежно выполнять свои функции.
Разработка архитектуры также включает в себя такие аспекты как:
— организация программы;
— организация данных;
— пользовательский интерфейс;
— производительность;
— взаимодействие с другими системами;
— обработка ошибок;
— и т. д.
Архитектура программы была разработана на основе исследования в области разработки программ на OC Android, учитывающая наиболее эффективное взаимодействие модулей программы, надежность, гибкость и другие аспекты архитектуры. Схема архитектуры программы представлена на рисунке 5.
Так как в данной работе используется такая технология как Push-уведомления, то схема демонстрирующая принцип ее работы представлена на рисунке 6.
Когда пользователь включает функцию Push-уведомлений при поиске событий, он запускает фоновый процесс, в котором, раз в определенный промежуток времени будет отправляется запрос к БД на наличие новых событий, которые удовлетворяют критериям поиска.
Рисунок — 5 Схема архитектуры программы
Рисунок — 6 Схема принципа работы Push-уведомлений
Одной из задач разработки архитектуры программы является обеспечить достаточный уровень гибкости ГИП и быструю навигацию среди окон графического интерфейса.
Схема навигации среди окон графического интерфейса представлена на рисунке 7.
Для наибольшей гибкости и удобства навигации среди окон ГИП, было разработано навигационное меню состоящее из кнопок, соответствующих изображений к кнопкам, а также подсказками, отображающими количество событий в той или иной группе.
Рисунок — 7 Граф переходов ГИП
3.3 Разработанные алгоритмы
На этапе разработки прототипа программного средства, были разработаны три алгоритма, первый — алгоритм аутентификации [10] пользователей, позволяющий пользователям войти в программу под своей учетной записью с правами просмотра имеющихся и создания собственных событий или зарегистрировать свою учетную запись для получения вышеуказанных прав. Второй алгоритм — алгоритм просмотра существующих и создания собственных событий, позволяющий загружать события из БД и отображать их с на экране Android-устройства, или же создавать собственные, с сохранением в БД. Третий алгоритм — алгоритм работы внешнего исполняемого модуля, написанного на языке PHP, который выполняет который выполняет роль курьера, передающего информацию от Android-устройства к серверу и наоборот.
3.4 Разработанный алгоритм аутентификации пользователей
Для аутентификации пользователей был разработан следующий алгоритм, представленный на рисунке 8.
Рисунок 8 — Блок схема алгоритма аутентификации пользователей
Входные данные при регистрации учетной записи:
— логин;
— имя пользователя;
— адрес почтового ящика;
— пароль.
Выходные данные при регистрации учетной записи:
— ответ об успешной регистрации, либо отчет об ошибке.
После ввода входных данных в ГИП Android-устройства и нажатия на соответствующую кнопку, отправляется POST-запрос к серверу с командами проверки на существование аналогичной УЗ и сохранения новой, в случае ее уникальности. После выполнения POST-запроса, возвращается ответ об успешном добавлении нового пользователя, либо ответ ошибки, с указанием проблемы.
Входные данные при входе под существующей учетной записью:
— логин;
— пароль.
Выходные данные при входе под существующей учетной записью:
— ответ об успешном входе под своей УЗ, либо отчет об ошибке.
В процессе входа под существующей УЗ, после ввода входных данных в ГИП Android-устройства и нажатия на соответствующую кнопку, отправляется POST-запрос к серверу с SQL-командами проверки на существование соответствующей УЗ. После выполнения POST-запроса, возвращается ответ об успешном входе в программу под своей УЗ, либо ответ ошибки, с указанием проблемы.
3.5 Разработанный алгоритм просмотра и создания событий
Для того чтобы просматривать имеющиеся и создавать собственные события, был разработан алгоритм, представленный на рисунке 9.
Входные данные при создании собственного события:
— название события;
— род занятия;
— вид занятия;
— время действия события;
— количество участников события;
— координаты события.
Рисунок 9 — Блок схема алгоритма просмотра существующих и создания собственных событий.
Выходные данные при создании собственного события:
— ответ об успешном создании события, либо отчет об ошибке.
При создании события необходимо ввести характеристики события в ГИП Android-устройства и нажать на соответствующую кнопку, после этого отправляется POST-запрос к серверу с командой сохранения нового события. После выполнения POST-запроса, возвращается ответ об успешном сохранении нового события, либо ответ ошибки, с указанием проблемы.
Входные данные при поиске существующих событий: род занятия;
— род занятия;
— вид занятия;
— время действия события;
— количество участников события;
— расстояние до события.
Выходные данные при создании собственного события:
— список событий, удовлетворяющих условиям поиска, либо отчет об ошибке.
При поиске событий необходимо ввести характеристики события в ГИП Android-устройства и нажать на соответствующую кнопку, после этого отправляется POST-запрос к серверу с командой поиска событий, удовлетворяющих условиям поиска. После выполнения POST-запроса, возвращается список найденных событий, либо ответ ошибки, с указанием проблемы.
3.6 Процесс поиска событий по геолокационным данным
Процесс поиска пользователем событий в своем радиусе поиска можно представить с помощью следующего уравнения, формула (7):
где: — координаты местонахождения пользователя;
— радиус поиска событий от местонахождения пользователя;
— координаты местоположения событий.
Например, если пользователь , с координатами x и y, производит поиск событий в радиусе от своего местоположения, то на карту будут выведены все существующие события, местоположения которых входят в область поиска пользователя . Процесс поиска пользователем событий можно представить в виде диаграммы на рисунке 10.
Рисунок 10 — диаграмма иллюстрирующая процесс поиска событий
3.7 Разработанный алгоритм работы PHP—запроса
PHP запрос — запрос, отправляемый от клиента к серверу, для выборки, удаления, редактирования и добавления данных. В данной работе в качестве сервера выступает БД, задача которой — хранить учетные записи пользователей, характеристики событий и маркеров на картах google maps. Основной задачей PHP запроса является передача данных между клиентом и серверов, формирование запроса осуществляется на стороне клиента, а сервер его принимает, выполняет переданные ему команды и формирует ответный запрос.
Можно выделить следующие функции PHP запроса, которые выполняются в данной программе:
— отправка запроса серверу, для проверки на существование учетной записи с введенными данными;
— возвращение положительного или отрицательного ответа;
— отправка запроса серверу, на сохранение новой учетной записи с введенными данными;
— получения положительного или отрицательного ответа после отправленного запроса;
— отправка запроса на выборку событий с конкретными параметрами;
— отправка запроса на сохранение нового события с конкретными параметрами;
— Отправка запроса на добавление или выборку маркеров на картах google maps.
Для реализации вышеперечисленных функций был разработан алгоритм, представленный на рисунке 11.
Входные данные при выполнении запроса регистрации учетной записи:
— логин;
— имя пользователя;
— адрес почтового ящика;
— пароль.
Выходные данные при выполнении запроса регистрации учетной записи:
— ответ об успешном выполнении запроса регистрации, либо отчет об ошибке.
— После ввода входных данных в ГИП Android-устройства и нажатия на соответствующую кнопку, отправляется POST-запрос к серверу с данными, введенными в Android-устройстве. После выполнения POST-запроса к серверу, в данной работе это PHP модуль, очередь переходит непосредственно к PHP модулю, отвечающего за соединение с БД и выполнение команд на языке SQL для записи новой УЧ, если та прошла проверку на уникальность. В результате запроса, модуль содержит информацию об успешной записи нового пользователя, либо ошибку, с указанием проблемы.
Рисунок 11 — Алгоритм работы PHP модуля, выполняющего аутентификацию и регистрацию УЗ
Входные данные при выполнении запроса на проверку данных УЗ:
— логин;
— пароль.
Выходные данные при выполнении запроса на проверку данных УЗ:
— ответ об успешном подтверждении данных УЗ.
В данной ветви алгоритма выполняется аналогичное соединение с БД, но команды на языке SQL не записывают новую УЗ, а проверяют ее на существование. В результате запроса, модуль содержит информацию об успешной проверке данных УЗ, либо ошибку, с указанием проблемы.
3.8 Структура базы данных
Целью создания БД в данной ВКР было хранение такой информации как:
— данные учетных записей пользователей;
— множество событий с определенными характеристиками;
— множество событий, которые будут отображаться на интерактивной карте;
— таблицы о роде и виде занятий, для сортировки событий.
Схема структуры БД представлена на рисунке 12.
Рисунок 12 — Схема структуры БД
В результате выполнения ВКР, была создана структура БД, хранящая всю вышеперечисленную информацию, которая содержит 5 таблиц и в сумме 30 полей.
Разработанная БД полностью выполняет все возложенные на нее задачи, а также поддерживает возможность расширения в случае необходимости.
3.9 Структура программы
В таблице 2 дано перечисление и описание файлов программы.
Таблица 2 — Описание файлов программы
ActivityMain.java |
Главная активность программы, включающее навигационное меню. |
|
ActivityLogin.java |
активность программы, отвечающее за вход пользователя под своей учетной записью. |
|
ActivityRegister.java |
активность программы, отвечающее за регистрацию пользователя. |
|
BackGroundWorker.java |
выполняет post запрос и действует в зависимости от ответа. |
|
MapsActivity.java |
активность, отображающая и добавляющая маркеры на карты google maps |
|
EventsListFragment.java |
фрагмент программы, который отображает список существующих событий |
|
CreateEventsFragment.java |
фрагмент, с помощью которого пользователь заполняет поля события и сохраняет его в БД. |
|
Connect.php |
PHP запрос, выполняющий соединение с БД |
|
Login.php |
запрос, выполняющий вход в программу под своей УЗ |
|
Register.php |
запрос, выполняющий регистрацию в программе своей УЗ. |
4. Отладка и тестирование
В контрольном примере проведено тестирование работоспособности программы в процессе аутентификации, где пользователь выполняет вход в программу, а также в процессе создания событий.
Набор исходных данных для аутентификации учетной записи:
— логин;
— пароль.
Проверка будет осуществляться на основе сравнивания результатов работы программы и соответствующих данных в БД. Для начала протестируем процесс входа под своей учетной записью. Если программа отобразит успешный результат, а в БД будут подтверждены существующие данные, то можно будет сделать вывод, что программа работает корректно.
Для начала необходимо ввести исходные данные в окно программы, рисунок 13 (а). Если данные УЗ корректны, то отобразится соответствующее сообщение, рисунок 13 (б).
а) б)
Рисунок 13 — Окна входа под своей учетной записью
а) б)
Рисунок 14 — Окна входа под своей учетной записью
На рисунке 14 (б) видно, что после ввода исходных данных, программа отобразила успешный вход в программу. Если же введенные данные отсутствуют в БД, рисунок 14 (а), то отобразится ошибка, представленная на рисунке 14 (б). После отображения успешного входа, необходимо проверить исходные данные на существование аналогичных записей в БД.
Рисунок 15 — Скриншот данных, хранящихся в БД, в таблице «пользователи»
На рисунке 15 можно увидеть, что данные, которые вводились в программе существуют и в БД, на основе этого можно сделать вывод, что процесс аутентификации работает корректно как при корректных, так и некорректных данных.
Методика тестирования для процесса создания событий аналогична с методикой тестирования процесса входа под своей учетной записью.
Исходные данные при создании события:
— заголовок события;
— описание события;
— род и вид деятельности;
— изображение;
— дата наступления события.
После ввода всех полей, необходимо нажать на кнопку сохранить. Скриншот окна создания события представлен на рисунке 16.
Рисунок 16 — Окно создания события
После введенных исходных данных, необходимо нажать на кнопку с изображением стрелки в панели инструментов. Как только пользователь нажмет на кнопку, программа сохранит данное событие в БД. Для того чтобы проверить корректную работоспособность программы, сравним данные введенные в программе и данные хранящиеся в БД.
Рисунок 17 — Скриншот данных, хранящихся в БД, в таблице «события»
На основе совпадения данных события находящихся БД и созданных события созданных ранее в программе, можно сделать вывод, что процесс создания событий работает корректно.
Заключение
Результатом выполнения ВКР является реализация мобильной программы организации краткосрочных событий
В первом разделе проделанной работы проведен анализ существующих аналогов программы, произведено их сравнение и вывод.
Во втором разделе — определена проблема, описана постановка задачи и выработаны требования к программе
В третьем разделе — разработаны архитектура системы, структура и функционал программы, разработаны алгоритмы работы программы и его программная реализация.
В четвертом разделе производится отладка и тестирование программы.
Для реализации программы были выбраны и обоснован их выбор. Программная реализация выполнена в среде программирования Visual Studio 2.2 на языке программирования высокого уровня Java, графический интерфейс написан на языке XML, взаимодействие между сервером и Android-устройством осуществлялось на языке PHP 5.6.
В ходе выполнения выпускной квалификационной работы были проанализированы существующие программы организации событий, произведены их сравнения по заданным критериям. В результате чего, был сделан вывод, что существующие решения имеют ряд недостатков и не удовлетворяют требованиям, которые поставлены в данной работе.
На основе требований и проведенного анализа, была поставлена и сформулирована задача на разработку мобильной программы организации краткосрочных событий, были разработаны архитектура системы, структура программы, алгоритмы работы программы, а также программная реализация.
Таким образом, поставленная задача успешно решена и все цели ВКР успешно достигнуты.
Апробация работы проводилась на XII конкурсе научно-практических работ студентов учебного центра «Интеграция» МАИ при МОУ «ИИФ», где была удостоена грамоты за высокое качество работы. Также апробация проводилась на международной молодёжной научной конференции «Гагаринские чтения», в результате которой, работу опубликовали в сборнике тезисов конференции.
Список использованных источников
1. Android для разработчиков / П. Дейтел, Х. Дейтел. — М.: Питер, 2016. — 512 c.
2. Android. Программирование для профессионалов / Б. Харди, Б. Филлипс. — М.: Питер, 2016. — 640 c.
3. Совершенный код. Практическое руководство по разработке программного обеспечения / С. Макконнелл. — М.: Русская редакция, 2017. — 867 с.
4. Архитектура компьютера / Э. Таненбаум, Т. Остин. — М.: Русская редакция, 2016. — 640 c.
5. Изучаем Java / К. Сиерра, Б. Бейтс. — М.: Эксмо, 2016. — 720 c.
6. Java. Эффективное программирование / Д. Блох. — М.: Лори, 2014. — 310 c.
7. Изучаем SQL / Л. Бейли. — М.: Питер, 2012. — 592 c.
8. Изучаем SQL / А. Бьюли. — М.: Символ-Плюс, 2012. — 312 c.
9. PHP 7 / Д. Котеров, И. Симдянов. — М.: БХВ-Петербург, 2016. — 1088 c.
10. Авторизация [Электронный ресурс] / Википедия. Режим доступа: https://ru.wikipedia.org/wiki/Авторизация. (Дата обращения 20.02.2017г.).
11. PHPMyAdmin [Электронный ресурс] / Википедия. Режим доступа: https://ru.wikipedia.org/wiki/PhpMyAdmin. (Дата обращения 30.02.2017г.).
12. Система управления базами данных [Электронный ресурс] / Википедия. Режим доступа: https://ru.wikipedia.org/wiki/Система_управления_базами_данных. (Дата обращения 26.03.2017г.).
13. MySQL [Электронный ресурс] / Википедия. Режим доступа: https://ru.wikipedia.org/wiki/MySQL. (Дата обращения 22.04.2017г.).
14. Android Studio [Электронный ресурс] / Википедия. Режим доступа: https://ru.wikipedia.org/wiki/Android_Studio. (Дата обращения 11.01.2017г.).