- •Содержание
- •1.1 Тенденции развития технологий разработки приложений 8
- •Введение
- •Тенденции развития технологий разработки приложений
- •Описательная постановка задачи
- •Формальная постановка задачи
- •Декомпозиция задачи
- •Проектирование системы
- •Основные требования, предъявляемые системе
- •Выбор инструментальных средств
- •Проектирование схемы функционирования системы
- •Перечень функциональности.
- •Моделирование структуры системы
- •Проектирование пользовательского интерфейса
- •Методика тестирования конечного продукта.
- •Реализация системы
- •Структура приложения.
- •Описание классов.
- •Описание реализаций основных функций приложения
- •Реализация пользовательского интерфейса
- •Результаты тестирования системы
- •Список использованных источников
Проектирование схемы функционирования системы
Процесс разработки клиент-серверных приложений достаточно сложен и одной из наиболее важных задач является решение о том, как функциональность приложения должна быть распределена между клиентской и серверной частью.
Чаще всего клиент-серверные приложения состоят как минимум из трёх основных компонентов:
Клиентская часть — это приложение, при помощи которого пользователь взаимодействует с веб-сервером по средствам сети Интернет. Клиентская часть может быть разработана на любом языке и не зависит от операционной системы веб-сервера. В клиентской части формируются запросы к серверу и обрабатываются ответы от него.
Серверная часть — это программа или скрипт на веб-сервере, обрабатывающая запросы пользователя (запросы от клиентского приложения). Серверную часть, так же как и клиентскую, можно писать практически на любом языке. Наиболее популярными языками являются PHP, Ruby, Python и Java.
При необходимости, приложение-клиент отправляет запрос к серверу через протокол HTTP. Сервер обрабатывает этот запрос, вызывая некоторый скрипт или метод, который формирует ответ и отсылает его клиенту. Ответ может быть представлен в разном виде: в виде текста, HTML-страницы, XML-файла или JSON-объекта.
База данных (БД, или система управления базами данных) — программное обеспечение на сервере, занимающееся хранением данных и их выдачей в нужный момент. База данных располагается на сервере. Серверная часть приложения обращается к базе данных, извлекая данные, которые необходимы для формирования ответа, запрашиваемого пользователем.
Исходя из функциональных требований, предъявляемых к системе, схема разрабатываемого приложения выглядит следующим образом:
клиент посылает http-запросы веб-серверу через сеть интернет;
веб-сервер вызывает php-скрипт для обработки запроса;
php-скрипт, при необходимости, обращается к базе данных;
в итоге php-cкрипт возвращает ответ в виде JSON-объекта, из которого клиент извлекает необходимую информацию.
На рисунке 3 приведена графическая схема взаимодействия компонентов клиент-серверного приложения.
Рисунок 3 – взаимосвязь компонентов распределенного приложения.
Проектируемая система будет строиться на основе клиент-серверной архитектуры. Основная задача сервера – вносить изменения в БД, извлекать необходимую информацию из БД и передавать ее клиенту в соответствии с требуемым форматом. В задачу клиента входит организация взаимодействия с пользователем, получение от него необходимой информации (номера пакета) или вычисление этой информации путем обработки изображения.
Перечень функциональности.
Пользовательские истории (перечень функциональности) — это подробный список того что пользователи разных ролей могут делать в системе. Каждый элемент списка строится по следующему шаблону:
Как <роль>, я <действие>, чтобы <ценность или влияние>.
В разрабатываемой системе всего одна роль — пользователь.
Как пользователь, я авторизовываюсь, чтобы получить список доступных ЦРЗ и иметь возможность взаимодействовать с ними.
Как пользователь, я хочу принять пакет в требуемый ЦРЗ.
Как пользователь, я ищу пакет в системе, чтобы его принять.
Как пользователь, я ввожу номер пакета с клавиатуры, чтобы его в системе.
Как пользователь, я сканирую штрих-код пакета, чтобы его в системе.
Как пользователь, я принимаю пакет, для дальнейшей его выдачи.
Как пользователь, я хочу выдать пакет клиенту, чтобы получить деньги за его хранение.
Как пользователь, я ищу пакет в системе, чтобы его выдать.
Как пользователь, я ввожу номер пакета с клавиатуры, чтобы его в системе.
Как пользователь, я сканирую штрих-код пакета, чтобы его в системе.
Как пользователь, я выдаю пакет клиенту, чтобы получить деньги за его хранение.
Как пользователь, я хочу переместить пакет из текущего ЦРЗ в другой ЦРЗ, чтобы получить деньги за его хранение.
Как пользователь, я выбираю из списка те ЦРЗ, в которые необходимо переместить пакеты.
Как пользователь, я выдаю курьеру необходимые пакеты, а так же выдаю или получаю от курьера необходимую сумму денег.
Как пользователь, я смотрю список пакетов в выбранном ЦРЗ, чтобы узнать какие пакеты находятся на складе.
Как пользователь, я смотрю статистику за текущий месяц в выбранном ЦРЗ, чтобы узнать информацию о расходах и доходах.
