Шубин_942 (1232972), страница 4
Текст из файла (страница 4)
«0» – продажа (возможность покупки по ипотеке);
«1» – аренда (отсутствие возможности покупки по ипотеке).
3.3 Реализация сетевого взаимодействия
Для того, чтобы передать запрос базе данных, используются php-сценарии. Для этого на удаленном сервере были созданы файлы, содержащие команды для сервера и запросы к базе данных агентства.
В качестве примера запроса к базе данных рассмотрим процедуру добавления записи в базу данных, представленную на блок-схеме изображенной на рисунке 8.
Обработка любого запроса происходит путем выполнения трех файлов на удаленном сервере. На первом этапе параметры объекта недвижимости, пе-редаваемые Android-приложением как значение одной переменной типа String в виде «поле = данные, поле = данные, …», обрабатываются php-сценарием, соответствующим выполняемой операции. Далее, этот сценарий должен установить соединение с базой данных, для этого он вызывает вспо-могательный сценарий подключения, который, в свою очередь, обращается к файлу, хранящему данные соединения такие, как имя сервера, имя базы дан-ных, логин и пароль для доступа к базе данных. Если соединение установле-но, то выполняется сценарий обработки операции, вызванный Android-приложением, иначе соединение прерывается. В обоих случаях вызываемый сценарий посылает ответ приложению об успехе или неуспехе выполнения.
Рисунок 8 – Запрос добавления записи в базу данных
Подключение к базе данных происходит в соответствии со следующим сценарием:
function connect() {
#функция принимает данные для соединения (адрес сервера
#имя базы данных, логин и пароль для соединения с базой //данных)
require 'db_config.php';
#сценарий связывается с сервером по полученному адресу
#с использованием полученных логина и пароля
#в случае неудачного соединения выполнение сценария завершается
$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());
#преобразовывает все данные в кодировку символов UTF8
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET UTF8");
#связывается с базой данных которой присвоено имя, считанное из файла
#db_config.php если базы данных с таким именем нет выполнение сценария прерывается иначе выполняется сценарий вызвавший соединение с БД
$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error()); }
Изложенная выше реализация сетевого взаимодействия была выбрана для удобства настройки для разных организаций, а также возможности более де-тальной настройки подключения к базе данных для каждого пользователя.
3.4 Реализация Android-приложения
Разработка Android-приложения осуществлялась в интегрированной среде разработки Android Studio. Все представленные на этапе проектирования активности были успешно реализованы, а также были добавлены новые представления. Рассмотрим отдельно каждую из реализованных активностей.
На рисунке 9 представлено окно, которое приветствует пользователя при запуске приложения. В представлении, соответствующем данной активности, пользователь должен ввести логин и пароль, и, в случае верной комбинации, осуществляется переход в окно главного меню. Если же пользователь не заполнит одно из полей или введет неверную комбинацию, приложение сообщит об этом во всплывающем окне.
Рисунок 9 – Окно ввода логина и пароля
Подробная работа алгоритма, выполняющегося в данной активности, представлена на блок-схеме (рисунок 10).
Рисунок 10 – Алгоритм обработки введенных логина и пароля
Как только приложение запускается, оно посылает запрос к базе данных на загрузку всех логинов и паролей, зарегистрированных в базе. В это же время пользователь вводит свою пару логин-пароль, и затем приложение методом подбора проверяет, есть ли совпадение с загруженными данными.
При осуществлении перехода в окно главного меню, пользователь видит представление, отображенное на рисунке 11. Как и было описано на этапе проектирования, главное меню состоит из трех кнопок, две из них доступны каждому пользователю, третья лишь администраторам приложения.
Рисунок 11 – Главное меню приложения
При переходе из активности ввода логина и пароля в активность окна главного меню передается переменная типа String, в которой хранится логин пользователя. Значение переменной сравнивается с хранящимися в списке пользователей, которым даны права администратора. Если пользователь не является администратором, то кнопка «Регистрация пользователя» не будет отображаться. На рисунке 12 представлен алгоритм активности окна главного меню.
Рисунок 12 – Алгоритм активности окна главного меню
Промежуточным окном между главным меню и окном добавления новой записи является окно выбора типа недвижимости (рисунок 13). Это окно «спрашивает» пользователя о том, какого типа недвижимость пользователь хочет добавить. От выбора пользователя зависит, какое именно окно добавления записи будет запущено.
Рисунок 13 – Выбор типа недвижимости
Определившись с типом недвижимости, пользователь будет перенаправлен на одно из окон добавления записи в базу данных. Как уже говорилось для объектов недвижимости типа «Квартиры» и «Офисы» были реализованы разные активности, представленные на рисунке 14. Для добавления записи об офисном помещении (рисунок 14а) необходимо меньше данных, чем для записи о квартире (рисунок 14б). Так, например, в окне добавления офиса отсутствуют такие поля, как: количество комнат, количество этажей в доме, тип стен и возможность приобретения в ипотеку. Для офисных объектов уточнено поле этажа, на котором располагается объект, которое заполняется вручную пользователем. В случае с квартирами пользователь лишь может выбрать примерное расположение (последний, средний или первый этаж).
(а) (б)
Рисунок 14 – Формы ввода данных для добавления записи в БД:
(а) – информация об офисе; (б) – информация о квартире
Для записи введенной информации в базу данных пользователь должен нажать кнопку «Добавить». По нажатию кнопки выполнится проверка всех полей, заполнены ли они. Если одно или несколько полей будут пустыми, приложение сообщит об этом во всплывающем окне. В случае, когда все значения введены, запускается процедура записи. Для этого вся введенная информация «собирается» в одну переменную типа String и передается сценарию, который находится на удаленном сервере и выполняет запрос к базе данных на добавление записи (рисунок 8). Подробное описание функции обработки нажатия кнопки «Добавить» расположенной на окне добавления новой записи представлено в приложении А.
Как только запись будет успешно добавлена в базу данных, приложение перенаправит пользователя на окно списка всех ранее добавленных записей. Данный список представляет собой отображение всех записей в базе данных с отображением лишь тех, в которых поле login содержит логин текущего пользователя. Если в базе данных нет ни одной записи от данного пользователя, то список будет пуст. Для удобства данное окно разделено на две области. В первой области отображается список всех квартир, во второй – список всех офисов (рисунок 15).
Рисунок 15 – Отображение ранее созданных записей
Нажатие на любую строку содержащую информацию об объекте недвижимости переводит пользователя на окно редактирования данной записи (рисунок 16).
Рисунок 16 – Редактирование информации об объекте недвижимости.
Активность, реализующая редактирование записи в базе данных, исполь-зует для работы два php-сценария. Первый – получает из активности преды-дущего окна (рисунок 15) порядковый номер отрываемой записи и посылает запрос к базе данных на ее считывание. Второй – наоборот, отправляет изме-ненные данные в базу данных. Подробнее алгоритм обработки отображен в блок-схеме, представленной на рисунке 17.
Рисунок 17 – Алгоритм редактирования записи БД
3.5 Схема работы программного комплекса
Описав каждую составляющую программного комплекса можно обратиться к подробной схеме его работы.
В области разработки программного обеспечения, для описания создаваемого программного продукта, используется специальный язык для графического описания объектного моделирования – язык UML (Unified Modeling Language). Для описания работы приложения создается абстрактная визуальная модель системы или подсистемы, которая называется UML-моделью. Для наглядного представления работы функций приложения создается диаграммы компонентов [28].
Все возможные варианты операций представлены на рисунке 17.
Рисунок 17 – Диаграмма вариантов использования
Приложение для устройств, работающих под управлением ОС Android, состоит из активностей. Поэтому схема работы создаваемого приложения будет представлять собой схему связей между активностями, а также их связь с удаленным сервером. На рисунке 18 изображена диаграмма взаимодействия, демонстрирующая работу всего разрабатываемого программного комплекса [29].
Рисунок 18 – Диаграмма взаимодействия
Запустив приложение, пользователь должен ввести верную комбинацию логина и пароля, иначе дальнейшая работа с приложением невозможна. В случае потери или кражи устройства, у неавторизованных пользователей не будет возможности изменять информацию в существующих записях или создавать новые, лишенные достоверности.
В главном меню пользователь может осуществить запрос к базе данных агентства путем нажатия на соответствующие кнопки. Кнопка изображенная на рисунке 19(а), вызывает процедуру добавления новой записи в базу данных, а кнопка, представленная на рисунке 19(б), открывает список всех ранее созданных записей.
(а) (б)
Рисунок 19 – Кнопки главного меню
Нажав на кнопку добавления новой записи, пользователь перейдет на следующее окно, в котором ему необходимо будет указать, какого типа недвижимость он желает добавить в базу данных агентства: рисунок 20(а) – кнопка добавления записи о квартире, рисунок 20(б) – кнопка добавления записи об офисе.
(а) (б)















