Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Beznos_Bolozovskii_7363_Kursovaya.docx
Скачиваний:
11
Добавлен:
20.06.2023
Размер:
654.18 Кб
Скачать

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. Диаграмма активностей