
Участники проекта и их обязанности
Романов Андрей Владимирович - разработка серверной части проекта, а именно:
проектирование модели базы данных проекта;
проектирование API взаимодействия с клиентами (языка обмена информацией клиентов и сервера);
проектирование серверной части проекта;
разработка сервера на языке C#;
тестирование сервера;
составление документации сервера;
настройка и конфигурирование системы для использования сервера, в том числе настройка веб-сервера, а также создание и конфигурирование базы данных.
Марунько Антон Евгеньевич:
разработка клиентского приложения для платформы IOS, а именно:
проектирование модели базы данных проекта;
проектирование API взаимодействия с клиентами;
проектирование клиентского приложения для платформы IOS (проектирование интерфейса и программной части);
разработка клиентского приложения для платформы IOS;
тестирование клиентского приложения;
написание документации клиентского приложения;
публикация клиентского приложения в App Store;
менеджмент проекта, а именно:
управление разработкой проекта;
формирование задач участникам проекта;
интеграция участников между собой;
тестирование системы в целом;
написание текстов технического задания;
проектирование интерфейса Android приложений;
публикация приложений платформы Android.
Синчурин Станислав - разработка клиентского и администраторского приложения для платформы Android, а именно:
проектирование клиентского и администраторского приложения для платформы Android (проектирование интерфейса и программной части)
разработка клиентского и администраторского приложения для платформы Android;
тестирование Android приложений;
написание документации Android приложений.
Николаева Валерия Сергеевна - разработка дизайна проекта, а именно:
проектирование интерфейсов приложений и сайта;
создание графики для приложений и сайта;
разработка рекламных макетов проекта и представительской графики.
Ащепков Павел - разработка сайта проекта, а именно:
проектирование сайта проекта;
разработка сайта проекта;
размещение и конфигурация сайта на хостинге, в том числе привязка домена;
тестирование сайта;
написание документации сайта.
Веревкин Владислав:
финансовое сопровождение проекта;
подготовка отчетов (в государственные структуры);
юридическое сопровождение проекта;
распространение проекта.
Структура системы
Диаграмма компонентов IOS приложения:
Стадии и этапы разработки
В проекте можно выделить следующие стадии разработки.
Анализ требований, предъявленных к системе
Были определены используемые технологии разработки проекта, требуемые ресурсы - материальные, людские, сроки разработки проекта, стоимость ошибок при проектировании проекта
2. Определение спецификаций
На этапе описания спецификаций были определены требуемые функции системы, данные, необходимые для проверки системы на работоспособность.
3. Проектирование
На стадии проектирования была разработана модель проекта, схема взаимодействия клиента и сервера и примерное API, а также модель базы данных проекта в соответствии с идеологией IDEF1X и архитектура сервера, приложений, примерный интерфейс приложений и сайта. Примерный интерфейс администраторского приложения приведен в приложении А.
База данных на стадии проектирования была переработана множество раз. Проектирование базы данных выполнялось с использованием методологии IDEF1X.
Рисунок 6.1 – Модель базы данных
На рисунке 6.1, располагается исходный вариант диаграммы FA уровня.
Диаграмма представлена следующими сущностями, описание в таблице 6.1.
Таблица 6.1. – Сущности
Сущность |
Определение |
USER |
Зарегистрированный в системе пользователь |
BOOKING |
Метка для стола, в которой указано, время заказа, ФИО и телефон заказавшего. |
TABLE |
Объект в пространстве зала, имеющий определенные координаты и оборудованный местами для сидения |
REVIEWS |
Запись оставленная пользователем, на сайте или в приложении о заведении. |
DISH |
Блюдо, которое можно получить в данном заведении и которое входит в меню. |
MENU |
Совокупность блюд для данного заведения |
BAR |
Представляет собой заведение, имеющее определенный адрес, время работы, тип. |
LOUGE |
Представляет собой помещение в заведении с находящимися в нем столиками |
TOWN |
Область расположения нескольких заведений |
Таблица 6.2 – Атрибуты
Атрибут |
Определение |
Сущность |
Telefon |
Контактный телефон пользователя |
USER |
Password |
Пароль пользователя для доступа к сервису |
USER |
Fio |
Фамилия Имя Отчество пользователя |
USER |
DateTime |
Время от начала работы заведения, до окончания |
BOOKING |
Review |
Запись о заведении, созданная пользователем на сайте или в мобильном приложении |
REVIEWS |
DishId |
Идентификатор блюда |
DISH |
Price |
Цена за одну порцию блюда |
DISH |
Description |
Краткое описание блюда |
DISH |
townId |
Идентификатор города |
BAR |
Name |
Название города |
TOWN |
Address |
Физический адрес заведения |
BAR |
BarId |
Идентификатор бара |
BAR |
TableCount |
Количество столиков в заведении |
BAR |
ShowBookForTable |
Метка, указывающая можно ли при заказе указать идентификатор столика |
BAR |
TableId |
Идентификатор столика |
TABLE |
Seats |
Количество место за столиком |
TABLE |
LoungeId |
Идентификатор зала |
LOUNGEID |
isSmoke |
Метка, указывающая можно ли курить в данном зале |
LOUNGEID |
Image |
Указывает место расположения на жестком диске сервера, картинки зала |
LOUNGEID |
Ниже представлен конечный вариант модели базы данных.
Рисунок 6.2 – Конечная версия модели структуры базы данных
Таблица 6.3 – Обновление сущностей
Сущность |
Определение |
SESSION |
Сущность, характеризующая факт авторизации пользователя. |
ROLE |
Метка уровня прав которая может быть сопоставлена пользователю |
USER-BAR |
Факт сопоставления сотрудника заведения (пользователя) с конкретным заведением. |
USER-BAR-ROLE |
Факт сопоставления метки уровня прав с некоторым пользователем |
Таблица 6.4 – Обновление атрибутов
Атрибут |
Определение |
Сущность |
Type |
Тип заведения |
BAR |
WorkTime |
Время от начала работы заведения, до окончания |
BAR |
TableCount |
Количество столиков в зале |
LOUNGE |
coord |
Геометрическое расположение центра стола на плоскости зала |
TABLE |
HashTel |
SHA1 хэш от номера телефона пользователя |
SESSION |
SID |
Идентификатор сессии |
SESSION |
SessionKey |
Сессионный ключ, используемый в алгоритме AES |
SESSION |
Path |
Путь до хранилища информации о сессии |
SESSION |
Domain |
URI для которого идентификатор сессии считается правильным |
SESSION |
DataEnd |
Время и дата окончания действия сессии |
SESSION |
InitialVector |
Вектор инициализации, используемый в алгоритме AES |
SESSION |
Login |
Логин администратора для досутпа к сервису |
ADMIN |
Password |
Пароль администратора для досутпа к сервису |
ADMIN |
DescBar |
Описание заведения |
BAR |
MapAttr |
Координаты геометрического центра заведения на карте |
BAR |
roleId |
Идентификатор роли |
ROLE
|
namerole |
Описание роли |
ROLE |
В конце стадии проектирования были разработаны технические задания, определены сроки разработки проекта и вывода его на рынок. Пример технического задания на разработку сайта в приложении Б.
4. Кодирование
На этапе кодирования были разработаны модули системы, клиентская и серверная часть.
Представим реализацию этапа кодирования в виде снимков экрана системы контроля версий.
Серверная часть:
Рисунок 6.3 – система контроля версий сервера, часть 1
Рисунок 6.4 – система контроля версий сервера, часть 2
Рисунок 6.5 – система контроля версий сервера, часть 3
Рисунок 6.6 – система контроля версий сервера, часть 4
Рисунок 6.7 – система контроля версий сервера, часть 5
Приложение платформы IOS:
Рисунок 6.8 – система контроля версий IOS приложения
Приложение платформы Android:
Рисунок 6.9 – система контроля версий Android приложения.
5. Тестирование системы
Сервис тестировался автономно, комплексно и системно.
В качестве примера комплексного тестирования можно привести таблицу автоматического тестирования сервера:
Таблица
Для системного тестирования были использованы различные устройства на платформах Android (версий API –2.2; 2.3.3; 4.0; 4.1; 4.2; 4.4) и IOS (версии 6.0, 6.1.1, 7.0, 7.1). Для тестирования использовались максимально возможно устройства с разными характеристиками ( размером экрана, мощностью процессоров и прочими аппаратными характеристиками). Для тестирования сайта использовались различные браузеры – Mozilla Firefox, Safari, Opera, Google Chrome, Internet Explorer версий 7.0 и выше, а также мобильные аналоги браузеров Safari, Google Chrome, Opera.
Составление документации
Написать про документацию