Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 63
Описание файла
PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 63 страницы из PDF
Диаграммы деятельности••••конечный узел потока заканчивает конкретный поток деятельности;• узел решения – поток направляется по исходящему ребру, сторожевое условие которого истинно:• может иметь стереотип «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. Области с прерываемым выполнениемдействийОбласти с прерываемым выполнением действий – это области деятельности, прерываемые при прохождении маркера по прерывающемуребру. Когда область прерывается, все ее потоки немедленно прекращаются. Области с прерываемым выполнением действий полезны длямоделирования прерываний и асинхронных событий. Чаще всего онииспользуются при проектировании, но также могут быть полезны прианализе для представления процесса обработки асинхронных бизнессобытий.Области с прерываемым выполнением действий – это области деятельности, прерывающиеся при прохождении маркера по прерывающему ребру.На рис.
15.3 показана простая деятельность Войти в систему, имеющаяобласть с прерываемым выполнением действий. Область обозначенаотрисованным пунктирной линией прямоугольником со скругленными углами, включающим действия Получить UserName, Получить Passwordи Отменить. Если принимающее событие действие Отменить получает событие Cancel в тот момент, когда управление находится в этой области,оно выводит маркер на прерывающее ребро и внезапно прекращает область.
Все действия – Получить UserName, Получить Password и Отменить –прерываются.Прерывающие ребра изображаются как зигзагообразные стрелки(рис. 15.3) или как обычные стрелки с пиктограммой зигзага над ними(рис. 15.4).340Глава 15. Дополнительные аспекты диаграмм деятельностиВойти в системуПолучитьUserNameUserName [Допустимый]АутентифицироватьUserПолучитьPasswordPassword [Допустимый]Отменитьпрерывающее реброобласть с прерываемымвыполнением действийРис.
15.3. Деятельность Войти в систему имеет область с прерываемымвыполнением действийРис. 15.4. Вариант отображения прерывающего ребра15.4. Обработка исключенийСовременные языки программирования часто обрабатывают ошибкипосредством механизма, называемого обработкой исключений (excep+tion handling). В случае выявления ошибки в защищенной части кодасоздается объект исключения. Поток управления переходит в обработчик исключения, который некоторым образом обрабатывает объектисключения.
В этом объекте исключения содержится информация обошибке, которая может использоваться обработчиком исключения.Обработчик исключения может прервать приложение или попытатьсявосстановить нормальное состояние. Часто информация объекта исключения сохраняется в журнале регистрации ошибок.Обработку исключений на диаграммах деятельности можно моделировать с помощью контактов исключений, защищенных узлов и обработчиков исключений.У защищенного узла есть обработчик исключений.На рис.
15.5 представлена обновленная деятельность Войти в систему.Теперь деятельность Аутентифицировать User выдает объект LogOnException (исключение при входе) при неудачной аутентификации пользователя. Этот объект принимается действием Зарегистрировать ошибку, ко34115.5. Узлы расширенияВойти в системуПолучитьUserNameПолучитьPasswordзащищенный узелUserName [Допустимый]АутентифицироватьUserобработчик исключенийконтакт исключенияLogOnExceptionЗарегистрироватьошибкуPassword [Допустимый]ОтменитьРис.
15.5. Деятельность Войти в систему с обработчиком исключенийторое записывает информацию об ошибке в журнал регистрации ошибок. Для того чтобы показать, что выходной контакт представляет собой объект исключения, его помечают небольшим равностороннимтреугольником (рис. 15.5). Узел Зарегистрировать ошибку выступает в роли обработчика исключений, генерируемых действием Аутентифицировать User. Если с узлом ассоциирован обработчик исключений, узел называют защищенным.Поскольку обработка исключений обычно является задачей проектирования, а не анализа, защищенные узлы чаще используются при проектировании. Однако иногда может быть полезным смоделировать защищенный узел уже на стадии анализа, если он имеет важную бизнессемантику.15.5.
Узлы расширенияУзлы расширения позволяют показать обработку коллекции объектовкак часть диаграммы деятельности, называемую областью расшире+ния (expansion region). Представление процесса обработки коллекцииможет быть довольно сложным и пространным, поэтому данная техника очень полезна как при анализе, так и при проектировании.Узел расширения – коллекция объектов, входящая в или выходящаяиз области расширения, исполняемой один раз для каждого объекта.Узел расширения – это объектный узел, который представляет коллекцию объектов, входящую в или выходящую из области расширения.Область расширения исполняется по одному разу для каждого входногоэлемента.
На рис. 15.6 показан пример области расширения. Она представлена в виде отрисованного пунктиром прямоугольника со скруг342Глава 15. Дополнительные аспекты диаграмм деятельностиПоставить оценки учащимсярежимiterativeОценить результаты экзаменаSet of Studentузел расширенияОценить учащегосяобласть расширенияSet of StudentРис. 15.6. Пример области расширенияленными углами и входящим и исходящим узлами расширения. Узелрасширения выглядит как контакт, но с тремя квадратными ячейками.Это указывает на поступление коллекции, а не одного объекта.На узлы расширения накладываются два ограничения.•Тип выходной коллекции должен соответствовать типу входнойколлекции.•Типы объектов входной и выходной коллекций должны быть одинаковыми.Эти ограничения означают, что области расширения не могут использоваться для преобразования входных объектов одного типа в выходные объекты другого типа.Количество выходных коллекций может не совпадать с количествомвходных, поэтому области расширения могут использоваться для объединения или разделения коллекций.У каждой области расширения есть режим, определяющий порядокобработки элементов входной коллекции.
Режим может быть следующим:•iterative (итеративный) – каждый элемент входной коллекции обрабатывается последовательно;•parallel (параллельный) – элементы входной коллекции обрабатываются параллельно;•stream (потоковый) – элементы входной коллекции обрабатываютсяв порядке поступления в узел.Режим всегда должен быть задан явно, потому что спецификация UMLне определяет применяемого по умолчанию режима.На рис.
15.6 область расширения принимает набор объектов Student(учащийся). Она обрабатывает каждый из этих объектов по очереди(режим = iterative) и выдает набор обработанных объектов Student. Два15.6. Отправка сигналов и прием событий343действия внутри области сначала определяют результаты экзаменаStudent и затем ставят ему оценку. В данном случае выходная коллекция объектов Student предлагается на выходном узле расширения только после того, как обработаны все объекты Student.