Разработка архитектуры программы и ее алгоритмов




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.

Рисунок – 5 Схема архитектуры программы

Так как в данной работе используется такая технология как Push–уведомления, то схема демонстрирующая принцип ее работы представлена на рисунке 6.

Рисунок – 6 Схема принципа работы Push–уведомлений

Когда пользователь включает функцию 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):

 

(7)

 

где:

– координаты местонахождения пользователя;

– радиус поиска событий от местонахождения пользователя;

– координаты местоположения событий.

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

Рисунок 10 – диаграмма иллюстрирующая процесс поиска событий

3.7 Разработанный алгоритм работы PHP–запроса

PHP запрос – запрос, отправляемый от клиента к серверу, для выборки, удаления, редактирования и добавления данных. В данной работе в качестве сервера выступает БД, задача которой – хранить учетные записи пользователей, характеристики событий и маркеров на картах google maps. Основной задачей PHP запроса является передача данных между клиентом и серверов, формирование запроса осуществляется на стороне клиента, а сервер его принимает, выполняет переданные ему команды и формирует ответный запрос.

Можно выделить следующие функции PHP запроса, которые выполняются в данной программе:

- отправка запроса серверу, для проверки на существование учетной записи с введенными данными;

- возвращение положительного или отрицательного ответа;

- отправка запроса серверу, на сохранение новой учетной записи с введенными данными;

- получения положительного или отрицательного ответа после отправленного запроса;

- отправка запроса на выборку событий с конкретными параметрами;

- отправка запроса на сохранение нового события с конкретными параметрами;

- Отправка запроса на добавление или выборку маркеров на картах google maps.

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

Рисунок 11 – Алгоритм работы PHP модуля, выполняющего аутентификацию и регистрацию УЗ

Входные данные при выполнении запроса регистрации учетной записи:

- логин;

- имя пользователя;

- адрес почтового ящика;

- пароль.

Выходные данные при выполнении запроса регистрации учетной записи:

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

После ввода входных данных в ГИП Android–устройства и нажатия на соответствующую кнопку, отправляется POST–запрос к серверу с данными, введенными в Android–устройстве. После выполнения POST–запроса к серверу, в данной работе это PHP модуль, очередь переходит непосредственно к PHP модулю, отвечающего за соединение с БД и выполнение команд на языке SQL для записи новой УЧ, если та прошла проверку на уникальность. В результате запроса, модуль содержит информацию об успешной записи нового пользователя, либо ошибку, с указанием проблемы.

Входные данные при выполнении запроса на проверку данных УЗ:

- логин;

- пароль.

Выходные данные при выполнении запроса на проверку данных УЗ:

- ответ об успешном подтверждении данных УЗ.

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

3.8 Структура базы данных

Целью создания БД в данной ВКР было хранение такой информации как:

- данные учетных записей пользователей;

- множество событий с определенными характеристиками;

- множество событий, которые будут отображаться на интерактивной карте;

- таблицы о роде и виде занятий, для сортировки событий.

В результате выполнения ВКР, была создана структура БД, хранящая всю вышеперечисленную информацию, которая содержит 5 таблиц и в сумме 30 полей.

Схема структуры БД представлена на рисунке 12.

Рисунок 12 – Схема структуры БД

Разработанная БД полностью выполняет все возложенные на нее задачи, а также поддерживает возможность расширения в случае необходимости.

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 запрос, выполняющий регистрацию в программе своей УЗ.

Отладка и тестирование

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

Набор исходных данных для аутентификации учетной записи:

- логин;

- пароль.

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

Для начала необходимо ввести исходные данные в окно программы, рисунок 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г.).



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-25 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: