- •Аннотация
- •Содержание
- •1.2. Бизнес – требования
- •1.3. Пользовательские требования
- •1.4. Системные требования
- •2. Архитектурное описание
- •2.1. Архитектурное обоснование
- •2.2. Модели
- •2.3. Uml описание
- •2.3.2. Диаграмма классов
- •2.3.3. Диаграмма активности
- •2.3.4. Диаграмма развёртывания
- •3. Тесты
- •Заключение
- •Список используемых источников
2.3.2. Диаграмма классов
Описание диаграммы классов: в данном проекте основными классами являются классы User и Thing.
Класс User описывает пользователей системы. За каждым пользователем закреплены его имя (first name), фамилия (last name), id в системе (id), логин (login), SHA256 хеш пароля (password) и номер телефона (telephoneNum). Для данного класса доступны методы получения id пользователя getId(), номера телефона данного пользователя getTelephon(), метод для изменения номера телефона setTelephone() и аутентификации пользователя в системе auth().
Следующий класс Thing необходим для описания продаваемых магазином товаров. Данный класс хранит в себе id предмета (id), его название (name), количество на складе (count) и цену за 1 единицу данного товара (cost). Методы данного класса позволяют изменять add(int count), delete(int count), получать количество товара на складе getCount() и получать информацию о товаре getCost(), getId(), getName(). Каждый экземпляр данного класса отвечает за определённый тип товара.
Последний класс Basket описывает корзину конечного пользователя. В данном классе храниться информация о пользователе к которому закреплён данный экземпляр корзины (idUser), массив Thing товаров добавленных пользователем в корзину(things[]), номер транзакции (transactionNum) и чека (checkNum) которые появятся при оплате данной корзины покупателем. Для класса существуют методы, которые позволяют добавить в корзину определённое количество товара add(Thing thing, int count), удалить товар из корзины delete(Thing thing, int count) и провести платёж payment() информация о котором сохранится в атрибутах экземпляра данного класса.
Между классами User и Basket отношение композиция 1 к 1, так как конкретный экземпляр корзины может принадлежать только 1 пользователю и существует она только вместе с конкретным пользователем.
Между классами Thing и Basket отношение агрегации много к 1, так как в конкретном экземпляре корзины может содержаться множество товаров, а удаление корзины не влияет на добавленные в неё товары.
Диаграмма классов представлена на рисунке 3.
Рисунок 3. Диаграмма классов
2.3.3. Диаграмма активности
Описание диаграммы активности: для каждого пользователя, описанного ранее, существует определённый набора активностей. Так неавторизованные пользователи могут авторизоваться как администратор или зарегистрированный пользователь. Также неавторизованным пользователям доступны списки товаров, товарная корзина и возможность покупать товары, добавленные в корзину.
Следующей группой пользователей являются авторизованные пользователи, для них помимо действий доступных предыдущей группу доступны также действия по добавлению отзыва о товаре и возможность отправлять сообщения в службу поддержки.
Последняя группа пользователей администраторы. Пользователям, авторизованным как администратор, доступны сообщения, посланные авторизованными пользователями в службе поддержки, и список товаров, который администраторы могут свободно изменять.
На рисунке 4 приведена диаграмма активностей для данного проекта.
Рисунок 4. Диаграмма активностей