|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Главный раздел
Объекты и атрибуты системы POST
На рис. П.3 представлена концептуальная модель предметной области системы розничной торговли. Рис.П.0.3. Концептуальная модель предметной области Диаграмма последовательности для варианта использования Buy Items (Покупка товаров) может иметь вид, представленный на рис. П.4. Рис.П.0.4. Диаграмма последовательности для варианта использования Buy Items. Описание системных операций приведено ниже. ПРОЕКТИРОВАНИЕ (1) В качестве примеров приведем описания и диаграммы кооперации для системных событий enterItem, endSale, makePayment варианта использования Buy Items и для системного события startUp варианта использования Start Up. Описание операции enterItem
Диаграмма кооперации для операции 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 В соответствии с паттерном Controller в качестве контроллера будем использовать класс POST. Обязанность установки атрибута isComplete объекта Sale в значение true согласно паттерну Expert следует возложить на сам класс Sale, так как он владеет атрибутом isComplete. Тогда класс POST будет отправлять объекту Sale сообщение becomeComplete, требующее установки этого атрибута равным true. Диаграмма представлена на рис. П.6. Рис.П.0.6. Диаграмма кооперации для системной операции endSale Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |