- •Аннотация
- •Содержание
- •1.2. Бизнес – требования
- •1.3. Пользовательские требования
- •1.4. Системные требования
- •2. Архитектурное описание
- •2.1. Архитектурное обоснование
- •2.2. Модели
- •2.3. Uml описание
- •2.3.2. Диаграмма классов
- •2.3.3. Диаграмма активности
- •2.3.4. Диаграмма развёртывания
- •3. Тесты
- •Заключение
- •Список используемых источников
1.2. Бизнес – требования
В бизнес-требования заказчика входят:
Возможность выдачи чеков на совершённые пользователями покупки.
2) Возможность администрирования сайта, в том числе добавления, удаления и изменения списка товаров.
Стабильная работа сайта при нагрузке в 50 000 посетителей в день.
Интуитивно понятный интерфейс.
Поддержка вёрстки всеми популярными браузерами.
Сайт должен корректно отображаться на телефоне.
1.3. Пользовательские требования
Для удобства использования сайта пользователями были добавлены следующие требования:
1) Возможность регистрации и авторизации пользователя.
2) Наличие средств поиска по ключевым словам, фильтрации выдачи.
3) Сохранение корзины неавторизованных пользователей.
4) Возможность добавлять, удалять покупки в корзину, изменять их количество.
5) Обеспечение обратной связи с технической поддержкой сайта.
6) Возможность удобной и безопасной оплаты товаров.
1.4. Системные требования
Требования к применяемому оборудованию и ПО:
Выделенный не виртуальный сервер.
Возможность установки и использования JVM и Tomcat.
Зарегистрированное доменное имя.
Для пользователей: любой популярный браузер.
2. Архитектурное описание
2.1. Архитектурное обоснование
Для создания данного веб-приложения планируется использовать язык программирования Java и технологии Servlet и JSP. Java был выбран за удобство в разработке, поддержки и кроссплатформенность. Интерфейс Servlet позволяет расширить возможности сервера, обеспечив клиент-серверное взаимодействие по протоколу HTTP. С помощью JSP будут автоматически конфигурироваться страницы для ответа на запросы пользователя.
Также данный стек технологий позволяет использовать информацию о сессии и cookie для работы с неавторизованными пользователями.
Для хранения и обработки информации будет использоваться реляционная система управления базами данных MySQL. Для взаимодействия веб-сервера и сервера базы данных подходит технология JDBC, предоставляющая драйвера для взаимодействия Java приложения с различными СУБД.
Для проведения платежей будет использоваться платёжный шлюз системы Яндекс.Деньги, что обеспечить безопасность и доверие к проводимым транзакциям.
Для приложения было выбрано наиболее удобный для данных целей архитектурный шаблон MVC, данный шаблон позволяет разделить данные приложения, пользовательский интерфейс и управляющую логику на три отдельных компонента модель, представление и контроллер представленные на рисунке 1. В данном шаблоне модель отвечает за данные и реагирует на команды контроллера, изменяя своё состояние. Представление отображает данные модели пользователю, реагируя на изменение модели. Контроллер интерпретирует действия пользователя изменяя модель.
Рисунок 1. Шаблон MVC
В данном приложении в качестве модели будет выступать база данных MySQL, в качестве контроллера Servlet, а за отображение будет отвечать JSP.
2.2. Модели
В таблице 2 представлены данные и методы работы с ними.
Таблица 2. Данные и методы
Объект |
Методы |
Свойства |
User |
Авторизация пользователя, получение и изменение информации о пользователе. |
Имя пользователя, фамилия пользователя, id пользователя, логин, пароль, номер телефона, добавление предметов в корзину, покупка предметов из корзины |
Thing |
Добавление, удаление, изменение количества, получение информации о предмете. |
Id предмета, название, количество на складе, стоимость. |
Basket |
Добавление, удаление, изменение количества предметов в корзине, оплата с сохранением информации об оплате. |
Id пользователя, массив Thing содержащий предметы, добавленные в корзину, информация об оплате (номер транзакции и чека). |