Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование

Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 61

PDF-файл Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 61, который располагается в категории "книги и методические указания" в предмете "объектно-ориентированный анализ и проектирование" изседьмого семестра. Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 61 - СтудИзба 2019-09-18 СтудИзба

Описание файла

PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "книги и методические указания". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из седьмого семестра, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 61 страницы из PDF

Начальный и конечный узлыНачальный узел показывает, где начинается деятельность.Как уже говорилось в разделе 14.4, начальный узел (initial node) – этоточка, в которой начинается поток при вызове деятельности. У деятельности может быть более одного начального узла. В этом случае потоки запускаются во всех начальных узлах одновременно и выполняются параллельно.Конечный узел деятельности завершает все потоки деятельности.Деятельность также может быть инициирована действием принятия события (раздел 15.6) или узлом, являющимся параметром (раздел 14.9.3).Таким образом, начальные узлы не являются обязательными, поскольку есть другие способы запуска деятельности.Конечный узел потока завершает один из потоков деятельности.14.8.

Узлы управления325Конечный узел (final node) деятельности завершает все потоки деятельности. Конечных узлов деятельности может быть много, и тот, который будет активирован первым, завершит все остальные потоки и саму деятельность.Конечный узел потока просто останавливает один из потоков деятельности, остальные потоки продолжают выполнение.

Пример приведенна рис. 15.10.14.8.2. Узлы решения и слиянияУзел решения имеет одно входящее ребро и два и более альтернативных исходящих ребер. Маркер, поступающий по входящему ребру, будет предложен всем исходящим ребрам, но пройдет только по одномуиз них. Узел решения – это перекресток потоков, на котором маркердолжен выбрать только один путь.Узел решения передает маркер на то выходное ребро, для которого выполняется сторожевое условие.Каждое выходное ребро защищено сторожевым условием (guard con+dition), которое означает, что ребро примет маркер только в случае выполнения сторожевого условия.

Важно, чтобы сторожевые условиябыли гарантированно взаимоисключающими, т. е. чтобы в любой момент времени истинным могло быть только одно из них. В противномслучае согласно спецификации UML 2 поведение узла решения формально является неопределенным!Для задания ребра, по которому пройдет поток управления в случаеневыполнения всех сторожевых условий, может использоваться ключевое слово else.На рис.

14.14 показан простой пример узла решения. После действияПолучить корреспонденцию поток управления попадает в узел решения.Если выполняется условие [это мусор], почта отправляется в мусорнуюкорзину, в противном случае (else) почтовое сообщение открывается.Узел, отмеченный стереотипом «decisionInput» (входные данные решения), представляет условие принятия решения. Его результат используется сторожевыми условиями на исходящих ребрах. Пример фрагмента деятельности показан на рис. 14.15.

Здесь условие принятия решения сравнивает запрашиваемую для снятия сумму с балансом счета. Если баланс больше или равен запрашиваемой сумме, условиепринимает значение истина и поток переходит к действию Снять сумму.В противном случае регистрируется неплатежеспособность.На рис. 14.14 показан узел слияния (merge node). В узлах слияния сходятся два или более входящих ребра и выходит одно исходящее. Ониобъединяют все входящие потоки в один исходящий. Семантика слияния очень проста: все маркеры, предлагаемые на входящих ребрах,предлагаются на исходящем ребре. Маркеры и поток не изменяются.326Глава 14. Диаграммы деятельностиОбработка корреспонденцииключевое словоПолучитькорреспонденциюсторожевоеусловие[это мусор]elseузел решенияOpen mailBin mailузел слиянияРис.

14.14. Пример узла решения и узла слияния«decisionInput»balance >= amountЗапросить суммудля снятия со счета[истина][ложь]условие принятиярешенияСнять суммуЗарегистрироватьнеплатежеспособностьРис. 14.15. Фрагмент деятельности с узлом, помеченнымстереотипом «decisioninput»Узел слияния и непосредственно следующий за ним узел решения могут быть объединены в один символ, как показано на рис. 14.16. Однако мы не рекомендуем применять такую сокращенную нотацию, поскольку изображение узлов по отдельности придает диаграмме большую наглядность.14.8.3. Узлы ветвления и объединения – параллелизмУзел ветвления разделяет поток на несколько параллельных потоков.Параллельные потоки деятельности можно создать путем разделенияодного потока с помощью узла ветвления. Хотя обычно параллелизмявляется решением, принимаемым во время проектирования, нередконеобходимо показать параллельные деятельности при моделированиибизнеспроцессов.

По этой причине мы будем часто использовать узлыветвления и объединения как при анализе, так и при проектировании.32714.8. Узлы управления[условие1][условие2][условие3]слияниерешениеРис. 14.16. Узел слияния и узел решения могут быть объединены в один символУзел ветвления имеет одно входящее и два или более исходящих ребер.Маркеры, поступающие по входящим ребрам, дублируются и предлагаются на всех исходящих ребрах одновременно. Тем самым единственный входящий поток разделяется на несколько параллельных исходящих потоков.

У каждого исходящего ребра может быть сторожевоеусловие, и маркер, как и в узлах решения, может передаваться по исходящему ребру только в случае выполнения сторожевого условия.Узел объединения синхронизирует и объединяет несколько входящихпотоков в единственный исходящий.В узле объединения несколько входящих ребер встречаются и объединяются в одно исходящее. Эти узлы синхронизируют потоки: маркерна их единственном исходящем ребре предлагается только после того,как поступили маркеры всех входящих потоков. Они осуществляютоперацию логического И над всеми своими входящими ребрами.На рис.

14.17 показан простой пример Процесс производства продукта, в котором используются узлы ветвления и объединения. В этом примере:Процесс производства продуктаветвлениеСпроектироватьновый продуктИзготовитьпродуктНайти рыноксбыта продуктаобъединениеПродатьпродуктРис. 14.17. Деятельность Процесс производства продукта включает узлыветвления и объединения328Глава 14. Диаграммы деятельности•••продукт сначала разрабатывается;поиск рынка сбыта и изготовление продукта осуществляются параллельно;продукт реализуется только после завершения обоих процессов –поиска рынка сбыта и изготовления.На рис. 14.17 деятельность Процесс производства продукта начинаетсяс действия Спроектировать новый продукт. После этого узел ветвления разделяет единый поток на два параллельных. В одном из этих потоков ведется поиск рынка сбыта продукта (Найти рынок сбыта продукта), в другом – продукт изготавливается (Изготовить продукт).

Узел объединениясинхронизирует эти два параллельных потока, поскольку ожидаетмаркер от каждого из параллельных действий. Получив маркер от каждого действия, он предлагает маркер на своем выходном ребре, и потокпереходит к действию Продать продукт.При моделировании узлов объединения важно гарантировать получение маркера всеми входными ребрами. Например, на рис. 14.17 узелобъединения никогда не смог бы получить подходящие маркеры дляактивации, если бы на исходящие потоки ветвления были наложенывзаимоисключающие сторожевые условия. Это привело бы к «зависанию» деятельности.14.9.

Объектные узлыОбъектные узлы показывают, что экземпляры классификатора доступны.Объектные узлы – это специальные узлы, показывающие, что экземпляры конкретного классификатора доступны в данной точке деятельности. Они обозначены именем классификатора и представляют егоэкземпляры или подклассы. Фрагмент деятельности на рис. 14.18 показывает объектный узел, представляющий экземпляры классификатора Order или подклассы Order.Потоки объектов представляют движение объектов в деятельности.Входящие и исходящие ребра объектных узлов называют потокамиобъектов (object flows).

Это особые типы потоков, представляющиеимя классификатораобъектный узелOrderпоток объектовРис. 14.18. Объектный узел32914.9. Объектные узлыПроцесс производства продуктаМестонахождениеНью!ЙоркПроектированиеЛондонМаркетингПроизводствопоток объектовобъектный узелСпроектироватьновый продуктProductSpecificationНайти рыноксбыта продуктаИзготовитьпродуктПродать продуктРис. 14.19. Деятельность Процесс производства продукта дополнена разделами,действием Спроектировать новый продукт и объектом ProductSpecificationдвижение объектов в деятельности. Сами объекты создаются и используются узлами действия.На рис.

14.19 показана деятельность Процесс производства продукта, впервые представленная на рис. 14.17. Она была дополнена: включеныразделы и действием Спроектировать новый продукт создается объект ProductSpecification (спецификация продукта), который используется действием Изготовить продукт для описания производственного процесса.Выходные ребра объектного узла конкурируют за каждый выходноймаркер.Когда объектный узел получает объектный маркер по одному из своихвходных ребер, он предлагает его всем выходным ребрам одновременно, и эти ребра конкурируют за этот маркер. Главное то, что маркервсего один – он не тиражируется на все ребра! Этот маркер получаетпоток, готовый первым принять его.14.9.1.

Семантика буфера объектного узлаОбъектные узлы имеют очень интересную семантику. Они действуюткак буферы – участки деятельности, где могут находиться объектныемаркеры в ожидании принятия другими узлами.Объектные узлы выступают в роли буферов.330Глава 14.

Диаграммы деятельностиOrderв этом объектном узле может хранитьсямаксимум 12 объектных маркеров{ upperBound = 12}{ordering = LIFO}объект, поступивший в буфер последним,первым предлагается на выходеРис. 14.20. Объектный узел с верхней границейПо умолчанию каждый объектный узел может удерживать бесконечное число объектных маркеров. Однако иногда необходимо ограничить размер буфера. Для этого задают верхнюю границу (upper bound)объектного узла. Она показывает максимальное число маркеров, которые могут удерживаться в узле в любой момент времени. Узел принимает объектные маркеры до тех пор, пока не заполнится. Пример объектного узла с заданной верхней границей приведен на рис. 14.20.Для объектных узлов можно задать два аспекта семантики буфера.•У объектных узлов есть порядок расположения (ordering) (рис.

14.20),определяющий поведение буфера. Применяемым по умолчанию порядком является FIFO (firstin, firstout – первым вошел, первымвышел). Это означает, что объект, первым поступивший в буфер,первым предлагается его выходным ребрам. Существует обратныйпорядок расположения – LIFO (lastin, firstout – последним вошел, первым вышел).•Объектные узлы могут обладать селективным поведением (selectionbehavior). Это закрепленное за узлом поведение, по которому объекты из входных потоков выбираются согласно некоторому критерию,определенному разработчиком модели. Критерий задается примечанием со стереотипом «selection» (выбор), как показано на рис.

Свежие статьи
Популярно сейчас