Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UML.doc
Скачиваний:
214
Добавлен:
10.05.2015
Размер:
2.54 Mб
Скачать

7.5. Разделение и слияние

Один из наиболее значимых недостатков обычных блок-схем или структурных схем алгоритмов связан с проблемой изображения параллельных ветвей отдельных вычислений. Поскольку распараллеливание вычислений существенно повышает общее быстродействие программных систем, необходимы графические примитивы для представления параллельных процессов. В языке UML для этой цели используется специальный символ для разделения и слияния параллельных вычислений или потоков управления. Таким символом является прямая черточка, аналогично обозначению перехода в формализме сетей Петри.

Как правило, такая черта изображается отрезком горизонтальной линии, толщина которой несколько шире основных линий диаграммы деятельности. При этом разделение (concurrent fork)имеет один входящий переход и несколько исходящих.Слияние (concurrent join), напротив, имеет несколько входящих переходов и один выходящий, как показано на рис. 7.5.

Рисунок 7.5. Изображение разделения и слияния параллельных потоков

Рассмотрим, например, параллельные потоки, возникающие при моделировании устройства, имитирующего человеческую речь и жестикуляцию, как показано на рис. 7.6.

Рисунок 7.6. Пример использования разделения и слияния потоков

Точка разделения соответствует расщеплению одного потока управления на два, выполняющихся параллельно. В этой точке может существовать ровно один входящий переход и два или более исходящих. Каждый исходящий переход представляет собой один независимый поток управления. После точки разделения деятельности, ассоциированные с каждым путем в графе, продолжают выполняться параллельно. С концептуальной точки зрения имеется в виду истинный параллелизм, то есть одновременное выполнение, но в реальной системе это может как выполняться (если система функционирует на нескольких узлах), так и не выполняться (если система размещена только на одном узле). В последнем случае имеет место последовательное выполнение с переключением между потоками, что дает лишь иллюзию истинного параллелизма.

Точка слияния представляет собой механизм син­хронизации нескольких параллельных потоков выполнения. В эту точку входят два ели более перехода, а выходит ровно один. Выше точки слияния деятельности, ас­социированные с приходящими в нее путями, выполняются параллельно. В точке слияния параллельные потоки синхронизируются, то есть каждый из них ждет, пока остальные достигнут этой точки, после чего выполнение продолжается в рамках одного потока.

Обратите внимание на необходимость поддержания баланса между точками разделения и слия­ния. Число потоков, исходящих из точки разделе­ния, должно быть равно числу потоков, приходящих в соответствую­щую ей точку слияния.

7.6 Дорожки

Диаграммы деятельности могут быть использованы не только для спецификации алгоритмов вычислений или потоков управления в программных системах. Не менее важная область их применения связана с моделированием бизнес-процессов. Действительно, деятельность любой компании также представляет собой не что иное, как совокупность отдельных действий, направленных на достижение требуемого результата. Однако применительно к бизнес-процессам желательно выполнение каждого действия ассоциировать с конкретным подразделением компании. В этом случае подразделение несет ответственность за реализацию отдельных действий, а сам бизнес-процесс представляется в виде переходов действий из одного подразделения к другому.

Для моделирования этих особенностей в языке UML используется специальная конструкция, получившее название дорожки (swimlanes). Такое название возникло в силу визуальной аналогии с плавательными дорожками в бассейне. Все состояния действия на диаграмме деятельности делятся на отдельные группы, которые отделяются друг от друга вертикальными линиями. Две соседние линии и образуют дорожку, а группа состояний между этими линиями выполняется отдельным подразделением (отделом, группой, отделением, филиалом) компании.

Названия подразделений явно указываются в верхней части дорожки. Пересекать линию дорожки могут только переходы, которые в этом случае обозначают выход или вход потока управления в соответствующее подразделение компании. Порядок следования дорожек не несет какой-либо семантической информации и определяется соображениями удобства.

В качестве примера рассмотрим фрагмент диаграммы деятельности торговой компании, приведенный на рис. 7.7. Подразделениями компании являются отдел обслуживания клиентов, отдел продаж и склад.

Рисунок 7.7. Фрагмент диаграммы деятельности торговой компании

Этим подразделениям будут соответствовать три дорожки на диаграмме деятельности, каждая из которых специфицирует зону ответственности подразделения. В данном случае диаграмма деятельности заключает в себе не только информацию о последовательности выполнения действий, но и о том, какое из подразделений компании должно выполнять закрепленное за ним действие.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]