Пулы
Пулы в BPMN
Автор: Олег Борознов, 24.02.2018
Пулы на диаграмме BPMN обозначают участников взаимодействия и изображаются прямоугольниками. В отличие от дорожек, пулы обычно выполняют жирной линией, как показано на рисунке ниже.
Название пула BPMN обычно располагается слева (при горизонтальной ориентации диаграммы) или сверху (при вертикальной ориентации диаграммы). Название отделяют от содержимого пула одинарной линией.
Если требуется изобразить пустой или свернутый пул BPMN, то в этом случае его название не отделяют линией.
Пул «ограничивает» процесс, иначе говоря, он выступает в роли контейнера для всех операций процесса. Потоки управления могут пересекать дорожки внутри пула, но не могут выходить за его границы. Связи между пулами BPMN отображаются потоками сообщений, которые могут пересекать его границы, но не могут соединять объекты внутри пула.
Моделирование с использованием пулов BPMN
В статье «Взаимодействие процессов» был рассмотрен пример процесса «Заказ и доставка пиццы». Теперь давайте рассмотрим этот же процесс с точки зрения службы доставки пиццы. Как показано на рисунке ниже, он будет выглядеть следующим образом: служба доставки получает заказ от клиента, повар готовит пиццу, затем курьер доставляет её клиенту и получает деньги за заказ. После этого процесс успешно завершается.
Чтобы показать взаимодействие между процессами заказа пиццы: процессом клиента и процессом службы доставки, можно смоделировать эту диаграмму с использованием пула и дорожек BPMN внутри, как показано на рисунке ниже.
В данном примере все задачи и события находятся в одном пуле. Это означает, что процесс завершится только тогда, когда будут завершены все потоки управления этого процесса.
Некоторые задачи при этом действительно взаимодействуют друг с другом. Например, «Выбрать пиццу» и «Заказать пиццу», а также «Доставить пиццу» и «Получить оплату». Эти пары действий выполняются одними и теми же субъектами, к тому же, действия в них следуют один за другим.
Однако, задачи «Приготовить пиццу» и «Съесть пиццу» - выполняются отдельными субъектами и никак не связаны друг с другом. Но в этом примере их невозможно разграничить визуально. Они так или иначе останутся связанными одним потоком операций BPMN.
Кроме того, событие - «Пицца доставлена» должно быть связано с задачей «Доставить пиццу», а не только с задачами «Заказать пиццу» и «Позвонить в службу доставки», как это обозначено на диаграмме. Таким образом, данная диаграмме некорректно отображает взаимодействие службы доставки с клиентом и искажает реальный смысл процесса.
Чтобы отразить взаимодействие между клиентом и службой доставки нужно использовать два отдельных пула, как показано на рисунке ниже. Оба процесса (процесс Клиента и процесс Службы доставки) будут иметь такие же наборы задач, как и ранее, но теперь они взаимодействуют друг с другом с помощью потоков сообщений BPMN. Такая диаграмма называется диаграммой взаимодействия. Она показывает взаимодействие между двумя независимыми процессами.
На этой диаграмме есть потоки сообщений, которые не пересекают границы смежных пулов BPMN. Такие потоки сообщений не влияют на поток управления смежного пула. Например, действие «Позвонить в службу доставки» позволяет получить информацию о заказе, либо ускорить его обработку, но он никак не влияет на задачи «Приготовить пиццу», «Доставить пиццу» и «Получить оплату». Для того, чтобы выполнить действие «Получить оплату», в процессе клиента должна быть функция «Оплатить пиццу», т.к. действие «Съесть пиццу» может наступить только после того, как пицца оплачена.
На следующей диаграмме эта ошибка исправлена и поток сообщений напрямую присоединен к дополнительно созданной задаче «Оплатить пиццу».
Свернутый пул BPMN
Часто при моделировании взаимодействий между процессами с помощью пулов, нам не известны все детали этих процессов. Например, мы знаем процессы нашей собственной компании, но процессы компаний-партнеров нам не известны. До тех пор, пока взаимодействие между двумя процессами четко определено, оно работает без сбоев. В нашем примере «Заказ и доставка пиццы», как клиенты мы предполагаем, что служба доставки:
- Примет заказ
- Доставит пиццу и получит оплату
- Готова принять претензию
Клиентов мало интересует внутренний процесс службы доставки. Возможно, она приготовит пиццу и затем доставит ее; возможно, она покупает пиццу в магазине и затем доставляет ее. Организация процесса службы доставки – это ее проблема. Цель клиента – получить пиццу. В таком случае, процессы службы доставки могут быть скрыты и отображены на диаграмме с помощью свернутого пула BPMN, как показано ниже.
Чтобы показать общую идею взаимодействия между процессами BPMN пул клиента также можно свернуть. Все взаимодействия между этими пулами будут отображены в виде потоков сообщений. Недостатком такой диаграммы является то, что не видна зависимость потоков сообщений от действий и событий внутри процессов. Например, не ясно, всегда ли служба доставки получает претензию от клиента или только при определенных условиях.
Хотите быстро освоить BPMN?
Пройдите обучение в нашем учебном центре! |