Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 62
Описание файла
PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 62 страницы из PDF
14.21.В данном примере объектный узел выбирает только те объекты Order,которые были созданы в декабре, и предлагает их своим выходнымпотокам в применяемом по умолчанию порядке (FIFO).Объектный узел может использоваться для сбора объектов из нескольких входящих объектных потоков или для распределения объектовпо нескольким исходящим объектным потокам. В этих случаях узелиспользуется исключительно изза его буферной семантики.
Такимобразом, чтобы подчеркнуть этот факт, узел можно обозначить стереотипом «centralBuffer» (центральный буфер).все объекты Order«selection»Order.monthCreated = «Dec»согласно этому селективному поведениювыбираются объекты Order, созданные в декабреOrderобъекты Order,созданные в декабреРис. 14.21. Объектный узел с селективным поведением33114.9. Объектные узлыНаряду с отдельными объектами объектные узлы могут буферизоватьмножества (sets) объектов. Множество – это коллекция объектов,в которой нет дублирования, т.
е. каждый объект имеет уникальныйидентификатор. Чтобы показать это, перед именем классификаторапросто указывают Set of (множество). Пример приведен на рис. 14.23.Немного подробнее стереотипы «selection» и «centralBuffer» рассматриваются в разделах 15.8.2 и 15.11.14.9.2. Представление объектов в состоянииОбъектные узлы могут представлять объекты, находящиеся в определенном состоянии.Объектные узлы могут представлять объекты, находящиеся в определенном состоянии. Например, на риc. 14.22 показан фрагмент деятельности обработки заказа, которая принимает объекты Order, находящиеся в состоянии Открытый, и отправляет их по назначению.
Состояния объектов, на которые ссылаются объектные узлы, могут бытьсмоделированы с помощью конечных автоматов (см. главу 21).Создать ЗаказOrder[Открытый]ОтправитьOrder[Отправлен]объект в определенном состоянииРис. 14.22. Объект Order находится в состоянии Открытый14.9.3. Параметры деятельностиПараметры деятельности – это объектные узлы, поступающие в или исходящие из деятельности.Объектные узлы могут использоваться для обеспечения входных и выходных данных деятельности, как показано на рис. 14.23. Входящиеи исходящие объектные узлы должны перекрывать рамку деятельности.
Входящие объектные узлы связаны с деятельностью одним илиболее исходящими ребрами, а у исходящих объектных узлов – одноили более входящих ребер, поступающих из деятельности.На рис. 14.23 деятельность Производство продукта на заказ имеет тривходных параметра: CustomerRequest (запрос клиента), Set of BusinessConstraint (множество бизнесограничений) и Order, а также один выходнойпараметр, Order. Узел Set of BusinessConstraint содержит множество объектов BusinessConstraint.332Глава 14. Диаграммы деятельностивходной параметрПроизводство продукта на заказМаркетингПроизводствоДоставкаCustomerRequestСпроектироватьпродукт на заказProductSpecificationSet ofBusinessConstraintOrderвыходнойпараметрПринятьплатежобъект в определенномсостоянииИзготовитьпродуктOrder[Доставлен]поток объектовOrder[Оплачен]ДоставитьпродуктРис.
14.23. Деятельность Производство продукта на заказ имеет три входныхпараметра и один выходнойК этому процессу предъявляется несколько бизнестребований:• Продукты проектируются на основании CustomerRequest. При этомсоздается ProductSpecification (спецификация продукта).• При проектировании продукта учитываются все BusinessConstraint.• Оплата производится только после завершения проектированияпродукта.• Изготовление продукта не может быть начато до тех пор, пока небудет получен платеж и создана спецификация продукта (объектProductSpecification).• Доставка не может осуществляться до тех пор, пока продукт не будет изготовлен.Проанализируем данную деятельность.1.
Деятельность начинается, когда по входным потокам объектов действия Спроектировать продукт на заказ поступают CustomerRequest и множество BusinessConstraint. Действие принимает входящие объектыи выдает объект ProductSpecification.2. Действие Принять платеж выполняется, когда получает управляющиймаркер от Спроектировать продукт на заказ и объект Order по входномупотоку объектов.
Оно меняет состояние объекта Order на Оплачени выдает его на свой единственный выходной поток объектов.3. Затем поток управления переходит к действию Изготовить продукт.Оно принимает объект ProductSpecification, производимый в действииСпроектировать продукт на заказ, и предлагает маркер управления действию Доставить продукт.4. Доставить продукт выполняется, когда от Изготовить продукт поступаетмаркер управления и объект Order находится в состоянии Оплачен.14.10. Контакты333Результатом действия будет объект Order в состоянии Доставлен. Этотобъект Order является выходным параметром деятельности.Как видите, мы довольно легко смогли выполнить бизнестребования.•Мы не будем пытаться Спроектировать продукт на заказ до тех пор, покаклиент не сделает запрос (CustomerRequest) и не будет получено множество бизнесограничений (Set of BusinessConstraint).•Мы не можем Принять платеж, пока не будет сделан заказ (объект Order) и не будет завершено действие Спроектировать продукт на заказ.•Мы не можем Изготовить продукт до тех пор, пока нет спецификациипродукта (ProductSpecification) и не завершено действие Принять платеж(иначе говоря, пока продукт не оплачен!).•Мы не можем Доставить продукт, пока он не изготовлен (не завершилось действие Изготовить продукт) и не оплачен (пока объект Order неперейдет в состояние Оплачен).Этот пример иллюстрирует мощь диаграмм деятельности.
Они могуткратко и точно моделировать сложные процессы.14.10. КонтактыДеятельность, в которой много потоков объектов, может стать оченьзапутанной. Чтобы немного прояснить ситуацию, используйте контакты!Контакт – это объектный узел, представляющий один вход или выходиз действия.Контакт – это просто объектный узел, представляющий один вход иливыход из действия. У входных контактов только одно входное ребро, ау выходных – только одно выходное ребро. Во всем остальном их семантика и синтаксис аналогичны объектным узлам.
Однако изза ихнебольшого размера всю информацию, например имя классификатора, приходится указывать вне контакта, но как можно ближе к нему.На рис. 14.24 показана деятельность Войти в систему, имеющая два потока объектов. Деятельность начинается с действия Получить UserName.Его результатом является допустимый (valid) объект UserName. Следующее действие – Получить Password, на выходе которого получаетсядопустимый объект Password. Деятельность Аутентифицировать объект Userначинает выполнение, когда получает действительные объекты UserName и Password по своим входным потокам объектов. Осуществляетсяаутентификация пользователя, и деятельность завершается.На рис.
14.25 показана та же деятельность, но представленная с использованием контактов. Как видите, нотация контактов выглядитболее компактно, и диаграмма становится более аккуратной.334Глава 14. Диаграммы деятельностиВойти в системуПолучитьUserNameUserName[Допустимый]АутентифицироватьUserПолучитьPasswordPassword[Допустимый]Рис. 14.24. Деятельность с двумя потоками объектовВойти в системуПолучитьUserNameUserName[Допустимый]выходной контактПолучитьPasswordвходной контактАутентифицироватьUserPassword[Допустимый]Рис. 14.25.
Та же деятельность с применением контактовСравнивая рис. 14.24 и рис. 14.25, можно заметить, что объектныйузел UserName эквивалентен комбинации выходного контакта действияПолучить UserName и входного контакта действия Аутентифицировать объект User. Поэтому объектные узлы иногда называют автономным кон+тактом (stand+alone style pin).14.11. Что мы узналиВ этой главе было показано, что диаграммы деятельности можно использовать для моделирования множества различных процессов.
Мыузнали следующее:• Диаграммы деятельности – это ОО блоксхемы:• они используются для моделирования всех типов процессов;• диаграммы деятельности можно создать для любого элементамодели для описания его поведения;• хорошая диаграмма деятельности описывает один конкретныйаспект поведения системы;• в UML 2 диаграммы деятельности имеют семантику технологиисетей Петри.• Деятельности – это схемы, состоящие из узлов, соединенных ребрами.• Категории узлов:• узлы действия – элементарные единицы работы в рамках деятельности;14.11.
Что мы узнали••••335узлы управления – управляют потоком деятельности;объектные узлы – представляют объекты, используемые в деятельности.• Категории ребер:• потоки управления – представляют поток управления деятельности;• потоки объектов – представляют поток объектов деятельности.• Маркеры перемещаются по сети (network) и могут представлять:• поток управления;• объект;• некоторые данные.• Движение маркеров по ребрам от начального узла к целевому узлу зависит от:• постусловий начального узла;• сторожевых условий ребра;• предусловий целевого узла.• Деятельности могут иметь предусловия и постусловия.Узлы действия.• Выполняются при одновременном поступлении маркеров по всемвходным ребрам И удовлетворении всех предусловий.• После выполнения узлы действия предлагают маркеры одновре+менно на всех выходных ребрах, постусловия которых удовлетворены:• неявное ветвление.• Узел вызова действия:• инициирует деятельность – используется символ «грабли»;• инициирует поведение;• инициирует операцию.• Узел действия, посылающий сигнал (см.
раздел 15.6).• Узел действия, принимающий событие (см. раздел 15.6).• Узел действия, принимающий событие времени, выполняется,когда временное выражение становится истинным:• некоторое событие (например, конец финансового года);• конкретный момент времени (например, 11/03/1960);• временной интервал (например, ожидать 10 секунд).Узлы управления:• начальный узел показывает, где начинается поток при вызоведеятельности;• конечный узел деятельности заканчивает деятельность;336Глава 14.