Порядок контроля и приемки системы
4.5.1 Функционирование программной системы должно быть проверено на основе технического задания. Порядок контроля и приемки программного обеспечения представлен в учебном плане на 2015 г.
Требования к документированию
4.6.1 В состав программной документации должны входить следующие документы:
- руководство программиста;
- руководство пользователя.
Моделирование программной системы
Диаграмма вариантов использования
На диаграмме (рис. 8) представлены возможные варианты использования проекта пользователем. Пользователь может работать с задачами, контекстами, просматривать различные списки задач и инициировать процедуру синхронизации с сервером. Работа с задачами состоит из создания, редактирования, удаления задач. Пользователь может детализировать задачу, добавляя подзадачи, устанавливать напоминания на определенный момент времени, задавать повторяющиеся события (ежедневно, еженедельно, ежемесячно и ежегодно). Работая с контекстами, пользователь может выполнять операции создания, редактирования, удаления контекстов, добавления к контексту координат на карте. Для удобного управления задачами система предлагает ряд смарт-списков. Пользователь может просматривать задачи на текущий день, на ближайшую неделю с группировкой по дням недели, в привязке к контекстам.
Рис. 8. Диаграмма вариантов использования
Диаграмма классов
На данной диаграмме (рис. 9) представлены классы, которые были реализованы в рамках данного проекта. В классах указаны наиболее используемые публичные методы.
Рис. 9. Диаграмма классов
Классы MainActivity.java, RegisterActivity.java и AuthActivity.java наследуются от встроенного класса ActionbarActivity и представляют основные экранные формы, которые видит пользователь: регистрация, авторизация и основной экран приложения. В классе MainActivity.java содержится контейнер для динамических фрагментов, представленных классами TaskListFragment.java, TaskFragment.java, ContextListFragment.java и ContextFragment.java, в которых реализуются соответственно списки задач, работа с задачей, список контекстов и работа с контекстом.
В классе WebWorker.java реализованы основные методы работы с сетью и сервером. В классе DBWorker.java организована работа системы с базой данной. В классе ContextNotify.java проверяется вхождение пользователя в контекст и генерируется оповещение о задаче.
Диаграмма состояний
Данная диаграмма описывает возможные последовательности состояний и переходов, которые в совокупности характеризуют поведение программы [22]. Диаграмма представлена на рис. 10.
Рис. 10. Диаграмма состояний
При запуске приложения сразу открывается список задач пользователя. С данного фрагмента пользователь может перейти к добавлению либо редактированию задач или же к списку контекстов. В списке контекстов пользователю доступны операции удаления, изменения и удаления контекста, на форме добавления контекста пользователь может устанавливать координаты на карте.
Диаграмма деятельности
На рис. 11 представлена логика работы системы при проверке необходимости оповещения о задачах при приближении к контексту. Сначала система пробует получить текущие координаты пользователя, используя GPS, сети WiFi или сотовые вышки. Затем выполняется проверка, находится ли пользователь вблизи какой-либо из точек, сохраненных в базе. Если пользователь находится внутри зоны контекста, система получает задачи с установленным флагом оповещения при вхождении в контекст и генерирует уведомление.
Рис. 11. Диаграмма деятельности. Оповещение при смене контекста.
На рис. 12 представлен алгоритм работы приложения при процессе синхронизации с удаленным сервером. Система отправляет запрос на получение новых данных с сервера, отправляя в качестве параметра дату последней синхронизации. В ответ приходит список элементов, измененных с момента последней синхронизации. Затем для каждого элемента полученного списка выполняется проверка на наличие аналогичного элемента в локальной базе. Далее возможны три варианта действия системы:
· Подобный элемент отсутствует в локальной базе. Происходит добавление элемента в базу.
· Элемент присутствует в локальной базе и дата изменения в базе позднее даты изменения элемента на сервере. Происходит обновление элемента на сервере.
· Элемент присутствует в локальной базе и дата изменения в базе раньше даты изменения на сервере. Происходит обновление элемента в локальной базе.
Заключительным шагом алгоритма является отправка новых элементов из локальной базы на сервер.
Рис. 12. Диаграмма деятельности. Синхронизация.