Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782), страница 62
Текст из файла (страница 62)
Они могуткратко и точно моделировать сложные процессы.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. Диаграммы деятельности••••конечный узел потока заканчивает конкретный поток деятельности;• узел решения – поток направляется по исходящему ребру, сторожевое условие которого истинно:• может иметь стереотип «decisionInput»;• узел слияния копирует входные маркеры в единственное исходящее ребро;• узел ветвления разделяет поток на несколько параллельных потоков;• узел объединения синхронизирует несколько параллельных потоков:• может иметь {описание объединения}.Разделы деятельности – высокоуровневая группировка взаимосвязанных действий.• Разделы формируют иерархию, корнем которой является измерение.Объектные узлы представляют экземпляры классификатора.• Входящие и исходящие ребра – потоки объектов – представляютдвижение объектов.• Исходящие ребра объектного узла конкурируют за каждый исходящий маркер.• Объектные узлы работают как буферы:• { upperBound = n }• { ordering = FIFO } XOR { ordering = LIFO };• по умолчанию применяется { ordering = FIFO };• могут иметь стереотип «selection».• Объектные узлы могут представлять объекты, находящиесяв определенном состоянии:• должны соответствовать конечным автоматам.• Параметры деятельности – это объектные узлы, входящие в илиисходящие из деятельности:• на диаграмме перекрывают рамку деятельности;• входящие параметры имеют один или более исходящих ребер, поступающих в деятельность;• исходящие параметры имеют один или более входящих ребер, поступающих из деятельности.Контакт – это объектный узел, представляющий один вход в иливыход из действия или деятельности.15Дополнительные аспектыдиаграмм деятельности15.1.
План главыВ этой главе рассматриваются дополнительные возможности диаграмм деятельности. Они вряд ли будут использоваться каждый день,но могут быть очень полезны в определенных ситуациях моделирования. Разделы этой главы можно читать в любой последовательности.Можно вообще только просмотреть главу, чтобы получить общее представление, а затем обращаться к соответствующим разделам и в случаенеобходимости использовать ту или иную конкретную возможность.15.2.
РазъемыОсновное правило: применения разъемов необходимо избегать. Однако если диаграмма очень сложна и не поддается упрощению, разъемыможно использовать для разрыва длинных ребер, которые трудно проследить, и для «распутывания» пересекающихся ребер. Это можетупростить диаграммы деятельности и повысить их удобочитаемость.Синтаксис разъема представлен на рис.
15.2. В заданной деятельностикаждому исходящему разъему должен соответствовать единственныйвходящий разъем с такой же меткой. Метки – это идентификаторыразъема, никакой другой семантики у них нет. Обычно в их качествевыступают буквы алфавита.Разъемы могут разрывать длинные ребра, которые трудно проследить,и «распутывать» пересекающиеся ребра.15.10. Наборы параметров15.11. Узел «centralBuffer»15.12.
Диаграммы обзора взаимодействийучимся задаватьпараметры действийучимся использовать узлыв качестве буферовучимся моделировать потокмежду взаимодействиямиРис. 15.1. План главы15.9. Групповая рассылка и групповой прием15.8. Дополнительные возможностипотоков объектов15.7. Потоковая передачаизучаем групповую рассылкуи групповой приемучимся преобразовывать объектыизучаем потоковуюпередачу объектов15.6. Отправка сигналов и прием событий15.5. Узлы расширенияучимся обрабатыватьколлекции объектовизучаем сигналы и события15.4. Обработка исключений15.8.2. Стереотип«selection»15.8.3. Стереотип«transformation»учимся выбирать объекты15.8.1. Входные эффектыи выходные эффектыизучаем дополнительныевозможности потоков объектовизучаем эффекты действия15.3.
Области с прерываемым выполнением действий15.2. Разъемыучимся добавлять обработчикиисключений в узлыучимся прерывать деятельностиучимся делать диаграммыдеятельности более аккуратными15.13. Что мы узнали338Глава 15. Дополнительные аспекты диаграмм деятельности15.3. Области с прерываемым выполнением действий339ДеятельностьДействие1AAисходящий разъемДействие2входящий разъемРис. 15.2.
Синтаксис разъема15.3. Области с прерываемым выполнениемдействийОбласти с прерываемым выполнением действий – это области деятельности, прерываемые при прохождении маркера по прерывающемуребру. Когда область прерывается, все ее потоки немедленно прекращаются. Области с прерываемым выполнением действий полезны длямоделирования прерываний и асинхронных событий. Чаще всего онииспользуются при проектировании, но также могут быть полезны прианализе для представления процесса обработки асинхронных бизнессобытий.Области с прерываемым выполнением действий – это области деятельности, прерывающиеся при прохождении маркера по прерывающему ребру.На рис.