АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Главный раздел

Читайте также:
  1. B) международным географическим разделением труда
  2. B. метода разделения смеси веществ, основанный на различных дистрибутивных свойствах различных веществ между двумя фазами — твердой и газовой
  3. I СИТУАЦИОННЫЕ ЗАДАЧИ ПО ПРОФИЛЬНЫМ РАЗДЕЛАМ
  4. I. Общий раздел
  5. I.1. АКТУАЛЬНОСТЬ РАЗДЕЛА
  6. I.Организационно – методический раздел
  7. II. Организационно-технический раздел.
  8. II. Разделение труда и машины
  9. SWOT – анализ раздела
  10. SWOT-анализ раздела «ОБРАЗОВАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ, ЭФФЕКТИВНОСТЬ»
  11. SWOT-анализ раздела «Профессорско-преподавательский состав
  12. SWOT-анализ раздела «Студенты»
Вариант использования Buy Items (Покупка товаров): версия 1
Актеры Customer (Покупатель) – инициатор, Cashier (Кассир)
Цель Оформление покупки и платежа наличными
Описание Покупатель подходит к кассе с товарами, которые он желает приобрести. Кассир вводит информацию о товаре и оформляет платеж. В завершение покупатель покидает магазин с приобретенными товарами.
Ссылки Функции: 1.1, 1.2, 1.3, 1.5, 1.7, 1.9, 2.1

 

Типичный ход событий
Действия актера Отклик системы
1. Покупатель подходит к кассовому аппарату с POST с товарами, которые он желает приобрести.  
2. Кассир вводит универсальный код для каждого товара.   3. Определяет цену единицы товара и добавляет информацию о товаре для выполнения транзакции.
Если покупатель приобретает несколько единиц одного и того же товара, то кассир также вводит их количество. Выводится описание товара и его цена.
4. После завершения ввода информации о товаре кассир уведомляет систему POST, что информация введена. 5. Вычисляет и отображает общую стоимость покупки.
6. Кассир сообщает покупателю общую стоимость покупки.  
7. Покупатель дает деньги за покупку, количество которых, возможно, превышает общую стоимость платежа.  
8. Кассир вводит полученную сумму 9. Отображает сумму, которую требуется вернуть покупателю (сдачу) и выдает товарный чек.
10. Кассир кладет полученные от покупателя деньги в кассу и извлекает причитающуюся ему сдачу. Кассир отдает покупателю сдачу и товарный чек.  
12. Покупатель покидает магазин с приобретенными товарами  

Объекты и атрибуты системы POST

Объекты Атрибуты
POST (торговая точка, оснащенная системой POST)  
Item (Товар)  
Store (Магазин) address: Address (адрес магазина) name: Text (название магазина)
Sale (Продажа) date: Date (дата покупки) time: Time (время покупки) total: Quantity (итоговая сумма продажи)
Payment (Платеж) amount: Quantity (предложенная покупателем сумма)
ProductCatalog (Каталог товаров)  
ProductSpecification (Спецификация товара) description: Text (описание товара) upc: Upc (универсальный код товара) price: Quantity (цена товара)
SaleLineItem (Элемент продажи) quantity: Integer (количество единиц приобретаемого товара)
Cashier (Кассир)  
Customer (Покупатель)  
Manager (Менеджер)  

На рис. П.3 представлена концептуальная модель предметной области системы розничной торговли.

Рис.П.0.3. Концептуальная модель предметной области

Диаграмма последовательности для варианта использования Buy Items (Покупка товаров) может иметь вид, представленный на рис. П.4.

Рис.П.0.4. Диаграмма последовательности для варианта использования Buy Items.

Описание системных операций приведено ниже.

ПРОЕКТИРОВАНИЕ (1)

В качестве примеров приведем описания и диаграммы кооперации для системных событий enterItem, endSale, makePayment варианта использования Buy Items и для системного события startUp варианта использования Start Up.

Описание операции enterItem

  Описание
Имя enterItem (ups: Number, quantity: Integer)
Обязанности Ввести (записать) информацию о продаже товара и добавить ее к общей информации о текущей продаже. Отобразить описание товара и его цену.
Тип Системная
Ссылки Функции системы: 1.1, 1.3, 1.9 Варианты использования: Buy Items
Примечания Использовать самый быстрый доступ к базе данных
Исключения Если универсальный код товара указан неправильно, выдать сообщение об ошибке
Вывод  
Предусловия Универсальный код товара известен системе
Постусловия 1. Для новой продажи создан экземпляр объекта Sale (создание экземпляра) 2. Для новой продажи вновь созданный экземпляр Sale связан с объектом POST (формирование ассоциации) 3. Создан экземпляр объекта SalesLineItem (создание экземпляра) 4. Вновь созданный экземпляр SalesLineItem связан с объектом Sale (формирование ассоциации) 5. Атрибут SalesLineItem.quantity принял значение quantity (модификация атрибута) 6. Объект SalesLineItem связан с объектом ProductSpecification на основе соответствия универсального кода товара (формирование ассоциации)

Диаграмма кооперации для операции enterItem

Для построения диаграммы кооперации вначале необходимо выбрать контроллер для обработки сообщений системной операции enterItem. Согласно паттерну Controller в качестве такового можно выбрать класс POST. В качестве параметров сообщения enterItem объекту POST передаются универсальный код товара и количество покупаемых единиц.

Из постусловий 1 и 2 вытекает необходимость назначения некоторому объекту обязанности создания экземпляров других объектов. Согласно паттерну Creator, запись информации о продажах может выполнять объект POST, поэтому ему поручим создание экземпляров объектов Sale, в этом случае объект POST будет содержать ссылку на текущий экземпляр Sale.

После создания объекта Sale необходимо создать пустой набор (контейнер) для записи всех добавляемых впоследствии экземпляров SalesLineItem. Этот контейнер будет поддерживаться экземпляром Sale, который согласно паттерну Creator является наилучшим кандидатом для их создания. Контейнер представлен на диаграмме мультиобъектом.

Из постусловий 1 и 2 системной операции enterItem следует необходимость делегирования обязанности по созданию экземпляра SalesLineItem. Так как объект Sale содержит объекты SalesLineItem, то логично именно этому классу поручить создание экземпляров SalesLineItem. В таком случае со временем объект Sale будет связан с новым экземпляром набора продаваемых товаров.

Из постусловий следует, что при создании экземпляра SalesLineItem необходимо указать количество единиц покупаемого товара, поэтому данное значение надо передавать из объекта POST объекту Sale, который в свою очередь, передаст его в качестве параметра сообщения create.

Согласно паттерну для создания объекта SalesLineItem объекту Sale передается сообщение makeLineItem, параметрами которого являются количество единиц товара quantity и спецификация товара ProductSpecification, соответствующая универсальному коду товара. Объект Sale создает экземпляр SalesLineItem, а затем хранит этот новый экземпляр в своем постоянном контейнере.

Экземпляр SalesLineItem необходимо связать со спецификацией ProductSpecification, соответствующей универсальному коду товара (необходимо уметь по универсальному коду товара находить значение ProductSpecification). Проанализировав концептуальную модель, приходим к выводу, что класс ProductCatalog содержит полную информацию о ProductSpecification, поэтому согласно паттерну Expert эту обязанность необходимо поручить классу ProductCatalog.

Экземпляры объектов POST и ProductCatalog должны быть созданы в процессе реализации варианта использования Start Up и между этими объектами должна устанавливаться постоянная связь. Поэтому отправку сообщения с запросом на получение значения спецификации – specialization можно поручить классу POST для класса ProductCatalog.

Предположим, что в данном этапе все значения ProductSpecification хранятся в оперативной памяти (в реальной жизни они, конечно же, хранятся в базе данных).

Также необходимо определить сообщения мультиобъектам (отправляется один раз целому набору данных, а не отдельным элементам):

ü find – сообщение, передаваемое мультиобъекту ProductSpecification.

ü create – сообщение, передаваемое мультиобъекту SalesLineItem для создания контейнера, представленного мультиобъектом.

ü add – сообщение, передаваемое мультиобъекту SalesLineItem для добавления элемента в контейнер, представленный мультиобъектом.

Диаграмма представлена на рис. П.5.

Рис. П.0.5. Диаграмма кооперации для операции enterItem


Описание операции endSale

  Описание
Имя endSale()
Обязанности Зафиксировать окончание ввода наименований товара и отобразить общую стоимость покупки
Тип Системная
Ссылки Функции системы: 1.2 Варианты использования: Buy Items
Примечания  
Исключения Если продажа не состоялась, выдать сообщение об ошибке
Вывод  
Предусловия Универсальный код товара известен системе
Постусловия Атрибут Sale.isComplete принял значение true (модификация атрибута)

Диаграмма кооперации для системной операции endSale

В соответствии с паттерном Controller в качестве контроллера будем использовать класс POST.

Обязанность установки атрибута isComplete объекта Sale в значение true согласно паттерну Expert следует возложить на сам класс Sale, так как он владеет атрибутом isComplete. Тогда класс POST будет отправлять объекту Sale сообщение becomeComplete, требующее установки этого атрибута равным true. Диаграмма представлена на рис. П.6.

Рис.П.0.6. Диаграмма кооперации для системной операции endSale


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)