Шаг 160.
Унифицированный язык моделирования UML.
Параллельные потоки на диаграмме деятельности

    На этом шаге рассмотрим параллельные потоки на диаграмме деятельности в UML.

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

    В UML для описания разделения и соединения параллельных потоков управления применяют линейку синхронизации (synchronization bar). Она изображается в виде жирной горизонтальной или вертикальной линии.

    Рассмотрим в качестве примера параллельные потоки в системе, которая имитирует человеческую речь и жестикуляцию (рис. 1).


Рис.1. Параллельные потоки

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

    Как следует из рис. 1, соединение (joining) представляет синхронизацию нескольких параллельных потоков управления. Соединение может иметь ряд входящих потоков и один исходящий. Перед соединением потоков деятельности, которые ассоциированы с каждым из них, выполняются параллельно; в момент соединения потоки синхронизируются, то есть теперь каждый из них ждет, когда все остальные достигнут точки соединения, начиная с которой продолжит выполняться один поток управления.

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

    На следующем шаге рассмотрим "плавательные дорожки" на диаграммах деятельности.




Предыдущий шаг Содержание Следующий шаг