# Анализ предметной области Магазин организует продажу строительных материалов. Предполагаются четыре роли пользователя: клиент, менеджер, бухгалтер и грузопереводчик. Клиент формирует заказ, если материала нет в наличии можно его заказать . При приобретении материалов покупатель указывает свою фамилию, имя, отчество, свой адрес и телефон. Менеджер принимает заказ. Бухгалтер организовывает доставку товаров, которых нет в наличии. Материалы можно приобрести с возможностью доставки. Грузоперевозчик организовывает доставку материалов до адресата. Если покупатель оформил доставку, нанимается транспорт для доставки материалов. Оплату можно произвести как налично так и без налично. # UML - диаграммы ### Диаграмма прецедентов ![Alt text](images/Диаграмма.png) ### Диаграмма состояний ![Alt text](images/2.jpg) ![Alt text](images/3.jpg) ### Диаграмма деятельности ![Alt text](images/4.jpg) ![Alt text](images/5.jpg) ![Alt text](images/6.jpg) # Сертификация вариантов использования (Прецедентов). | | | | --- | ---| | Прецедент | Формирование заказа | | Идентификатор | ID 1 | | Краткое описание | Клиент формирует заказ | | Главные акторы | Клиент | | Второстепенные акторы | Менеджер, Грузоперевозчик | | Предусловия | нет | Основной поток | 1. Прецедент начинается, когда Клиент формирует заказ
2. Клиент оформил доставку
3. Менеджер принимает заказ | Альтернативные потоки | 2.1 Клиент указывает свое ФИО, адрес и номер телефона
2.2 При оплате Грузоперевозчик организовывает доставку | Постусловия | 1. Клиент оформил заказ
2. Покупатель отказался от покупки | | | ---|--- Прецедент | Проверка на наличие материала Идентификатор | ID 2 Краткое описание | Клиент оформил заказ которого нет в наличии Главные акторы | Менеджер Второстепенные акторы | Бухгалтер Предусловия | Клиент оформил заказ Основной поток | Прецедент начинается, когда Менеджер принимает заказ Альтернативные потоки | Бухгалтер заказывает недостающие материалы у поставщика Постусловия | Все материалы заказа в наличии | | | | --- | --- | | Прецедент | Оплата| Идентификатор | ID 3 Краткое описание | Клиент оплачивает заказ Главные акторы | Клиент Второстепенные акторы | нет Предусловия | Все материалы заказа в наличии Основной поток | 1. Прецедент начинается, когда Клиент оплачивает заказ
2. Клиент оплачивает заказ безналично
Альтернативные потоки | 2.1 Вводит данные карты Постусловия | Заказ оплачен # Словари данных и ER-диаграмма ## Словарь данных ### Пользователь | Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |userId |INT | Y| id пользователя | | |lastName |varchar(30) | Y| Фамилия пользователя | | |middleName |varchar(30) | Y| Имя пользователя | | |patronymic |varchar(30) | Y| Отчество пользователя | | FK| role| varchar(20) |Y | Ссылка на словарь тнаименований ролей пользователя| | | login| varchar(20) |Y | Логин пользователя| | | password| varchar(10) |Y | Пароль пользователя| ### Роли | Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |roleId |INT | Y| id роли | | |name |varchar(20) | Y| Наименование роли | ### Заказ Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |orderId |INT | Y| id заказа | | |orderDate |DATE | Y| Дата заказа, в которую клиент должен получить свой заказ | | FK|orderStatus |varchar(20) |Y |Ссылка на словарь наименований статусов | |FK |userId |INT | Y| Ссылка на словарь тегов клиентов для выдачи заказа нужному клиенту| |FK |materialId|INT | Y| Ссылка на словарь тегов материалов для выдачи нужного материала клиенту| ||address |varchar(50) | | Адрес клиента, который он заполняет при оформлении доставки | | |phoneNumber |varchar(12) | | Номер телефона, который тоже заполнеяется при формлении достваки| |FK |paymentId |varchar(12) | | Ссылка на словарь тегов оплаты для подтверждения заказа| ### Статус | Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |statusId |INT | Y| id статуса | | | name|varchar(20) | Y| Наименование статуса| ### Доставка Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |deliveryId |INT | Y| id доставки | | |deliveryDate |DATE |Y | Дата доставки до адреса клиента| |FK |orderId |INT | Y| Ссылка на словарь тегов заказов для понимания, тот ли заказ доставляестся| ### Материалы Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |materialId |INT |Y | id материала| | |title |varchar(50) |Y | Наименование материала | | |price |INT | Y| Цена материала | | |quantity |INT |Y | Количество материала| ### Оплата Key| Field Name|Data Type/Field Size |Required? | Notes| |---|---|---|---|---| |PK |paymentId |INT | Y| id оплаты| | |paymentType |varchar(20) |Y | Тип оплаты | | |paymentAmount |INT | Y| Стоимость оплаты | | FK|materialId |INT | Y| Ссылка на словарь тегов материалов | ### ER-диаграмма ![Alt text](images/7.jpg)