Вы находитесь на странице: 1из 14

Лабораторная работа №1.

Модель предметной области, диаграммы классов и объектов.

1. МПО

2. Диаграмма классов
Программный код:
public class Employee {
private String jobTitle;
private String firstName;
private String lastName;
private int hours;

public boolean giveInventory(Abstractinv inv){


}

public boolean takeInventory(Abstractinv inv){


}
}

public class rentalStore {


public String address;
public Employee employes[];
public Abstractinv invs[];
public Client clients[];

public void addInventory (Abstractinv inv) {


}
public void deleteInventory(Abstractinv inv) {
}
}

public class Client {


private String phoneNumber;
public String firstName;
public String lastName;
public void pay (Abstractinv inv) {
}
}

public abstract class Abstractinv {


protected int inventoryId;
public String name;
public int price;
public boolean available;
public FeedBack reviews[];

public boolean sendCheck(){


}
}

public class Bicycle extends Abstractinv {


public String type;
}

public class Rollers extends Abstractinv{


public int size;
}

public class Skateboard extends Abstractinv {


public double length;
}

public class FeedBack {


private Client user;
}

3. Диаграмма объектов
Лабораторная работа №2.
Диаграммы коммуникаций, последовательности.
1.Диаграмма последовательностей

На диаграмме изображен процесс выдачи инвентаря сотрудником. Сотрудник


проверяет доступность инвентаря через вызов метода getAvailable() у объекта класса
AbstractInv, который сотрудник собирается выдать. После отработки метода
возвращается значение переменной avail, которая показывает доступность товара, если
он доступен [avail = true], то происходит оплата использования инвентаря, то есть
вызывается метод pay от этого инвентаря у клиента client, который его арендует. Затем
мы меняем доступность инвентаря, так как его выдали, и мы больше не можем его
никому выдать, то есть мы создаем переменную val равную false и ставим через
операцию setAvailable(val) у значения поля доступности available (у объекта класса
AbstractInv) значение false. Если же инвентарь недоступен, то мы ничего не делаем в
программе.

Программный код:
public class Employee {
private String jobTitle;
private String firstName;
private String lastName;
private int hours;

public boolean giveInventory(Abstractinv inv, Client client) {


boolean avail = inv.getAvailable();
if (avail) {
client.pay(inv);

boolean val = false;


inv.setAvailable(val);
}
}
}

public boolean takeInventory(Abstractinv inv) {


}
}

public class rentalStore {


public String address;
public Employee employes[];
public Abstractinv invs[];
public Client clients[];

public void addInventory(Abstractinv inv) {


}
public void deleteInventory(Abstractinv inv) {
}

public void globalCheck() {


}
}

public class Client {


private String phoneNumber;
public String firstName;
public String lastName;

public void pay(Abstractinv inv) {


}
}

public abstract class Abstractinv {


protected int inventoryId;
public String name;
public int price;
public boolean available;
public FeedBack reviews[];

public boolean sendCheck() {


}

public void setAvailable(boolean val) {


available = val;
}

public boolean getAvailable() {


return available;
}
}

public class Bicycle extends Abstractinv {


public String type;
}

public class Rollers extends Abstractinv {


public int size;
}

public class Skateboard extends Abstractinv {


public double length;
}

public class FeedBack {


private Client user;
}

3.Диаграмма коммуникаций
На диаграмме изображен процесс выдачи инвентаря сотрудником. Сотрудник
проверяет доступность инвентаря через вызов метода getAvailable() у объекта класса
Bicyclee который сотрудник собирается выдать(1). После отработки метода
возвращается значение переменной avail, которая показывает доступность товара, если
он доступен [avail = true], то происходит оплата использования инвентаря, то есть
вызывается метод pay от этого инвентаря у клиента client, который его арендует (2).
Далее после оплаты товара значение available у объекта должно измениться на false с
помощью метода setAvailable(false) (3).
На диаграмме изображен процесс проведения инвентаризации магазина сотрудником.
Сотрудник направляет на проверку с помощью метода sendToCheck() объект класса
Bicycle родительского класса AbstractInv, который имеется в магазине (1). Если
инвентарь Bicycle не проходит проверку [check = false], то мы удаляем инвентарь из
магазина с помощью метода deleteInventory(inv) (2). Если инвентарь проходит
проверку, то ничего не происходит и инвентарь остается в магазине.

4.Диаграмма анализа

Первым действием работник взаимодействует со страницей создания заказа(1)


InvenotyPage, Далее граничный класс посылает сообщение Employee о том, что
необходимо обработать запрос на выдачу инвентаря(2). Затем, Employee обращается в
Bicycle(3) для поиска инвентаря, который необходимо выдать клиенту. Затем Employee
проверяет оплату клиента(4), чтобы выдать страницу об оплате клиента для работника
на странице PayPage(5).
Лабораторная работа №3.
Диаграммы пакетов, компонентов, развертывания.

1. Диаграмма пакетов.

Для примера на диаграмме показаны составляющие элементы


пакета Renatlhop System: пакет Booking Processing и классы Catalog. Главная по
функциональности часть RentalShopSystem взаимодействует с пакетом графического
интерфейса UI для веб- и мобильной вёрстки, а также использует внешние системы,
например, 1C. Все необходимые данные по инвентарю, бронированию, клиентам и
прочему хранятся в пакете DataManagement, доступ к которому имеют
RentalShopSystem и AnalyticsSystem для формирования статистики по бронированию
инвентаря для прогнозирования роста или упадка
спроса на инвентарь определенной категории.
2. Диаграмма компонентов.

Основному компоненту RentalShopSystem нужно обращение клиента IClient.


Интерфейс использован в элементе основного компонента – Employee. Компоненты
Employee содержат логику взаимодействия с клиентом, а также группой элементов
платежной системы PaymentStructure и каталогом оборудования CatalogStructure.
Чтобы оформить заказ, компонентом OrderingProcess был реализован интерфейс
IGetOrder, которому необходим компонент PaymentStructure.
Также основной компонент ShopSystem задействует компонент с данными
DataManagement, который используется компонентом аналитики и статистики
AnalyticsSystem.
3. Диаграмма развертывания.

Модули оформления (узел OrderingService), оплаты заказа (узел PaymentSystem) и базы


данных магазина (узел DataBase) расположены на одном сервере, который задействует
внешний сервис банка для совершения оплаты (узел ExternalBankAccount), сервис
аналитики (узел AnalyticsService) и персональный компьютер сотрудника (узел
Employee PC).
Лабораторная работа №4.
Диаграмма вариантов использования.

1. Диаграмма вариантов использования.

Для данной системы предусмотрено два актёра: администратор и сотрудник.


Администратор– администратор системы, должен поддерживать в актуальном
состоянии базы клиентов и каталогов инвентаря и вносить все изменения (CRUD –
create, retrieve, update, delete).
Сотрудник – зарегистрированный пользователь, который либо ищет клиента в базе,
либо добавляет клиенту в базу. Он может проверить наличие инвентаря, после этого
выдать товар и принять оплату. этого он при этом присутствует опциональное действие
"применить скидку".

Вариант использования: «Выдать инвентарь».


Описание: Сотруднику надо выдать инвентарь клиенту, провести оплату.
Предусловие: Сотрудник находится на странице с оформление выдачи инвентаря.
Основной сценарий:
1. Сотрудник выбирает команду «оформить клиента».
2. Система открывает страницу для оформления клиента.
3. Сотрудник выбирает команду «найти клиента».
4. Система открывает страницу с информацией по выбранному клиенту.
5. Сотрудник выбирает команду «Выдать инвентарь».
6. Система открывает страницу с каталогом инвентаря.
7. Сотрудник выбирает команду «Проверить наличие».
8. Система открывает страницу «Наличие инвентаря».
8.1. Инвентарь есть в наличие. Сотрудник добавляет инвентарь в заказ.
8.2. Инвентаря нет в наличие. Переход к шагу 5.
9. Система отображает информацию о заказе.
10. Сотрудник указывает способ оплаты и начинает проводить оплату.
Примечание: по умолчанию способ оплаты – «банковской картой».
11. Система отправляет запрос на страницу банка для оплаты заказа.
11.1. Оплата прошла успешна. Система открывает страницу заказа.
11.2. Оплата не прошла. Переход к шагу 8.
Альтернативный сценарий 1:
1. Заменяет шаги 3-4 Основного сценария. Начинается, когда на шаге 3 Сотрудник
выбирает
команду «Зарегистрировать клиента».
1.1. Система открывает страницу «Добавить клиента».
1.2. Сотрудник вводить данные клиента.
1.3. Система добавляет данные клиента в базу и открывает страницу с оформлением
заказа для добавленного клиента.
Лабораторная работа №5.
Диаграммы деятельности, состояний.

1. Диаграмма деятельности.

Опишем бизнес-процесс выбора инвентаря покупателем очно в магазине.


Сотрудник подбирает товар в соответствии с потребностью покупателя.
Если выбранный товар есть в наличии в магазине, то сотрудник оформляет заказ. Если
выбранного товара в наличии нет, то сотрудник предлагает похожие товары. Если
новый товар выбран, то сотрудник оформляет заказ.
2. Диаграмма состояний.

На диаграмме представлены переходы состояний возможного инвентаря – от


добавления в магазин до удаления. Из начального состояния переходим в состояние
«Добавлен». Триггер «Инвентарь добавлен» запускает обработчик «пустить инвентарь
в оборот».
Далее переход в композитное состояние «В магазине», при входе в которое необходимо
выполнить действие «ПуститьВОборот()». Инвентарь проходит проверку, и если
нарушений нет, то отправляется в магазин – переход в состояние «Доступен». При
выходе из данного композитного состояния выполняется действие
«УдалитьИнвентарь()».
При выдаче товара клиенту работает триггер [выдача] и инвентарь меняет состояние
на "Выдан". Триггер [возврат] запускает обработчик "произвести проверку", чтобы
проверить состояние инвентаря после использования, товар переходит в состояние "На
проверке". При проверке инвентаря он может быть полностью рабочим, и тогда его
состояние изменится снова на "Доступен". Если же он подлежит починке, то состояние
меняется на "На починке", а после триггер [починен] запустит обработчик "пустить в
оборот". При варианте, что инвентарь не подлежит починке, он удаляется.

Вам также может понравиться