Добавлен: 20.05.2023
Просмотров: 480
Скачиваний: 10
Автоматы для произведения заправки условно можно подразделить на:
- автоматы для заправки стандартного топлива и ДТ;
- автоматы для заправки газа;
- автоматы для заправки электрокаров.
Сотрудников АЗС можно подразделить на:
- менеджер;
- оператор;
- заправщик.
В обязанности заправщиков входит произведения заправки автомобилей клиентов и заправка резервуаров с топлевом.
Обязанностями менеджеров являются общий контроль ситуации на АЗС.
В обязанности операторов входит:
- продажа товаров;
- приготовление фастфуда;
Товары можно разделить на:
- топливо;
- сопутствующие товары для автомобиля (моторное масло, очистители, ароматизаторы, дистиллированная вода и т.п.);
- товары пищевого блока (шоколадные батончики, напитки, выпечка и т.п.);
- товары пищевого блока, изготовляемые на АЗС (хот доги, бургеры и т.п.).
Системы пожаротушения на АЗС можно разделить на:
- первичные средства пожаротушения;
- стационарные установки пожаротушения;
К первичным средствам относятся:
- ящик с песком;
- углекислотные огнетушители;
- порошковые огнетушители ручные и передвижные.
Стационарные установки так же разделяются по видам на:
- газовые и порошковые системы;
- аэрозольные системы пожаротушения.
2. СОСТАВЛЕНИЕ ДИАГРАММЫ КЛАССОВ ВЫБРАННОЙ СУЩНОСТИ.
2.1. ИСХОДНЫЕ ДАННЫЕ ДЛЯ ПОСТРОЕНИЯ ДИАГРАММЫ КЛАССОВ
Для построения диаграммы классов была выбран бензозаправка со следующими характеристиками:
- АЗС данной сети бензозаправок предоставляют клиентам возможность заправляться следующими видами бензина: АИ-92,АИ-95,АИ-98,ДТ;
- бензозаправки данной сети не являются автоматическими, поэтому на АЗС присутствуют все виды персонала: менеджеры, операторы, заправщики;
- присутствует возможность получения всех видов товаров;
- присутствуют все виды систем пожаротушения;
- присутствуют все виды топливных резервуаров;
- автоматы для заправки исключительно для бензина и ДТ.
Построение диаграммы проводилось в среде построения UML диаграмм StarUML.
2.2. ДИАГРАММА КЛАССОВ ИССЛЕДУЕМОЙ СУЩНОСТИ
Диаграмма UML исследуемой сущности имеет следующий вид:
Рис.1 Итоговая диаграмма сущности «бензозаправка»
При разработке диаграммы акцент был сделан на работе с клиентом бензозаправке. Использовались связи Directed Association и Generalization.
Теперь перейдем непосредственно к рассмотрению частей сущности «бензозаправка».
Вначале разберем часть сущности «Автоматы для заправки». Часть диаграммы классов отвечающая за данный класс представлена на Рис.2.
Рис.2 Классы автоматов для заправки
Класс FillingMachineFuel используется для описания заправочных автоматов на бензозаправке, использующих только жидкое топливо. Так как по мимо заправки жидким топливом существуют еще машины на газу и электрокары, то существует общий для всех видов заправки абстрактный класс FillingMachine, в свойства которого входит наименование автомата и тип продукта, которым пользуется этот автомат.
Сам же класс FillingMachineFuel по мимо свойств класса родителя имеет свойство Tank типа FuelTank, то есть с каким топливным резервуаром работает данный автомат.
Так же класс FillingMachineFuel имеет 2 метода: fuelPumping(FuelTank), checkAvailability(FuelTank).
Метод fuelPumping(FuelTank) предназначен для того чтобы выкачивать из используемой цистерны топливо.
Метод checkAvailability(FuelTank) предназначен для проверки наличия топлива в используемом резервуаре.
Далее опишем часть сущности «Системы пожаротушения». Часть диаграммы классов представлена на Рис.3.
Рис.3 классы систем пожаротушения
Класс FireExtinguishingSystem является основным классом систем пожаротушения бензозаправки.
В свойства данного класса входят:
- Name – наименование системы пожаротушения;
- Type – какой применяется тип пожаротушения;
- Substance – какое вещество применяется в данной системе. Данное свойство имеет тип класса extinguishingАgent. Это класс веществ, используемых в системах пожаротушения. В данном классе прописаны основные свойства данных веществ: Name – наименование вещества, modeApplication – способ применения и composition содержащий в себе состав вещества.
Метод extinguish() реализует механизм пожаротушения автоматическими системами пожаротушения.
Следующими будут описаны части сущности «Топливные резервуары» и «Товары». Данные классы отображены на Рис.4. 
Рис.4
Класс FuelTank представляет собой класс топливных резервуаров.
Свойствами данного класса являются основные характеристики топливных резервуаров:
- workingPressure – рабочее давление резервуара;
- innerDiameter – диаметр внутренней окружности;
- length – длина;
- width – ширина;
- height – высота;
- levelBackfilling - уровень наполненности резервуара;
- thicknessShell – толщина оболочки;
- type - тип резервуара;
- currentOccupation – расположение резервуара;
- FuelType – тип топлива, которое хранится в резервуаре. Данное свойство имеет тип класса Fuel, который является наследником класса товаров Goods.
Класс Goods представляет собой основой класс товаров. Свойствами класса являются поля, описывающие основные свойства товара:
- Name – наименование товара;
- Receiptdate – дата поступления;
- ExpirationDate – срок годности;
- Purveyor – поставщик;
- Price – стоимость товара за единицу измерения;
- Units – единица измерения.
Данный класс является классом родителем для классов, описывающих основные категории товаров бензозаправки:
- класс Fuel – описывающий топливо;
- класс GoodsForCar – описывает товары для автомобилей;
- класс GoodsForPerson – описывает товары для клиентов;
- класс FastFood – описывает еду быстрого приготовления, изготавливаемую на бензозаправке.
Данные классы по мимо свойств класса родителя содержат собственные свойства, которые сейчас рассмотрим:
Свойства класса Fuel:
-
- AmountTank – количество данного топлива в резервуарах;
- TypeFuel – тип топлива.
Свойств класса GoodsForCar:
- QuantityInStock – количество товаров на складе;
- mountInHall – количество товара в зале, на витринах.
Свойств класса GoodsForPerson:
- uantityInStock – количество товаров на складе;
- mountInHall – количество товара в зале, на витринах.
Данные классы были разделены, так как в будущем предполагается что у товаров данных классов могут быть дополнительные свойства, которые будут противоположными.
Свойства класса FastFood:
- composition: string[1..*] – представляет собой массив ингредиентов;
- recipe – поле содержащее рецепт приготовления;
- cookingTime – время на приготовления блюда.
Теперь рассмотрим основную составляющую диаграммы: классы сотрудников и клиентов. Часть основной диаграммы, в которой отображены данные классы представлена на Рис.5.
Рис.5
Вначале рассмотрим класс Client. Так как клиенты люди, то данный класс является наследником абстрактного класса Person, в свойства которого входят: Name – имя человека, Age – возраст, и метод eating – то есть прием пищи.
Свойства класса Client:
-
- VehicleClient: Vehicle – свойство является объектом класса Vehicle и отвечает за средство передвижения клиента;
- Скрытое свойство money – описывающее количество денежных средств у клиента.
По мимо свойств объект Client обладает рядом методов:
-
- PurchaseGoods(in Goods, in CountGoods, in money, in Employer) – метод оплаты товара бензозаправки. В данный метод передаются товар, его количество, деньги клиента, и объект сотрудник с которым происходит данный расчет.
- RefuelingMachine(in Vehicle, in Fuel, in FillingMachine) – метод заправки автомобиля. В случае если сотрудник с должностью «заправщик» не может выполнить эту функцию клиент сам производит подготовительные мероприятия для заправки автомобиля. В данный метод передается средство передвижения клиента, товар «топливо», и автомат с помощью которого будет производиться заправка.
- extinguish(in FireExtinguishingSystem) – в случае крайней необходимости клиент может осуществлять тушение пожара с помощью средств пожаротушения бензозаправки, которые являются параметром данного метода.
Теперь перейдем к семейству классов сотрудники. Данное семейство классов содержит класс родитель Emloyer, который является наследником класса Person, и 3 класса потомка: operator, manager,refueler которые соответствуют каждой должности на заправке.
Вначале разберем свойства и методы класса родителя.
Свойства класса Employer:
-
- Position – должность занимаемая сотрудником;
- Salary – скрытое свойство заработной платы сотрудника;
- ModeOfOperation – режим работы сотрудника
Методы класса Employer:
-
- Work – общий метод подразумевающий выполнения общих обязанностей сотрудников;
- extinguish(in FireExtinguishingSystem) – метод аналогичный такому же методу в классе Client, реализовывающий механизм пожаротушения с помощью средств пожаротушения бензозаправки.
Теперь перейдем к классам наследникам.
Класс operator не имеет своих свойств, но есть индивидуальные методы:
-
- SaleOfGoods(in Goods, in Client) – метод продажи товара клиенту. В данный метод передается товар и клиент с которым производится расчет.
- Cooking(in fastfood, in Client) – метод реализует механизм изготовления фастфуда и выдачу его клиенту. Соответственно в этот метод передается объект заказанного fastfood и клиент , который оформил заказ.
У класса manager есть 1 дополнительный метод:
ControlWorkers() – который реализовывает механизм контроля работы сотрудников бензозаправки.
Класс refueler имеет два дополнительных метода:
- RefuelingMachine(in Vehicle, in Fuel, in FillingMachine) – который осуществляет механизм заправки клиента. В метод передается объекта класса «средство передвижения», товар топливо, автомат с помощью которого будет осуществляться заправка.
- refuelingTank(in FuelTank, in Fuel) – данный метод осуществляет механизм заправки резервуаров привезенным топливом. Параметрами данного метода являются объекты типа «Топливный резервуар» и «Топливо».