Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 59
Описание файла
PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 59 страницы из PDF
ДеятельностиДеятельности – это системы узлов (nodes), соединенных ребрами (edges).Существует три категории узлов:1. Узлы действия (action nodes) – представляют отдельные единицыработы, элементарные в рамках деятельности;2. Узлы управления (control nodes) – управляют потоком деятельности;3.
Объектные узлы (object nodes) – представляют объекты, используемые в деятельности.Ребра представляют потоки деятельности. Существует два типа ребер:1. Ребра потоков управления (control flows) – представляют потокуправления деятельности;Деятельности – это системы узлов, соединенных ребрами.31314.4. ДеятельностиПослать письмопредусловие: найти тему письмапостусловие: письмо отправлено по адресуначальный узелузел действия«localPrecondition»адрес известенНаписать письмореброАдресовать письмо«localPrecondition»письмо адресованопоток управленияОтправить письмоконечный узелдеятельностьРис.
14.2. Диаграмма деятельности бизнес+процесса Послать письмо2. Ребра потоков объектов (object flows) – представляют поток объектов деятельности.Все типы узлов и ребер будут подробно изучены в последующих разделах.Давайте рассмотрим пример. На рис. 14.2 показана простая диаграмма деятельности бизнеспроцесса Послать письмо. Обратите внимание,что деятельности могут иметь предусловия и постусловия, как и прецеденты. Предусловия – это условия, которые должны быть истинными, чтобы деятельность могла начаться, а постусловия – это условия,которые будут истинными по завершении деятельности.
Действиявнутри деятельности тоже могут иметь собственные локальные предусловия и постусловия, как показано на рис. 14.2.Деятельности обычно начинаются с одного узла управления, начального. Он обозначает начало исполнения при вызове деятельности.Один или более конечных узлов показывают места завершения деятельности.В примере, изображенном на рис.
14.2, деятельность начинается в начальном узле. Затем управление переходит вдоль ребра к узлу действия Написать письмо. Этот узел обозначает элементарную часть работыили поведения, поскольку содержит описываемую деятельность. Поток проходит через узлы Адресовать письмо, Отправить письмо и затемк конечному узлу, в котором деятельность завершается.Обычно диаграммы деятельности используются для моделированияпрецедента в виде последовательностей действий. На рис. 14.3 показан прецедент PaySalesTax (выплата налога с оборота) из главы 4.
Этотпрецедент может быть представлен в виде диаграммы деятельности,как показано на рис. 14.4.314Глава 14. Диаграммы деятельностиПрецедент: PaySalesTaxID: 1Краткое описание:Выплата налога с оборота в налоговое управление по окончанию налогового периода.Главные актеры:TimeВторостепенные актеры:T axAuthorityПредусловия:1. Конец налогового периода.Основной поток:1.
Прецедент начинается в конце налогового периода.2. Система определяет сумму налога с оборота, которую необходимо выплатить TaxAuthority.3. Система посылает электронный платеж в TaxAuthority.Постусловия:1. TaxAuthority получает соответствующую сумму налога с оборота.Альтернативные потоки:Нет.Рис. 14.3. Спецификация прецедента PaySalesTaxОбратите внимание, что диаграмма деятельности – это более компактная и графическая форма прецедента. Диаграмма деятельности представляет прецедент как два действия: Вычисление налога с оборота и Отправка электронного платежа.
Каждое из этих действий могло бы бытьпредставлено в виде отдельной диаграммы деятельности. Вероятно, таки произойдет при проектировании, когда понадобится показать способреализации этих действий. Актер и его взаимодействие с системой –это структурные элементы, поэтому их нет на этой диаграмме.Прецеденты представляют поведение системы как взаимодействие актеров и системы, тогда как диаграммы деятельности отображают егов виде последовательности действий. Они являются дополнительнымипредставлениями этого поведения.PaySalesTaxпредусловие: окончание налогового периодапостусловие: налоговое управление получает соответствующую сумму налога с оборотаВычисление налога с оборотаОтправка электронного платежаРис. 14.4.
Диаграмма деятельности прецедента PaySalesTax14.5. Семантика деятельности31514.5. Семантика деятельностиДиаграммы деятельности основаны на технологии сетей Петри.Семантика диаграмм деятельности, как следует из предыдущего изложения, интуитивно довольно проста. Данный раздел посвящен подробному описанию семантики деятельности.Диаграммы деятельности UML 2 основаны на технологиях сетей Петри. Сети Петри выходят за рамки нашей книги. Более подробную информацию о них можно найти по адресу www.daimi.au.dk/PetriNets/.Диаграммы деятельности моделируют поведение с помощью «игры»маркеров (token game).
Эта игра описывает поток маркеров, движущийся по сети узлов и ребер согласно определенным правилам. Маркеры на диаграммах деятельности UML могут представлять:• поток управления;• объект;• некоторые данные.Состояние системы в любой момент времени определяется расположением ее маркеров.В примере на рис. 14.2 маркер – это поток управления, посколькув рассматриваемом случае между узлами не происходит передачи объектов или данных.Маркеры перемещаются вдоль ребра (edge) от начального узла (sourcenode) к целевому узлу (target node). Перемещение маркера происходиттолько при выполнении всех необходимых условий.
Условия меняются в зависимости от типа узла. Для узлов, представленных на рис. 14.5(узлы действия), этими условиями являются:• постусловия начального узла;• сторожевые условия ребра;• предусловия целевого узла.Условия существуют не только для узлов действия, но и для узловуправления и объектных узлов. Узлы управления имеют особую семантику, которая управляет тем, как передаются маркеры от входныхребер к выходным. Например, начальный узел начинает деятельность,конечный узел (final node) завершает деятельность, а узел объединения будет предлагать маркер на своем единственном исходящем ребретолько в случае, если маркеры поступили на все его входные ребра.Объектные узлы представляют объекты, существующие в системе.
Узлы управления и объектные узлы подробно обсуждаются в разделах14.8 и 14.9 соответственно.Рассмотрим «игру» маркеров для деятельности, показанной на рис. 14.5.С началом выполнения деятельности в начальном узле стартует поток316Глава 14. Диаграммы деятельностипоток фокуса управленияПослать письмопредусловие: найти тему письмапостусловие: письмо отправлено по адресу«localPrecondition»адрес известенНаписать письмоАдресовать письмо«localPrecondition»письмо адресованоОтправить письмоРис. 14.5.
Диаграмма деятельности Послать письмомаркера управления. Ни на начальный узел, ни на его выходное ребро, ни на целевой узел не наложено никаких условий, поэтому маркеравтоматически проходит по выходному ребру к целевому узлу Написатьписьмо.
Это инициирует выполнение действия, определенного узломдействия Написать письмо. По завершении действия Написать письмо поток маркера управления переходит в узел действия Адресовать письмотогда и только тогда, когда удовлетворено его предусловие адрес известен. После выполнения постусловия письмо адресовано управление переходит от Адресовать письмо к Послать письмо. И наконец, поскольку условий, препятствующих выходу потока из Послать письмо, нет, потокуправления прибывает в конечное состояние и деятельность завершается.В этом простом примере поток управления проходит по всем узламдействия по очереди, обусловливая их выполнение.
Это основная семантика деятельности.Как уже упоминалось, состояние исполняющейся системы в любоймомент времени может быть представлено расположением ее маркеров. Например, когда маркер находится в узле Написать письмо, можносказать, что система находится в состоянии Написание письма. Однаконе каждое выполнение действия или передача маркера создает заметное изменение в состоянии системы с точки зрения ее конечных автоматов (глава 21). Тем не менее расположение маркеров обеспечиваетсвязь между диаграммами деятельности и диаграммами состояний,которые должны быть гарантированно согласованными для конкретного элемента модели.Хотя семантика деятельностей UML 2 описывается «игрой» маркеров, они едва ли когданибудь реализуются таким образом.
По сути,деятельность – это всего лишь описание, для которого возможно мно14.6. Разделы деятельности317жество реализаций. Например, на рис. 14.5 описывается простой бизнеспроцесс, а не программная система, и реализации этого процессавообще не используют передачу маркеров!14.6.
Разделы деятельностиКаждый раздел деятельности представляет высокоуровневую группировку взаимосвязанных действий.Чтобы облегчить чтение диаграмм деятельности, можно разбить деятельности на разделы с помощью вертикальных, горизонтальных иликривых линий. Каждый раздел деятельности – это группа взаимосвязанных действий с высоким уровнем вложенности.
Иногда разделыдеятельности называют плавательными дорожками (swimlanes). Разбиение на разделы – мощный метод. При правильном использованиион может существенно упростить понимание диаграмм деятельности.В UML 2 семантику разделов деятельности определяет разработчик модели. Разделы не имеют собственной семантики, поэтому могут использоваться для разбиения диаграмм деятельности любым удобным способом! Разделы деятельности обычно применяются для представления:• прецедентов;• классов;• компонентов;• организационных единиц (в бизнесмоделировании);• ролей (в моделировании рабочих потоков).Но этим не ограничиваются. Например, в проектных моделях распределенных систем разделы деятельности могут использоваться дажедля моделирования распределения процессов на физических машинах.У каждого множества разделов должно быть единственное измерение,описывающее его базовую семантику.
В рамках этого измерения разделы могут быть иерархично вложенными. На рис. 14.6 показана деятельность, имеющая иерархично вложенное множество разделов деятельности.Местонахождение – это измерение, и в рамках этого измерения существует иерархия разделов, как показано на рис. 14.7. Эта диаграмма моделирует бизнеспроцесс создания курса нашей партнерской компанииZuhlke Engineering AG. Многие из их курсов разрабатываются намив Лондоне.Часто разделы деятельности и параллельные потоки управления взаимосвязаны. Моделирование параллелизма на диаграммах деятельности подробно рассматривается в разделе 14.8.3. Например, обычноразные подразделения или организационные единицы работают параллельно, затем в некоторый момент происходит их синхронизация.318Глава 14. Диаграммы деятельностиимя измеренияСоздание курсаМестонахождениеЦюрихМаркетингЛондонПланированиеРазработкаПровести экономическоеобоснование курсаРазработать курсСпланировать курсраздел деятельностиПригласить преподавателейАрендовать помещенияПродать курсРис.