Введение в BPMN

Нотация BPMN

Нотация моделирования бизнес-процессов BPMN (Business Process Model and Notation) – это международный стандарт моделирования бизнес-процессов. Он является одним из важнейших компонентов для достижения согласованности между Бизнес-процессами и ИТ-системами.

Большинство современных компаний сегодня выбирают BPMN в качестве стандарта для моделирования своих процессов. Основные причины этого выбора:

  • Поддержка популярными программными продуктами для моделирования бизнес-процессов (Business Studio, ELMA, Bizagi и др.);
  • Оптимальный набор графических элементов, который позволяет детально описать любой процесс;
  • Возможность автоматизировать бизнес-процессы без необходимости программирования;
  • Уменьшение разрыва между моделями «Как есть» и «Как должно быть».

Как пользоваться данным руководством

Благодаря большому количеству примеров настоящее руководство по BPMN можно использовать как самоучитель для освоения нотации “с нуля”. Для этого рекомендуется читать все главы по порядку с самого начала. Также это руководство подходит в качестве справочника, в котором опытные специалисты могут найти ответ на вопрос, если что-то забыли.

Руководство по BPMN имеет следующие особенности:

Любую статью можно прокомментировать: задать вопрос или высказать пожелание по более подробному описанию отдельных моментов.

Все содержимое полностью соответствует последней версии спецификации нотации BPMN;

Статьи сфокусированы на нотации моделирования, без привязки к какому-либо конкретному программному продукту, что дает возможность применять полученные знания в любых программах, которые поддерживают моделирования в BPMN;

Диаграммы выполнены в едином стиле и в черно-белом цвете для удобства восприятия материала;

Мы постарались писать простым, понятным языком, чтобы любой специалист смог легко разобраться в теме;

Простая диаграмма в BPMN

Пример диаграммы

Для первоначального понимания нотации BPMN рассмотрим простую диаграмму процесса:

Простая диаграмма BPMN

Эта диаграмма показывает простой процесс, инициированный возникшим чувством голода. В результате возникновения этой потребности кто-то должен купить еду и приготовить еду. Затем кто-то эту еду съест и таким образом удовлетворит чувство голода. Нижем мы рассмотрим каждый элемент этой диаграммы подробнее.

Описание примера диаграммы BPMN

Стартовое событие (Возникло чувство голода)

Стартовое событие показывает, с какого события начинается процесс. Оно является как бы отправной точкой в процессе. В BPMN есть несколько видов стартовых событий, благодаря которым можно запускать процесс при наступлении различных условий, в определенное время, при получении сообщения, сигнала и т.д. Примеры стартовых событий:

Примеры стартовых событий BPMN

Действие (Купить продукты, Приготовить еду, Съесть еду)

Действие – это основа любого процесса, так как для достижения заданного результата процесса всегда необходимо что-то делать. Иногда действия BPMN называют «задачами» или «работами» – это тоже верно.

В BPMN действие может быть элементарным или составным. Составные действия сами являются процессами, поскольку содержат вложенные действия и другие процессы – так работает принцип декомпозиции. В нашем примере можно было бы декомпозировать действие «Приготовить еду» на более мелкие задачи: подготовить посуду и ингредиенты, выполнить все действия по рецепту, проверить готовность еды, подать еду на стол. Посмотрите, мы как будто «разворачиваем» подпроцесс «Приготовить еду» и показываем последовательность его подзадач:

Декомпозиция подпроцесса в BPMN

Промежуточное событие (Еда приготовлена)

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

Примеры промежуточные событий BPMN

Конечное событие (Чувство голода удовлетворено)

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

Примеры завершающих событий BPMN

Практический совет

Как именовать элементы BPMN?

При наименовании процессов и задач необходимо придерживаться формулы: “глагол (указывает на выполняемую работу) плюс существительное (указывает на объект выполняемой работы)”. Например, «Выдать карту», «Оказать услугу», «Продать товар».

Иногда в название можно добавить уточнение, позволяющее точнее характеризовать объект. Например, «Принять согласованную заявку», «Оказать услугу по заключению договора».

События относятся к тому, что уже произошло независимо от процесса или в результате процесса. Поэтому для наименования событий необходимо использовать формулу: “объект плюс глагол совершенного вида в прошедшем времени (отвечает на вопрос «что сделано?» или «что произошло?»)”. Например, «Поступила заявка», «Выполнено условие», «Истекло 15 минут».

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

Часто задаваемые вопросы

Обязательно ли моделировать диаграммы BPMN по горизонтали?

Что делать, если я предпочитаю моделировать их вертикально?

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

Пример вертикального оформления диаграммы:

Вертикальная диаграмма BPMN

Использование шлюзов в BPMN

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

Использование шлюзов в BPMN

Параллельный шлюз BPMN

Параллельный шлюз BPMN

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

Также на диаграмме использован второй параллельный шлюз BPMN – в самом конце процесса, перед задачей «Переместить товар в зону отгрузки». Этот шлюз, наоборот, объединяет потоки управления. Он ожидает завершения всех действий перед тем как выполнить последнюю задачу «Переместить товар в зону отгрузки». Такая логика работы «закрывающего» параллельного шлюза BPMN называется «синхронизация потоков управления», она позволяет дождаться выполнения всех предыдущих задач прежде чем начать выполнение следующей задачи.

Синхронизация потоков управления BPMN

Эксклюзивный шлюз BPMN

Эксклюзивный шлюз BPMN

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

Этот шлюз называется «Эксклюзивным», потому что процесс может пойти только по одной из двух ветвей. Доставка будет осуществляться обычной почтой, либо курьерской службой:

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

Неэксклюзивный шлюз BPMN

Неэксклюзивный шлюз BPMN

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

  • Если страховка не требуется, то «закрывающий» шлюз будет ожидать завершения только одной задачи: «Заполнить бланк отправления», поскольку эта задача должна выполняться всегда.
  • Если требуется страховка, то «закрывающий» шлюз будет ожидать завершения двух задач: «Заполнить бланк отправления» и «Выбрать страховку».

Такая логика работы пары неэксклюзивных шлюзов BPMN – «открывающего» и «закрывающего» – называется «динамическая синхронизация потоков управления».

Динамическая синхронизация потоков управления BPMN

Практический совет

Обращайте внимание на пулы

Обратите внимание, что в нашем примере использован только один пул – «Розничный продавец оборудования» и разные дорожки для сотрудников, участвующих в процессе. Это говорит нам об отсутствии автоматического назначения задач сотрудникам в ходе выполнения процесса, однако, предполагается, что они общаются друг с другом каким-то образом. Благодаря этому общению обеспечивается логика и последовательность выполнения всех шагов.

Пул и ролевые дорожки BPMN

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

Взаимодействие процессов

Пример взаимодействия процессов

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

Диаграмма взаимодействия процессов BPMN

Два взаимодействующих между собой пула изображены здесь чтобы показать потоки объектов (сообщений, документов, товаров, денег) между участниками процесса. Такой вид диаграмм называется «диаграмма взаимодействия BPMN» и позволяет отразить взаимодействие между различными отделами, командами, отдельными сотрудниками или даже программными системами.

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

Стартовое событие BPMN

Если посмотреть на диаграмму, то она начинается с того, что у клиента возникло желание съесть пиццу. Следовательно, он должен выбрать и заказать пиццу. После этого клиент ожидает, пока пицца будет доставлена.

Эксклюзивный шлюз по событиям BPMN

После действия «Заказать пиццу» расположен эксклюзивный шлюз по событиям, показывающий, что далее процесс пойдет по той ветви, событие по которой наступит раньше. Возможно два варианта:

  • пицца доставлена, как указано в промежуточном событии с типом «Получение сообщения» – «Пицца доставлена»,
  • пицца не доставлена в течение 60 минут (событие «Таймер»), в этом случае клиент звонит в службу доставки. Далее администратор обещает, что пицца будет доставлена в ближайшее время (действие «Успокоить клиента»), и клиенты снова ждут пиццу, снова спрашивая после следующих 60 минут и так далее.

Эксклюзивный шлюз по событиям

Рассмотрим процесс службы доставки. Он запускается по заказу клиента, как показано в стартовом событии «Пицца заказана», и поток сообщений идет от действия «Заказать пиццу» к этому событию. После выпечки пиццы, курьер доставит пиццу и получит оплату. Задача «Получение оплаты» включает в себя также предоставление квитанции клиенту.

Промежуточное событие BPMN с типом «Сообщение»

В данном примере объекты сообщений используются не только для информационных потоков, но и для физических объектов, таких как пицца и деньги. Это допустимо, потому здесь физические объекты действуют как информационные потоки: когда пицца доставлена клиенту, это распознается как наступление события «Пицца доставлена» в пуле клиента и инициирует функцию «Оплатить пиццу».

Промежуточное событие с типом Сообщение

Официальная документация BPMN

OMG - Object Management Group logo

Нотация BPMN

Нотация BPMN разработана компанией Business Process Management Initiative и в настоящее время поддерживается организацией Object Management Group (OMG), после слияния обеих организаций в 2005 году.

OMG регулярно актуализирует и обновляет спецификацию нотации BPMN. Последняя версия BPMN — 2.0 (2.0.2), предыдущая версия — 1.2.

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

Спецификации BPMN

Постеры BPMN

Обзор всех видов диаграмм BPMN

В BPMN существует 4 вида диаграмм:

Первые три вида диаграмм являются основными, а четвертый вид – «Диалог» – является дополнительным и появился лишь в BPMN 2.0. На практике чаще всего используют 2 вида диаграмм: диаграммы «Процесс» и «Взаимодействие». Рассмотрим назначение всех видов диаграмм:

Процесс (Process Diagram)

Описывает содержание и логику бизнес-процесса BPMN в виде потока задач, условий и событий. Это самый распространенный, часто применяемый вид диаграмм, он является основой нотации BPMN. Пример диаграммы «Процесс»:

Диаграмма процесса BPMN
Диаграмма Взаимодействия бизнес-процессов BPMN

Хореография (Choreography Diagram)

Иногда диаграммы “Взаимодействие” оказываются слишком сложными для восприятия и требуют более наглядного представления. В этом случае применяют диаграммы хореографии. Они описывают поток (последовательность) взаимодействий участников при выполнении бизнес-процессов BPMN. Пример диаграммы «Хореография»:

Диаграмма Хореография BPMN

Диалог (Conversation Diagram)

Является еще одним вариантом диаграммы для визуализации взаимодействий бизнес-процессов BPMN и их участников. Диаграмма “Диалог” описывает процессный ландшафт и взаимодействия верхнего уровня между вовлеченными сторонами. Пример диаграммы «Диалог»:

Диаграмма Диалог BPMN

Процесс

Диаграмма «Процесс» описывает содержание и логику бизнес-процесса в виде потока задач, условий и событий. Это самый распространенный, часто применяемый вид диаграмм, он является основой нотации BPMN.

Графические элементы диаграммы «Процесс»

Задачи BPMN – это элементарные (неделимые) работы, которые должны быть выполнены в рамках бизнес-процесса. Примеры задач:

Примеры задач BPMN разных видов

Поток управления BPMN

Подпроцесс BPMN

События BPMN

Шлюзы BPMN

Ролевые дорожки BPMN

Обозначение данных BPMN

Ассоциация BPMN для обозначения аннотаций Ассоциация BPMN для обозначения компенсации

Артефакты BPMN

Пример диаграммы «Процесс»

Пример диаграммы в нотации BPMN

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

Процесс начинается со стартового события «У клиента возникла проблема». Это событие запускает экземпляр бизнес-процесса BPMN при поступлении соответствующего запроса от клиента. Затем менеджер вручную выполняет действие «Получить описание проблемы». Для этого он задает клиенту уточняющие вопросы, чтобы получить максимально подробную информацию.

Далее менеджер по работе с клиентами принимает решение, может ли он решить возникшую проблему сам? Это принятие решения отражено на диаграмме при помощи эксклюзивного шлюза «Могу решить проблему сам?». Если менеджер может решить проблему сам, то он рассказывает клиенту решение проблемы (см. на диаграмме задачу «Объяснить решение») и процесс завершается. Если не может – то обращается с запросом в первую линию техподдержки (см. на диаграмме задачу «Спросить у 1 линии техподдержки»).

Далее процесс приостанавливается и ожидает ответ от техподдержки. Это отражено на диаграмме с помощью промежуточного события «Ответ получен». После получения ответа менеджер выполняет задачу «Объяснить решение» и процесс завершается.

Классификация диаграмм «Процесс»

Диаграммы вида «Процесс» принято подразделять на «исполняемые» (executable) и «не исполняемые» (non-executable).

Исполняемые модели BPMN процессов создаются в специальных информационных системах, которые автоматически назначают пользователям задачи в соответствии с логикой смоделированного бизнес-процесса и обеспечивают контроль исполнения этих задач. Такие системы называются BPM-системы (Business Process Management System, BPMS).

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

Пример исполняемой модели процессов

Модель исполняемого бизнес-процесса в BPMN

Не исполняемые модели процессов BPMN – это все остальные модели, кроме исполняемых. Они создаются с разными целями, поэтому их многообразие велико. Наиболее популярные цели создания не исполняемых моделей:

  • Формализация, регламентация и стандартизация деятельности
  • Описание требований при разработке и настройке информационных систем
  • Оптимизация бизнес-процессов: моделирование логики рабочих процессов «как есть» и «как надо»
  • Оптимизация организационной структуры и ролевой структуры
  • Имитационное моделирование бизнес-процессов и прогнозирование прироста эффективности от оптимизации

Пример не исполняемой модели бизнес-процессов

Модель не исполняемого бизнес-процесса в BPMN

Взаимодействие

Диаграмма «Взаимодействие» BPMN позволяет моделировать обмен данными и управляющими воздействиями между двумя или более бизнес-процессами. Для графического отображения такого взаимодействия используются потоки сообщений (message flow).

Графические элементы диаграммы «Взаимодействие»

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

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

Обозначение пула BPMN с дорожками Обозначение пула BPMN без дорожек Обозначение свернутого пула BPMN

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

Стрелки потоков сообщений между пулами BPMN

На данной диаграмме смоделирован бизнес-процесс BPMN обработки инцидентов в некоторой организации. Запросы поступают от клиентов Менеджеру по работе с клиентами. Бизнес-процессы Клиента являются внешними по отношению к рассматриваемой организации, поэтому неизвестны и представлены на диаграмме в виде пустого пула – своеобразного «черного ящика».

Диаграмма Взаимодействия в BPMN - пример

Рассмотрим бизнес-процесс BPMN Менеджера по работе с клиентами. Процесс инициируется стартовым событием, которое срабатывает при поступлении сообщения от Клиента. Далее Менеджер выполняет задачу «Получить описание проблемы». При этом он «отправляет» в сторону Клиента уточняющие вопросы, а в ответ получает более детальное описание проблемы. Затем Менеджер принимает решение, может ли он самостоятельно справиться с проблемой клиента? Если да, то он объясняет решение Клиенту и процесс завершается.

Если нет, то Менеджер отправляет запрос на первую линию техподдержки и его процесс приостанавливается, пока не будет получен ответ. Это показано на диаграмме в виде промежуточного события-обработчика «Ответ получен» с типом «Сообщение». В момент получения ответа от первой линии техподдержки указанное событие срабатывает, Менеджер передает полученное решение Клиенту и процесс Менеджера завершается.

Перейдем к рассмотрению процесса Агента 1 линии техподдержки. Его процесс начинается в том случае, если поступил запрос от Менеджера по работе с клиентами. Тогда Агент 1 линии пытается решить поступивший вопрос и принимает решение, потребуется ли ему помощь Агента 2 линии техподдержки? Если нет, то решение проблемы сообщается Менеджеру и процесс завершается. Если да, то Агент 1 линии отправляет запрос на вторую линию техподдержки и процесс приостанавливается до получения ответа. После получения ответа решение сообщается Менеджеру и процесс Агента 1 линии завершается.

Процесс Агента 2 линии техподдержки похож на процесс Агента 1 линии техподдержки. Если Агенту 2 линии требуется помощь Разработчика ПО, то он обращается к нему. Если проблема по-прежнему не решена, то она включается в план разработки на будущее, Агент 2 линии сообщает об этом Агенту 1 линии техподдержки. Агент 1 линии передает эту информацию Менеджеру, а тот в свою очередь – Клиенту.

Взаимодействия на данном примере хорошо можно проследить, если свернуть пулы всех участников и подписать стрелки потоков сообщений:

Диаграмма Взаимодействие со свернутыми пулами пример

Классификация диаграмм «Взаимодействие»

Диаграммы вида «Взаимодействие» принято классифицировать на внутренние (internal) и внешние (external):

Внутренние диаграммы BPMN (internal) – содержат только бизнес-процессы, происходящие внутри одной конкретной организации.

Внешние диаграммы BPMN (external) – содержат взаимодействия с внешними участниками и их бизнес-процессами. Пример, приведенный в данной статье выше, является внешней диаграммой, потому что на ней показано взаимодействие сотрудников организации с внешним участником – Клиентом.

Хореография

Диаграмма «Хореография» описывает последовательность взаимодействий участников при выполнении бизнес-процессов BPMN. Такие диаграммы строят для того, чтобы еще более наглядно показать взаимодействия между бизнес-процессами BPMN и их участниками. В данном руководстве диаграммам хореографии посвящен отдельный раздел.

Графические элементы диаграммы «Хореография»

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

Обозначение задачи хореографии Обозначение подпроцесса хореографии

Обозначение маркеров задач хореографии
Использование событий на диаграммах хореографии
Возможные шлюзы на диаграммах хореографии

Пример диаграммы “Хореография”

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

Весь процесс инициируется первым взаимодействием «У клиента возникла проблема». В этом случае информация передается только в одну сторону. На диаграмме взаимодействия данной задаче хореографии соответствует одноименное стартовое событие бизнес-процесса.

Пример диаграммы хореографии

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

Далее следует эксклюзивный шлюз «Могу решить проблему сам?», в соответствии с которым Менеджер по работе с клиентами принимает решение: обращаться ли в техподдержку за помощью в решении проблемы. Если возможно самостоятельное решение (вариант «да»), то инициируется взаимодействие «Объяснить решение» и процесс завершается. Если требуется обратиться в техподдержку (вариант «нет»), то активируется диалог Менеджера с Агентом 1 линии техподдержки.

Аналогично можно проследить и дальнейшую логику хореографии процесса. Обратите внимание: диаграмма скомпонована так, что хорошо видна попарная работа задач хореографии в связках «запрос – ответ на запрос».

Практический совет

Попарно компонуйте задачи хореографии в связках «запрос – ответ на запрос»

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

Суть попарной компоновки задач хореографии

Практический совет

Используйте для каждого участника одно постоянное положение во всех задачах хореографии – сверху или снизу

Посмотрите на пример ниже. Взаимодействуют два участника, причем, на каждом шаге инициатор меняется. Мы расположили во всех задачах хореографии Участника 1 сверху, а Участника 2 – снизу. Таким образом, последовательность взаимодействий каждого участника легко прочитывается слева направо.

Изображение участников хореографии

Диалог

Диаграмму «Диалог» BPMN можно рассматривать как упрощенный, верхнеуровневый вариант диаграммы взаимодействия BPMN. Строго говоря, диаграмма «Диалог» является особым представлением диаграммы взаимодействия, которое отражает процессный ландшафт и взаимодействия верхнего уровня между вовлеченными сторонами.

Графические элементы диаграммы «Диалог»

Информационное взаимодействие (Диалог) BPMN– это графический элемент, обозначающий цепочку логически взаимосвязанных обменов сообщениями. Изображается в виде шестиугольника с наименованием. Детализированные взаимодействия дополнительно обозначаются символом «+».

Изображение диалога и детализированного диалога

Вызов диалога BPMN предназначен для вызова глобальной (стандартной, многократно используемой) цепочки логически взаимосвязанных обменов сообщениями. Изображается также, как и элемент «Диалог», но жирными линиями.

Вызов диалога и детализированного диалога

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

Изображение связей диалогов

Пример диаграммы «Диалог»

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

Пример диаграммы Диалог

Как Вы можете видеть, диаграмма «Диалог» – это сильно упрощенный, верхнеуровневый вариант диаграммы «Взамиодействие», где все пулы в основном отображаются свернутыми, а серии обменов сообщениями – шестиугольниками.

Еще один пример диаграммы «Диалог»

Для лучшего понимания диаграммы «Диалог» рассмотрим еще один пример. Ниже представлена диаграмма взаимодействия BPMN Пациента и Клиники, состоящая из процесса Пациента и процесса Клиники. В ходе взаимодействия Пациент записывается на прием к врачу Клиники, доктор выполняет прием, выписывает рецепт на лекарства, а затем Пациент забирает эти лекарства по рецепту.

Диаграмма взаимодействия BPMN

Диаграмма «Диалог» для данного примера выглядит следующим образом:

Простая диаграмма диалог BPMN

Вся логическая цепочка взаимодействий между Пациентом и Клиникой «свернулась» в одно информационное взаимодействие (в один диалог) «Осуществление приема в клинике».

Оркестровка

Для отображения исполнителей (субъектов) процесса BPMN используются элементы: пул и дорожка. Чтобы понять суть оркестровки нужно сначала познакомиться с этими понятиями.

Дорожки и пулы BPMN

Поток управления BPMNпредставляет собой траекторию, по которой в данный момент времени исполняется отдельная операция процесса. На диаграмме ниже поток управления определяет, что Федор сможет приступить к выполнению своей задачи только после того, как Роман выполнит свою задачу:

Траектория потока управления BPMN
Неправильный поток управления с дополнительными задачами

Дополнительные операции по передаче объектов (результатов) задач между исполнителями являются излишними. Отображать их на диаграмме не имеет смысла.

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

Правильная диаграмма взаимодействия BPMN

Получилась достаточно сложная диаграмма. Такой подход не рекомендуется использовать при моделировании простых процессов, т.к он приводит к излишнему усложнению. Однако, эта диаграмма отображает основной принцип взаимодействия субъектов в BPMN. Несмотря на то, что дорожки BPMN похожи на дорожки других нотаций, они имеют особый смысл: они обозначают последовательность выполнения действий (поток управления) внутри процесса. Это и есть оркестровка.

Использование дорожек без пулов

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

Пулы

Обозначение пулов

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

Название пула BPMN обычно располагается слева (при горизонтальной ориентации диаграммы) или сверху (при вертикальной ориентации диаграммы). Название отделяют от содержимого пула одинарной линией.

Обозначение отдельного пула BPMN

Если требуется изобразить пустой или свернутый пул BPMN, то в этом случае его название не отделяют линией.

Обозначение свернутого пула BPMN

Пул «ограничивает» процесс, иначе говоря, он выступает в роли контейнера для всех операций процесса. Потоки управления могут пересекать дорожки внутри пула, но не могут выходить за его границы. Связи между пулами BPMN отображаются потоками сообщений, которые могут пересекать его границы, но не могут соединять объекты внутри пула.

Моделирование с использованием пулов BPMN

В статье «Взаимодействие процессов» был рассмотрен пример процесса «Заказ и доставка пиццы». Теперь давайте рассмотрим этот же процесс с точки зрения службы доставки пиццы. Как показано на рисунке ниже, он будет выглядеть следующим образом: служба доставки получает заказ от клиента, повар готовит пиццу, затем курьер доставляет её клиенту и получает деньги за заказ. После этого процесс успешно завершается.

Пул BPMN с ролевыми дорожками

Чтобы показать взаимодействие между процессами заказа пиццы: процессом клиента и процессом службы доставки, можно смоделировать эту диаграмму с использованием пула и дорожек BPMN внутри, как показано на рисунке ниже.

Неправильное использование пула и дорожек BPMN

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

Некоторые задачи при этом действительно взаимодействуют друг с другом. Например, «Выбрать пиццу» и «Заказать пиццу», а также «Доставить пиццу» и «Получить оплату». Эти пары действий выполняются одними и теми же субъектами, к тому же, действия в них следуют один за другим.

Однако, задачи «Приготовить пиццу» и «Съесть пиццу» – выполняются отдельными субъектами и никак не связаны друг с другом. Но в этом примере их невозможно разграничить визуально. Они так или иначе останутся связанными одним потоком операций BPMN.

Кроме того, событие – «Пицца доставлена» должно быть связано с задачей «Доставить пиццу», а не только с задачами «Заказать пиццу» и «Позвонить в службу доставки», как это обозначено на диаграмме. Таким образом, данная диаграмме некорректно отображает взаимодействие службы доставки с клиентом и искажает реальный смысл процесса.

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

Диаграмма взаимодействия пулов BPMN

На этой диаграмме есть потоки сообщений, которые не пересекают границы смежных пулов BPMN. Такие потоки сообщений не влияют на поток управления смежного пула. Например, действие «Позвонить в службу доставки» позволяет получить информацию о заказе, либо ускорить его обработку, но он никак не влияет на задачи «Приготовить пиццу», «Доставить пиццу» и «Получить оплату». Для того, чтобы выполнить действие «Получить оплату», в процессе клиента должна быть функция «Оплатить пиццу», т.к. действие «Съесть пиццу» может наступить только после того, как пицца оплачена.

На следующей диаграмме эта ошибка исправлена и поток сообщений напрямую присоединен к дополнительно созданной задаче «Оплатить пиццу».

Правильная диаграмма взаимодействия задач между пулами BPMN

Свернутый пул BPMN

Часто при моделировании взаимодействий между процессами с помощью пулов, нам не известны все детали этих процессов. Например, мы знаем процессы нашей собственной компании, но процессы компаний-партнеров нам не известны. До тех пор, пока взаимодействие между двумя процессами четко определено, оно работает без сбоев. В нашем примере «Заказ и доставка пиццы», как клиенты мы предполагаем, что служба доставки:

  • Примет заказ
  • Доставит пиццу и получит оплату
  • Готова принять претензию

Клиентов мало интересует внутренний процесс службы доставки. Возможно, она приготовит пиццу и затем доставит ее; возможно, она покупает пиццу в магазине и затем доставляет ее. Организация процесса службы доставки – это ее проблема. Цель клиента – получить пиццу. В таком случае, процессы службы доставки могут быть скрыты и отображены на диаграмме с помощью свернутого пула BPMN, как показано ниже.

Диаграмма взаимодействия BPMN со свернутым пулом

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

Диаграмма взаимодействия свернутых пулов BPMN

Дорожки

Обозначение дорожек

Дорожки на диаграмме BPMN обозначают исполнителей процесса и изображаются в виде прямоугольников. Как правило дорожки располагаются внутри пула и используются для распределения операций процесса между его участниками.

Пул и ролевые дорожки BPMN

Основные правила использования дорожек

  1. Дорожки BPMN использовать не обязательно. Например, когда все операции процесса выполняет один исполнитель. Вообще, наличие дорожек на диаграмме – это не обязательное требование BPMN.
  2. Дорожки BPMN можно декомпозировать. Это означает, что любая дорожка может включать в себя дочерние дорожки. Например, дорожка «Организация» может иметь дочерние дорожки – «Департаменты», а каждая дорожка «Департамент» может иметь дочерние дорожки «Отделы» и так далее.
  3. Дорожки BPMN значимы только для операций. Дорожки обозначают исполнителей операций, которые на ней расположены. Остальные элементы нотации BPMN – события, шлюзы, объекты и т.д. – могут быть помещены на любую дорожку.
  4. Дорожки BPMN могут быть как вертикальными, так и горизонтальными. Рекомендуется все же располагать дорожки BPMN горизонтально, и моделировать бизнес-процессы слева направо, поскольку так улучшается восприятие диаграммы и упрощается ее чтение.
  5. Наименование исполнителя внутри дорожки BPMN может располагаться в любом месте и иметь любое направление (ориентацию) текста.

Примеры использования дорожек

Диаграмма ниже показывает декомпозицию дорожек и распределение задач между исполнителями.

Декомпозиция ролевых дорожек BPMN

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

Выбор исполнителей по условиям шлюзов BPMN

Практический совет

Должна ли дорожка обозначать конкретного исполнителя – сотрудника или подразделение организации?

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

  • Конкретных сотрудников организации. Например, Бухгалтер.
  • Роли в организации, например, «Инициатор договора» или «Держатель бюджета».
  • Внешние по отношению к организации роли, например, «Клиент» или «Поставщик».
  • Отделы компании, например, «Отдел продаж» или «Бухгалтерия».
  • Коллегиальные органы компании, например, «Комитет по закупкам» или «Рабочая группа проекта».
  • Информационные системы или их модули, например, «CRM-система» или «Графическая подсистема».

Определенные сложности у начинающих бизнес-аналитиков вызывает вопрос, на какой дорожке разместить подпроцесс (т.е. «дочерний» процесс)? Действительно, диаграмма подпроцесса может содержать несколько дорожек, тогда на какой дорожке родительской диаграммы поместить этот процесс?

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

Если диаграмма процесса содержит только подпроцессы, то в этом случае дорожки и пулы на диаграмме можно совсем не отображать, как показано на рисунке ниже.

Моделирование без пулов и дорожек

Если на диаграмме, содержащей подпроцессы, все-таки необходимо изобразить исполнителя, то используется артефакт «Группа», который более подробно рассмотрен в статье Артефакты.

Часто задаваемые вопросы

Обязательно ли моделировать диаграммы BPMN по горизонтали? Что делать, если я предпочитаю моделировать их вертикально?

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

Пример вертикального оформления диаграммы:

Вертикальная диаграмма BPMN

Действия

Действия (задачи, активности, работы) в BPMN

Основа любого бизнес-процесса BPMN – это последовательность действий. Каждое действие может быть элементарным (отдельная задача) или составным (подпроцесс).

Обозначение потока управления стрелкой

Обозначение потока управления стрелкой

Правила моделирования действий в BPMN

  1. Действие может иметь любое количество входящих и исходящих потоков управления. Приведенные ниже изображения могут встречаться на диаграммах и не являются ошибками. Можно выделить три варианта:
    • Множественные входы BPMN. В этом случае активация любого из входов приведет к выполнению действия. Рекомендуется с осторожностью использовать множественные входы, чтобы избежать дублирования выполнения действий.
    • Множественные выходы BPMN. В этом случае после выполнения действия одновременно активируются все исходящие потоки управления. Это полный аналог параллельного шлюза, он описан в данной статье ниже.
    • Множественные входы и выходы BPMN. В этом случае активация любого из входов приведет к выполнению действия, после которого будут одновременно активированы все исходящие потоки управления. Такая конфигурация сложна для чтения и применять ее нужно с осторожностью.
    Множественные входы и выходы BPMN
  2. Действие, не имеющее ни одного входящего потока управления может быть изображено на диаграмме в виде подпроцесса. Такой подход часто используют при моделировании процессного ландшафта верхнеуровневой карты бизнес-процессов. Посмотрите на пример такой карты, спроектированной в соответствии с требованиями BPMN.

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

    Завершение бизнес-процесса BPMN
  4. Если на диаграмме используются пулы и / или дорожки, то каждое из имеющихся на диаграмме действий должно лежать в пределах какого-либо пула и / или дорожки. Следует избегать размещения действий на линиях, ограничивающих пулы и дорожки, так как это снижает удобство чтения диаграммы и может привести к неправильному пониманию процесса.

    Варианты размещения задач BPMN относительно пулов и дорожек

Типы задач

Что такое тип задачи в BPMN

Задача BPMN изображается на диаграмме процесса в виде прямоугольника с закругленными углами и обозначает элементарное действие, выполняемое участником процесса.

Обозначение задачи BPMN

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

Типы задач и примеры использования

Тип задачи BPMN определяет природу действия, которое будет выполнено. В BPMN существуют следующие типы задач:

Обозначение абстрактной задачи BPMN

Задача без определенного типа называется абстрактной. Абстрактные задачи используют, когда тип задачи очевиден из контекста и его можно не указывать. Например, в бизнес-процессе, который выполняется полностью вручную, все задачи имеют тип «ручное выполнение» и это очевидно.

Использование абстрактных задач BPMN

Также абстрактные задачи используют для первичного «чернового» моделирования логики бизнес-процесса.

Обозначение задачи Получение сообщения BPMNЗадача «Получение сообщения» ожидает поступление сообщения от другого участника или процесса. Задача считается выполненной, если сообщение получено хотя бы один раз. Такая задача приостанавливает выполнение процесса до тех пор, пока не будет получено сообщение.
Альтернативой данной задаче является промежуточное событие-обработчик с типом «Сообщение»:Промежуточное событие обработчик Получение сообщения BPMN

Пример 1: с задачей «Получение сообщения»

Использование задачи BPMN с типом Получение сообщения

Пример 2: с промежуточным событием-обработчиком «Сообщение»

Использование события-обработчика Получение сообщения
Обозначение задачи Отправка сообщенияСуть задачи – отправка сообщения другому участнику или процессу. Задача считается выполненной сразу по факту отправки сообщения. Такая задача не приостанавливает выполнение процесса, и выполняется моментально.
Альтернативной такой задаче является промежуточное событие-инициатор с типом «Сообщение»:Обозначение задачи BPMN

Пример 1: с задачей «Отправка сообщения»

Диаграмма с задачей Отправка сообщения

Пример 2: с промежуточным событием-инициатором «Сообщение»

Диаграмма с событием Отправка сообщения
Обозначение задачи сценария скрипта

Данная задача запускает сценарий (т.е. последовательность действий) или программный код, который выполняется автоматически.

«Задача-сценарий» всегда выполняется той информационной системой, которая управляет всем бизнес-процессом: запускает и завершает экземпляры процессов, назначает задачи пользователям и т.д. Это может быть корпоративный портал, BPM-система, система документооборота, система управления задачами или модуль исполняемых бизнес-процессов, встроенный в корпоративную информационную систему.

Пример применения задач-сценариев:

Диаграмма BPMN с задачами сценарий скрипт
Обозначение сервисной задачи BPMN

Сервисная задача выполняется автоматически (без участия человека) произвольной информационной системой, веб-сервисом, машиной или оборудованием.

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

Пример применения сервисных задач:

Диаграмма с сервисными задачами BPMN
Обозначение выполнения бизнес-правила

Эта задача содержит правила и соответствующие им действия, которые должны быть выполнены при выполнении правила. Суть такой задачи похожа на «Задачу-сценарий», но есть отличия.

  • «Задача-сценарий» содержит одно или несколько действий, причем их все необходимо выполнить для завершения задачи.
  • «Бизнес-правило» содержит различные наборы действий, причем выполняется только тот набор, который соответствует определенному условию.

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

Обозначение ручной задачи BPMN

Ручная задача выполняется человеком, без применения каких-либо автоматизированных решений и систем. Например: «Перенести груз из точки А в точку Б», «Визуально проверить отсутствие дефектов», «Налить стакан воды» и т.д.

Пример применения ручных операций:

Диаграмма процесса с ручными задачами BPMN
Обозначение задачи пользователя BPMN

Пользовательская задача выполняется человеком – пользователем произвольного сервиса, программного продукта (информационной системы), либо автоматизированного решения. При выполнении таких задач обычно требуется ввод данных, создание записей в информационных системах, выгрузка отчетов, манипуляции с объектами на экране и т.д.

Пример применения пользовательских задач:

Диаграмма с задачами пользователя BPMN

Маркеры задач

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

Маркер цикла BPMN

Маркер цикла BPMN отображается маленькой загнутой стрелкой в нижней части задачи, как показано на рисунке ниже:

Задача с маркером цикла BPMN

Он используется, чтобы показать на диаграмме задачу, которая будет повторяться, пока не будет выполнено определенное условие, либо это условие, наоборот, не исчезнет. Пример использования циклической задачи BPMN приведен на диаграмме ниже. Задача «Приготовить еду» начнет выполняться только тогда, когда все гости согласятся с предложенным блюдом. Условие «Пока все гости не согласятся» указано с помощью текстовой аннотации к задаче «Предложить блюдо».

Диаграмма с циклом BPMN

Многоэкземплярный маркер BPMN

Многоэкземплярный маркер BPMN используется для того, чтобы показать, что несколько экземпляров данной задачи выполняются последовательно, либо параллельно. Он отображается в виде трех параллельных вертикальных линий, если задачи выполняются параллельно, либо в виде трех параллельных горизонтальных линий – если последовательно, как показано ниже:

Цикл BPMN с параллельным выполнением Цикл BPMN с последовательным выполнением

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

Диаграмма BPMN с многоэкземплярным циклом

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

Маркер компенсации BPMN

Маркер компенсации используется, когда необходим возврат к исходной точке процесса и отмены всех выполненных ранее действий. Он обозначается в виде двух треугольников, повернутых влево (как кнопка перемотки назад):

Задача с маркером компенсации BPMN

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

Пример 1 – Компенсация с циклом BPMN

Диаграмма BPMN с компенсацией и циклом

Пример 2 – Компенсация с многоэкземплярным событием BPMN

Диаграмма BPMN с компенсацией и многоэкземплярным событием

В первом примере компенсация используется с маркером цикла BPMN. При необходимости отменить путешествие задача «Отменить поездку» выполняется пока исполнитель не дозвонится в турагентство и не отменит ее.

Во втором примере компенсация использована вместе с многоэкземплярным маркером BPMN. После рассылки приглашений по электронной почте необходимо позвонить последовательно всем адресатам, чтобы отменить приглашения.

Стрелки

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

Виды стрелок в BPMN

Стрелка потока управления (потока операций) Поток управления (поток операций) BPMN. Обозначает последовательность выполнения действий. Действие, присоединенное к окончанию стрелки выполняется непосредственно после действия, присоединенного к началу стрелки.
Стрелка потока управления по умолчанию Поток управления BPMN по умолчанию. Определяет ту ветвь бизнес-процесса, которая выполняется, когда все условия ветвления не выполнены. Может использоваться как совместно с эксклюзивным шлюзом, так и без него.
Стрелка условного потока управления Условный поток управления BPMN. Содержит условие, которое определяет, будет активирован данный поток или нет. Не может использоваться со шлюзами.
Стрелка потока сообщений Поток сообщений BPMN. Используется для обозначения передачи сообщение и объектов данных между пулами бизнес-процесса. Не может использоваться для передачи сообщений и объектов внутри одного пула.
Стрелка ассоциация Стрелка-ассоциация BPMN (направленная ассоциация BPMN). Используется для обозначения передачи объектов данных между действиями бизнес-процесса внутри одного пула, а также для обозначения входов и выходов действий.

Правила использования стрелок в BPMN

  1. Стрелки на диаграмме BPMN могут быть только горизонтальными или вертикальными. Наклонные стрелки запрещены. При необходимости линии стрелок изламывают под прямым углом.
    Обозначение потока управления
  2. Стрелки BPMN нельзя объединять или разветвлять.
    Ветвление и слияние стрелок BPMN
  3. Пересечение стрелок BPMN рекомендуется обозначать дугой.
    Обозначение пересечений стрелок BPMN
  4. Рекомендуется избегать большого количества пересечений стрелок BPMN, так как это ухудшает читабельность диаграммы. Советы по снижению количества пересечений:
    • Предварительно продумайте размещение всех элементов на диаграмме, чтобы обеспечить минимум пересечений;
    • «Убирайте» большие сложные цепочки действий в подпроцессы;
    • Объединяйте объекты данных в комплекты объектов.

Контролируемый и неконтролируемый потоки управления

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

Контролируемый поток управления BPMN

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

Контролируемый поток управления BPMN

Неконтролируемый поток управления BPMN

Неконтролируемый поток управления BPMN – это поток управления, не зависящий от событий и не проходящий через шлюзы. Неконтролируемый поток управления может соединять два или более действий, причем, действия могут иметь один или несколько входящих (исходящих) потоков. Рассмотрим три типовые ситуации:

Последовательный поток управления BPMN

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

Последовательный поток управления BPMN

Передача управления от одного действия к другому происходит моментально, паузы между действиями нет. В нашем случае Действие 2 начинается сразу после завершения выполнения Действия 1.

Неуправляемое ветвление BPMN

Неуправляемое ветвление порождает два параллельных потока управления BPMN. Механизм ветвления здесь работает точно также, как при использовании параллельного шлюза. В нашем примере это означает, что выполнение Действия 2 и Действия 3 начнётся одновременно, сразу после завершения выполнения Действия 1.

Неуправляемое ветвление BPMN

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

Управляемое ветвление потока управления BPMN

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

Неуправляемое слияние потоков управления BPMN

В нашем примере, если Действие 1 и Действие 2 завершатся в разное время, то Действие 3 (и все последующие за ним действия!) будут выполнены дважды. Также стоит отметить, что неуправляемое слияние снижает «читабельность» диаграммы и может приводить к неоднозначному толкованию процесса. Вместо неуправляемого слияния рекомендуется использовать эксклюзивный шлюз:

Управляемое ветвление потока BPMN

Условный поток управления

Обозначение условных потоков

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

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

Стрелка потока управления по умолчанию

Условный поток управления BPMN содержит условие, которое определяет, будет активирован данный поток или нет. Этот поток не может использоваться со шлюзами. Он обозначается маленьким ромбом в начале стрелки соответствующего потока управления.

Стрелка условного потока управления

Варианты использования условных потоков

В качестве примера рассмотрим фрагмент диаграммы бизнес-процесса BPMN согласования договора. Суть в том, что договоры с ценой от 1 до 5 млн должны согласовываться по обычной схеме согласования, больше 5 млн – по усиленной схеме и меньше 1 млн – по упрощенной схеме.

В «классическом» виде (т.е. без использования условного потока и потока по умолчанию) мы используем на диаграмме эксклюзивный шлюз с тремя взаимоисключающими условиями, как показано ниже.

Ветвление процесса эксклюзивным шлюзом

Теперь отметим стрелку «От 1 до 5 млн» как поток по умолчанию. Это означает, что данный поток управления активируется, только если другие потоки не сработали. Следовательно, данную стрелку можно не подписывать.

Применение потока управления по умолчанию

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

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

Применение условных потоков и потока поумолчанию

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

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

Применение только условных потоков

Потоки сообщений и ассоциации

Обозначение потоков сообщений и ассоциаций

Потоки сообщений и ассоциации на диаграммах BPMN обозначаются соответственно штриховыми и пунктирными стрелками и используются для передачи информационных сообщений и объектов данных.

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

Стрелка потока сообщений

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

Стрелка ассоциация

Использование потоков сообщений

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

Использование потоков сообщений

Использование ассоциаций

Использование ассоциаций BPMN

Подпроцессы

Суть подпроцессов

Подпроцесс BPMN – это действие, которое может включать в себя: другие действия, шлюзы, события и потоки операций. Необходимо отличать подпроцесс от процесса в BPMN:

  • Процесс BPMN всегда запускается стартовым событием извне и заканчивается завершающим событием во внешней (по отношению к этому процессу) среде.
  • Подпроцесс BPMN запускается потоком управления в вышестоящем процессе и завершается передачей управления в этот родительский процесс.

BPMN не определяет какой уровень детализации должны иметь диаграммы. Каждый процесс или подпроцесс может содержать неограниченное количество задач и других подпроцессов. Бизнес-аналитик сам определяет уровень детализации в зависимости от целей моделирования.

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

Обозначение и моделирование подпроцессов

Подпроцесс BPMN, также как и задача, изображается в виде прямоугольника с закругленными углами. Единственное отличие – знак «плюс» в нижней части прямоугольника, который указывает на свернутую последовательность действий внутри подпроцесса. Такой подпроцесс называется свернутым.

Основной процесс и подпроцесс BPMN

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

  • Представление подпроцесса BPMN на отдельной диаграмме
    Некоторые инструменты позволяют отображать модели процессов на отдельных диаграммах. В этом случае щелчок мыши по знаку плюса на подпроцессе открывает диаграмму подпроцесса.
  • Разворачивание диаграммы подпроцесса BPMN
    Другие инструменты позволяют развернуть подпроцесс и увидеть все его элементы, а также свернуть их обратно – прямо на текущей диаграмме. Нотация BPMN предусматривает такую возможность, но ее поддерживает лишь малая часть инструментов для моделирования бизнес-процессов, представленных на рынке. На рисунке ниже приведен пример развернутого подпроцесса:
Обозначение развернутого подпроцесса BPMN

С одной стороны, использование развернутого подпроцесса является удобным, так как все его элементы отображаются в одном месте, и их можно отредактировать без необходимости открывать отдельную диаграмму. С другой стороны, при разворачивании подпроцесса смещаются все смежные элементы процесса. И если диаграмма большая, это может привести к «тормозам» программы для моделирования. Кроме того, диаграмма визуально станет менее читаемой. Обязательно учитывайте эти моменты при выборе инструмента для моделирования бизнес-процессов в нотации BPMN.

Выполнение подпроцессов

Ключевая особенность заключается в том, что поток управления родительского процесса не может пересекать границы подпроцесса. Следовательно, выполнение подпроцессов BPMN происходит по следующим принципам:

  • Родительский процесс имеет свой поток управления.
  • Подпроцесс запускается потоком управления родительского процесса.
  • Внутри подпроцесса создается отдельный поток управления, проходящий от его начала до конца. В это время поток управления родительского процесса ожидает завершения подпроцесса.
  • Когда подпроцесс завершится, управление автоматически передается в родительский процесс, и его выполнение продолжается дальше.
  • Когда подпроцесс завершится, управление автоматически передается в родительский процесс, и его выполнение продолжается дальше.

Событийный подпроцесс

Определение и обозначение событийного подпроцесса

Событийный подпроцесс BPMN – это подпроцесс, который может выполняться один раз или многократно, или не выполняться вовсе.
Событийный подпроцесс изображается на диаграмме прямоугольником с закругленными углами и границей, выполненной тонкой пунктирной линией.

Диаграмма событийного подпроцесса BPMN

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

Событийный подпроцесс BPMN может влиять на родительский процесс следующим образом:

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

Пример использования событийного подпроцесса

На диаграмме ниже приведен простой пример использования событийных подпроцессов BPMN:

Пример событийного подпроцесса BPMN

На ужин были приглашены несколько друзей. В подпроцессе «Приготовление ужина» необходимо выбрать блюда и приготовить их. Пока готовится ужин позвонил друг, который тоже хочет прийти в гости. Это событие не прерывает приготовление ужина, и друг включается в список гостей. Внезапно во время приготовления еды блюдо было испорчено. Возникает событие «Блюдо испорчено», которое прерывает процесс приготовления ужина и запускает подпроцесс «Заказ еды». После того, как еда заказана родительский процесс «Приготовление ужина» завершается и переходит к следующей задаче «Съесть ужин».

Подпроцесс Транзакция

Определение и обозначение подпроцесса “Транзакция”

Транзакция BPMN – это подпроцесс, для которого может быть задано несколько вариантов выхода:

    1. Успешное завершение – изображается в виде потока операций, выходящего из транзакции.

Транзакция изображается на диаграмме в виде прямоугольника с закругленными углами, выполненного двойной тонкой линией:

Обозначение подпроцесса транзакции BPMN

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

Пример подпроцесса “Транзакция”

На диаграмме ниже приведен пример подпроцесса «Транзакция» BPMN:

Пример подпроцесса транзакции BPMN

В качестве примера Транзакции приведен подпроцесс «Организация путешествия». Подпроцесс инициируется из родительского процесса и заключается в параллельном выполнении двух действий: бронирование авиабилета и бронирование отеля. При успешном выполнении обоих действий подпроцесс завершается успешно и родительский процесс переходит к задаче оплаты бронирования.

Если хотя бы одно из действий «Забронировать авиабилет» или «Забронировать отель» выполняется с ошибкой (например, ошибка системы бронирования на сайте), то подпроцесс «Транзакция» последовательно выполняет следующие действия:

  • Инициирует граничное прерывающее событие «Ошибка при бронировании». При этом события-компенсации не происходят и задачи-компенсации не выполняются.
  • Родительский процесс продолжает выполнение через задачу «Обратиться в службу поддержки клиентов».

Если на любом этапе бронирования потребовалась отмена бронирования (например, клиент пожелал отменить бронирование, то подпроцесс «Транзакция» BPMN последовательно выполняет следующие действия:

  • Инициирует все граничные события-компенсации и выполняет все задачи-компенсации. Это задачи «Отменить бронирование» и «Отправить уведомление об отмене брони».
  • Инициирует граничное прерывающее событие «Бронирования отменены». При этом родительский процесс продолжает выполнение через задачу «Отправить уведомление об отмене».

Использование граничных событий

Что такое граничное событие

Пример использования граничных событий

При наступлении событий типа «Сообщение» (как в рассмотренном примере), а также «Таймер», либо «Условие» подпроцесс прерывается родительским процессом, который реагирует на внешнее обстоятельство. Затем поток управления BPMN в родительском процессе запускается по альтернативной ветви.

Граничное прерывающее событие BPMN

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

Еще один пример использования граничных событий

Диаграмма процесса BPMN «Обработка заказа»:

Диаграмма процесса BPMN обработка заказа

Диаграмма подпроцесса BPMN «Закупка товара»:

Диаграмма подпроцесса Закупка товара BPMN

Рассмотрим диаграмму подпроцесса «Закупка товара». Этот подпроцесс может завершиться событием-ошибкой «Товар недоступен», которое запускает в родительском процессе «Обработка заказа» действие «Проинформировать клиента» о том, что товара нет в наличии.

Родительские процессы BPMN могут по-разному обрабатывать сообщения об ошибках. Чтобы не разочаровать клиента отсутствием товара, который он заказал, можно заранее предусмотреть удаление отсутствующего товара из каталога. Это проиллюстрировано на диаграмме ниже:

Диаграмма с граничным прерывающим событием Ошибка

Стартовое событие-сигнал «Достигнут минимальный уровень запаса» получает сигнал о том, что достигнут минимальный уровень запаса товаров и необходимо закупить товар. Благодаря такому процессу, при невозможности закупить товар, он удаляется из каталога до того, как клиент его закажет. Событие-сообщение похоже на событие-сигнал, но здесь не применимо, так как оно отправляет информацию участникам процесса, находящимся за рамками одного пула, а здесь показана передача информации между элементами процесса в одном пуле (событие «Достигнут минимальный уровень запаса» и подпроцесс «Закупка товара» находятся в одном пуле).

Принцип построения диаграмм, показанный на рисунках выше, можно использовать при создании процессного ландшафта BPMN (карты процессов).

Использование граничного события эскалации

Диаграмма с граничным прерывающим и непрерывающим событием

Диаграмма подпроцесса BPMN «Закупка товара»:

Диаграмма подпроцесса с прерывающим и непрерывающим событием

Действие Вызов

Что такое действие “Вызов”

Действие «Вызов» BPMN – это задача, которая вызывает глобальный процесс BPMN или глобальную задачу. Глобальный процесс или глобальная задача – это такой процесс или задача, которые вызываются из различных других процессов. В некоторых источниках можно встретить название «универсальный процесс» или «универсальная задача».

Обозначение действия “Вызов”

Действие «Вызов» BPMN изображается на диаграмме в виде прямоугольника с закругленными углами, но с границами выполненными жирной линией:
  • Если целью действия «Вызов» является обычный подпроцесс, то оно изображается на диаграмме, с маркером подпроцесса (знаком «+»):
    Обозначение вызова подпроцесса
  • Если целью действия «Вызов» является циклический подпроцесс, то оно содержит маркер соответствующего цикла. Например, вызов параллельного циклического подпроцесса выглядит так:
    Обозначение вызова циклического подпроцесса

Сравнение с обычными подпроцессами

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

Диаграмма BPMN с вызовом подпроцессов

Так, например, когда Ваша бухгалтерия хочет выставить счет-фактуру на ремонт, ей всегда необходимы следующие данные:

  • Адрес
  • Дата поставки
  • Описание товаров или услуг
  • Сумма счета-фактуры
  • Ожидаемая дата оплаты

Владельцы всех процессов, в которых предусмотрено выставление счета-фактуры (процесс обработки заказов, процесс ремонта и т.д.), должны предоставить эти данные. Учет будет нуждаться в данных в стандартном формате.

Это показывает, что BPMN требует сопоставления данных между вызывающими процессами и глобальными подпроцессами BPMN (Вы заметили, как часто эти странные технические вопросы соответствуют организационным потребностям?) BPMN просто заставляет нас формализовать многие вопросы, которые кажутся очевидными, или которые остались без внимания в процессе проектирования. Формализация – это лучший шанс сохранить целостность сложных бизнес-процессов в быстро меняющихся условиях.

Спонтанный подпроцесс

Определение и обозначение спонтанного подпроцесса

Спонтанный (Ad-Hoc) подпроцесс BPMN – это группа действий, взаимоотношения между которыми не установлены. Исполнители сами определяют последовательность и количество повторений этих действий, а также могут игнорировать выполнение действий.

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

Свернутый спонтанный Ad Hoc подпроцесс BPMNРазвернутый спонтанный Ad Hoc подпроцесс BPMN

Применение спонтанного подпроцесса

Пример спонтанного подпроцесса BPMN приведен на диаграмме ниже. Все действия внутри этого подпроцесса могут быть выполнены в любом порядке, либо пропущены.

Диаграмма спонтанного Ad Hoc подпроцесса BPMN

Можно подумать, что спонтанный подпроцесс BPMN противоречит принципам моделирования, которые подразумевают контроль процесса на всех его стадиях. Однако, для моделирования некоторых процессов нужно применять именно спонтанный (Ad-Hoc) подпроцесс BPMN. Это нужно делать в следующих случаях:

  1. Когда выполняемая процессом задача является творческой.
    Творческие задачи нельзя решать в строгой последовательности. Успех решения таких задач зависит от способностей исполнителя, причем, каждый исполнитель будет использовать собственный подход (порядок действий) для достижения результата.
  2. Когда последовательность выполнения действий в процессе безразлична.
    Бывают такие процессы, в которых последовательность действий безразлична для достижения результата. В этом случае исполнитель определяет порядок выполнения процесса на свое усмотрение. Например, при уборке квартиры безразлично, в каком порядке мы будем мыть посуду, пылесосить пол и вытирать пыль. В любом случае после выполнения этих действий квартира будет убрана и процесс завершится. Это похоже на выполнение задач по чеклисту.
  3. Когда нужно отразить фактическое состояние процесса.
    Иногда возникает необходимость смоделировать еще не «устоявшийся» в компании процесс, по которому, например, еще отсутствует регламент и понятная последовательность действий. Известны только задачи. Для этой цели можно использовать спонтанный (Ad-Hoc) подпроцесс BPMN.

Требования к спонтанным подпроцессам

Существуют требования по использованию элементов BPMN 2.0 в спонтанных (Ad-Hoc) подпроцессах:

Обязательные элементыНеобязательные элементыЗапрещенные элементы

Пример спонтанного подпроцесса

Ниже приведен пример диаграммы спонтанного (Ad-Hoc) подпроцесса BPMN с использованием необязательных элементов. Эти элементы накладывают дополнительные ограничения на подпроцесс. Например, задача «Написать текст» может быть выполнена только после получения объекта данных «Найденная информация». Кроме того, задача «Опубликовать статью» будет выполнена только после редактирования ее текста.

Пример спонтанного подпроцесса с объектами

Шлюзы

Определение и типы шлюзов

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

Практические советы по использованию шлюзов

Практический совет

Шлюз может иметь любое количество входящих или исходящих потоков управления, в зависимости от того «объединяющий» это шлюз или «разветвляющий».

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

Правила ветвление потоков с помощью шлюзов

Практический совет

Шлюз обязательно должен осуществлять ветвление или слияние потоков управления.

Недопустимы ситуации, когда количество входящих и исходящих потоков равно 1 или больше 1.

Ошибка ветвления при использовании шлюзов

Практический совет

При необходимости шлюзы можно соединять между собой в любом порядке: нет необходимости «искусственно» предусматривать между ними задачи или события.

Последовательность шлюзов BPMN

Эксклюзивный шлюз

Определение и обозначение эксклюзивного шлюза

Обозначение эксклюзивного шлюза BPMN

Пример использования эксклюзивного шлюза

На диаграмме ниже приведен пример использования эксклюзивного шлюза.

Диаграмма BPMN с эксклюзивным шлюзом

В этом примере условие задано вопросом «Какое блюдо выбрано?». В зависимости от ответа процесс может быть пройден по одному из трех альтернативных маршрутов. Второй эксклюзивный шлюз BPMN использован для объединения маршрутов в один. Независимо от того, какой из маршрутов будет пройден бизнес-процесс достигнет действия «Съесть еду».

Правила использования эксклюзивного шлюза BPMN

Практический совет

Перед шлюзом должна находиться задача, после которой необходимо принять определенное решение.

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

Правильное использование эксклюзивного шлюза BPMN Неправильное использование эксклюзивного шлюза BPMN

Практический совет

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

Ошибкой является отсутствие наименования у эксклюзивного шлюза BPMN (даже если кажется, что смысл шлюза очевиден), или неполное, неточное наименование.

Практический совет

К шлюзу должны присоединяться взаимоисключающие варианты решения.

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

Ошибка взаимоисключающих условий эксклюзивного шлюза

Практический совет

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

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

Практический совет

Не допускается одновременное использование на диаграмме шлюзов с маркером и без него. Все эксклюзивные шлюзы должны изображаться одинаково.

Параллельный шлюз

Определение и обозначение параллельного шлюза

Параллельный шлюз BPMN используется для ветвления потока управления, то есть, создания параллельных маршрутов, либо для объединения маршрутов. При этом условие ветвления/слияния маршрутов задавать не нужно. Графически параллельный шлюз BPMN отображается с маркером «+» внутри ромба.

Ветвление потока управления параллельным шлюзом BPMN Слияние потоков управления параллельным шлюзом BPMN

Пример использования параллельного шлюза

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

Диаграмма с эксклюзивными шлюзами BPMN

В этом процессе для каждого действия отображено время его выполнения. Общее время выполнения процесса составляет 48 минут если будет выбран борщ, либо 43 минуты если котлеты. Таким образом, минимальное время ожидания еды составляет 23 минуты. Очевидно, что цель этого процесса – получить салат и основное блюдо, чтобы как можно скорее удовлетворить чувство голода. Для сокращения времени на ожидание еды два действия в этом процессе можно выполнять параллельно: приготовление салата и основного блюда. Для этого на диаграмму процесса необходимо добавить параллельный шлюз BPMN, как показано ниже:

Диаграмма с параллельными шлюзами BPMN

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

Синхронизация потоков управления BPMN

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

Диаграмма с синхронизацией потоков управления

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

В этом случае мы создали множественный (двойной) поток управления, который может приводить к многократному исполнению одних и тех же задач. Здесь задача «Съесть еду» выполняется дважды, с задержкой в 5 минут. Поток управления рассинхронизировался.

Если бы мы, как и раньше, использовали для объединения потоков управления параллельный шлюз BPMN, то рассинхронизации бы не произошло. Это свойство параллельного шлюза: при объединении потоков операций он «ждет» выполнения всех активных ветвей, и только потом запускает дальнейшее выполнение процесса. Это свойство используется для синхронизации потоков, а параллельный шлюз BPMN в данном случае называют «синхронизирующим шлюзом» или «синхронизатором».

Неэксклюзивный шлюз

Определение и обозначение неэксклюзивного шлюза

Неэксклюзивный шлюз BPMN применяется для разделения потока управления на один или несколько альтернативных маршрутов, либо для объединения их в один маршрут. Графически неэксклюзивный шлюз BPMN изображается в виде ромба с маркером круга внутри.

Обозначение неэксклюзивного шлюза BPMN

Пример использования неэксклюзивного шлюза

Пример использования неэксклюзивного шлюза BPMN приведен на диаграмме ниже:

Диаграмма с неэксклюзивным шлюзом BPMN

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

  • Только салат
  • Только основное блюдо
  • Салат и основное блюдо

Динамическая синхронизация потоков управления BPMN

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

«Открывающий» (крайний левый) и «закрывающий» (крайний правый) неэксклюзивные шлюзы BPMN взаимодействуют друг с другом: «закрывающий» шлюз приостанавливает выполнение процесса до тех пор, когда будут выполнены все запущенные «открывающим» шлюзом потоки управления. Такое применение неэксклюзивного шлюза BPMN называется «динамическая синхронизация потоков управления».

Эксклюзивный событийный шлюз

Определение и обозначение эксклюзивного событийного шлюза

Обозначение эксклюзивного событийного шлюза BPMN

Правила использования эксклюзивного событийного шлюза

Пример использования эксклюзивного событийного шлюза

Эксклюзивный событийный шлюз BPMN с событиями Эксклюзивный событийный шлюз BPMN с задачами

Данные конфигурации описывают одинаковую ситуацию, но в первом случае использованы события, а во втором – событийные задачи. Обе диаграммы можно прочитать так: «процесс после событийного шлюза BPMN пойдет по тому пути, событие или событийная задача по которому наступит раньше». В приведенном примере возможно получение Сообщения 1, получение сообщения 2 и истечение интервала времени длительностью 3 дня. Процесс приостанавливается на событийном шлюзе BPMN и «ожидает» наступления любого события из перечисленных. Как только событие наступит, процесс продолжится дальше по соответствующему потоку.

Еще один пример использования эксклюзивного событийного шлюза

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

Диаграмма с эксклюзивным шлюзом по событиям

Эксклюзивный событийный шлюз с созданием нового экземпляра

Определение и обозначение эксклюзивного событийного шлюза с созданием нового экземпляра

Эксклюзивный событийный шлюз BPMN с созданием нового экземпляра (Оператор ИЛИ, событийный) используется для запуска новых экземпляров процесса при наступлении определенных событий. Исходящие потоки управления данного шлюза должны быть связаны только с событиями или задачами – обработчиками сообщений. Наступление каждого из последующих событий создает экземпляр процесса. Данный шлюз не может иметь входящих потоков управления.

Графически эксклюзивный событийный шлюз BPMN с созданием нового экземпляра изображается в виде ромба с маркером – триггером составного стартового события – внутри:

Обозначение эксклюзивного событийного шлюза с созданием нового экземпляра

Пример использования эксклюзивного событийного шлюза с созданием нового экземпляра

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

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

Каждому из перечисленных случаев на диаграмме соответствует событие-обработчик с определенным типом: «Сообщение» – для случая когда получена заявка на обучение сотрудников, «Условие» – для случая когда уволился квалифицированный сотрудник и, наконец, «Таймер», который ожидает наступления второго рабочего дня сентября. Событийный оператор ИЛИ позволяет отследить наступление любого указанных выше событий и запустить очередной новый экземпляр бизнес-процесса организации обучения. Сколько раз произойдут события, столько новых экземпляров бизнес-процесса будет запущено.

В нашем примере любое из трех событий запускает цепочку одинаковых задач: «Составить список сотрудников на обучение» и «Провести обучение». Однако, вполне допустима ситуация, при которой разные события запустят разные ветви процесса. Это иллюстрирует следующий пример:

Запуск разных ветвей процесса событийным шлюзом

Параллельный событийный шлюз с созданием нового экземпляра

Определение и обозначение параллельного событийного шлюза с созданием нового экземпляра

Параллельный событийный шлюз BPMN с созданием нового экземпляра (Оператор И, событийный) используется для запуска новых экземпляров процесса при наступлении определенного сочетания событий. Исходящие потоки управления данного шлюза должны быть связаны только с событиями или задачам – обработчиками сообщений. Наступление всех последующих событий создает один экземпляр процесса. Данный шлюз не может иметь входящих потоков управления.

Графически параллельный событийный шлюз BPMN с созданием нового экземпляра изображается в виде ромба с маркером – триггером параллельного составного стартового события – внутри:

Обозначение параллельного событийного шлюза с созданием нового экземпляра

Пример использования параллельного событийного шлюза с созданием нового экземпляра

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

  • когда количество часов консультаций больше нуля (то есть, проводились хоть какие-то консультации),
  • когда по этим часам консультаций получен лист учета рабочего времени (то есть, клиент согласовал эти часы и готов их оплачивать),
  • когда наступило 1 число очередного месяца, так как счета выставляются помесячно.
Диаграмма с параллельным событийным шлюзом с созданием нового экземпляра

Каждому из перечисленных условий на диаграмме соответствует событие-обработчик с определенным типом: «Сообщение» (Получен согласованный лист учета рабочего времени), «Условие» (Количество часов консультаций больше нуля) и, наконец, «Таймер», который отслеживает наступление 1 числа каждого месяца. Событийный оператор И позволяет отследить наступление этих трех и запустить очередной новый экземпляр бизнес-процесса выставления счетов. Сколько раз произойдут все три события, столько новых экземпляров бизнес-процесса будет запущено.

Описанные выше события могут происходить не одновременно. Параллельный событийный шлюз BPMN с созданием нового экземпляра работает так: он отслеживает все связанные события по мере их наступления, и, как только они все произойдут, активирует связанные с ними потоки управления.

В нашем примере наступление трех событий запускает единую цепочку задач: «Сформировать счет на оплату» и «Отправить счет на оплату клиенту». Однако, вполне допустима ситуация, при которой одновременно запустятся несколько параллельных цепочек задач. Это иллюстрирует следующий пример:

Запуск нескольких ветвей процесса параллельным событийным шлюзом с созданием нового экземпляра

Комплексный шлюз

Определение и обозначение комплексного шлюза

Комплексный шлюз BPMN (Сложный логический оператор) позволяет моделировать сложные условия ветвления и слияния, которые невозможно смоделировать другими видами шлюзов. Данный шлюз не рекомендуется использовать на диаграммах, поскольку он имеет нечеткую семантику.

Графически комплексный шлюз BPMN изображается в виде ромба с маркером «звездочкой» внутри:

Обозначение комплексного шлюза

Пример использования комплексного шлюза

В качестве примера применения комплексного шлюза BPMN рассмотрим бизнес-процесс постройки и запуска метрополитена. Первой задачей процесса является проектирование метро. Затем параллельно запускается постройка станций, в нашем случае – три станции. Движение в метро можно открывать, когда построено хотя бы 2 станции, нет смысла ждать постройки всех станций. Это условие отражено на диаграмме комплексным шлюзом.

Диаграмма с комплексным шлюзом BPMN

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

События

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

Классификация событий BPMN по местоположению в процессе

  1. Стартовые события BPMN

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

    Все стартовые события BPMN
  2. Промежуточные события BPMN

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

    Все промежуточные события BPMN
  3. Завершающие события BPMN

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

    Все завершающие события BPMN

Классификация событий BPMN по характеру поведения

  1. События-обработчики BPMN

    Они приостанавливают выполнение бизнес-процесса и ожидает наступления события (например, получение сообщения, сигнала, наступление определенного момента времени, соблюдение условия и т.д.). Все стартовые события и некоторые промежуточные являются событиями-обработчиками. Триггер внутри события изображается не закрашенным.

  2. События-инициаторы BPMN

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

Граничные события BPMN

События могут быть граничными. Граничные события BPMN – это промежуточные события-обработчики, которые прикрепляются к контуру (к границе) действия на диаграмме процесса. Граничные события BPMN обрабатывают события, происходящие при выполнении действия или подпроцесса, к границе которого они прикреплены. Таким образом, они могут прерывать подпроцесс (граничные прерывающие события) или активировать дополнительный поток управления, который выполняется одновременно с выполнением подпроцесса (граничные не прерывающие события). Ниже приведен пример диаграммы с граничным прерывающим событием BPMN:

Граничное прерывающее событие BPMN

Если при выполнении задачи 1 возникает событие 1, то эта задача прерывается и поток операций направляется к задаче 3. Процесс продолжается по новой ветке. Если событие 1 не возникает, то после выполнения задачи 1, выполняется задача 2 и так далее.

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

Граничное непрерывающее событие BPMN

Если при выполнении задачи 1 возникает событие 1, то эта задача не прерывается и поток операций процесса идет по двум маршрутам параллельно. Событие 1 может повторяться несколько раз, но только до момента завершения задачи 1. Если это событие не возникло, то процесс пойдет по стандартному маршруту – от задачи 1 к задаче 2 и т.д.

Сводная таблица событий BPMN 2.0

Таблица Все виды событий BPMN

Сообщение

Определение и виды событий с типом “Сообщение”

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

Все виды событий с типом Сообщение

Пример использования событий с типом “Сообщение”

Рассмотрим практический пример применения события BPMN с типом «Сообщение». На диаграмме изображен процесс, в ходе которого некий человек, проголодавшись, покупает и ест пиццу. После выполнения задачи «Заказать пиццу» бизнес-процесс приостанавливается до те пор, когда наступит событие «Пицца доставлена». Затем процесс продолжится дальше.

Диаграмма с событием Сообщение

Практические советы

Практический совет

События с типом «Сообщение» можно заменять на задачи с типом «Сообщение» и наоборот.

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

Замена событий Сообщение задачами Сообщение

В приведенном выше примере можно заменить задачу «Заказать пиццу» на событие-инициатор с типом «Сообщение».

Пример с событиями Сообщение вместо задач

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

Практический совет

События с типом «Сообщение» можно заменять на задачи с типом «Сообщение» и наоборот.

При наименовании процессов и задач необходимо придерживаться формулы: “глагол (указывает на выполняемую работу) плюс существительное (указывает на объект выполняемой работы)”. Например, «Выдать карту», «Оказать услугу», «Продать товар».

Иногда в название можно добавить уточнение, позволяющее точнее характеризовать объект. Например, «Принять согласованную заявку», «Оказать услугу по заключению договора».

События относятся к тому, что уже произошло независимо от процесса или в результате процесса. Поэтому для наименования событий необходимо использовать формулу: “объект плюс глагол совершенного вида в прошедшем времени (отвечает на вопрос «что сделано?» или «что произошло?»)”. Например, «Поступила заявка», «Выполнено условие», «Истекло 15 минут».

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

Граничное событие BPMN с типом «Сообщение»

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

Диаграмма с граничным событием Сообщение

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

Таймер

Определение и виды событий с типом “Таймер”

Событие BPMN с типом «Таймер» показывает ожидание процессом регулярного события, определенного момента времени или временного периода. На время ожидания текущий поток управления бизнес-процесса приостанавливается. Графически событие BPMN «Таймер» отображается в виде круга с триггером в виде часов внутри. Ниже приведены все возможные виды событий BPMN с типом «Таймер».

Все события с типом таймер

Событие BPMN с типом «Таймер» всегда является событием-обработчиком и может быть либо стартовым, либо промежуточным, т.к. время идет независимо от того, что происходит в процессе и мы никак не можем на него повлиять.

Примеры использования событий с типом “Таймер”

На диаграммах ниже показаны различные примеры использования событий BPMN с типом «Таймер»:

Использование события таймер время
Использование события таймер интервал времени
Использование события таймер интервал
Использование события таймер дата

Граничное событие BPMN с типом «Таймер»

Событие BPMN с типом «Таймер» может быть граничным прерывающим и граничным не прерывающим. Граничное прерывающее событие используется когда нужно показать максимально допустимое время на выполнение задачи. Например, если пицца не выбрана в течение 30 минут, то задача «Выбрать пиццу» прерывается и поток управления направляется к задаче «Приготовить макароны».

Граничное прерывающее событие таймер

Теперь рассмотрим пример граничного не прерывающего события BPMN с типом «Таймер». При выполнении задачи «Приготовить еду», событие «За 10 минут до завершения», не прерывая эту задачу, создает новый поток операций, идущий к задаче «Накрыть стол». Затем оба потока синхронизируются в одной точке и общий поток операций переходит к следующей задаче.

Граничное не прерывающее событие таймер

Эскалация

Определение и виды событий с типом “Эскалация”

Событие BPMN с типом «Эскалация» используется для безусловной передачи управления на уровень родительского бизнес-процесса относительно текущего, а также для обработки таких передач управления. Графически событие BPMN «Эскалация» отображается в виде круга с триггером стрелки, направленной вверх, внутри. Ниже приведены все возможные виды событий BPMN с типом «Эскалация».

События эскалация

Пример использования событий с типом “Эскалация”

Рассмотрим пример. На диаграмме показан развернутый подпроцесс «Формирование отчета». В этом подпроцессе, после выгрузки данных выполняется проверка, хватает ли их для построения отчета? Если да, то отчет сначала формируется, а потом отправляется заказчику. Если нет – то срабатывает завершающее событие BPMN с типом «Эскалация». Оно обрабатывается соответствующим граничным событием, и затем заказчик отчета уведомляется о невозможности создать отчет и процесс завершается.

Эскалация BPMN пример

Как видите, в данном случае событие-эскалация BPMN ведет себя почти также, как и событие-ошибка. Но между этими двумя типами событий есть разница.

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

Условие (условное событие)

Определение и виды условных событий

Событие BPMN с типом «Условие» используется для моделирования реакции бизнес-процесса на изменения условий. Условное событие BPMN всегда является обработчиком, т.е. оно может быть только стартовым или промежуточным. Событие с типом «Условие» нельзя использовать в качестве завершающего события. Ниже приведены все возможные виды событий BPMN с типом «Условие».

Условное событие - все типы

Пример использования условных событий

Рассмотрим пример процесса с использованием условных событий BPMN.

Условное событие - пример

При выполнении условия «Возникло желание съесть пиццу» поток операций процесса переходит к задаче «Вынуть пиццу из холодильника», а затем «Разогреть духовку». Только при выполнении условия «Температура в духовке 180 градусов» начнет выполняться задача «Поместить пиццу в духовку». При выполнении условия «Пицца готова» поток операций перейдет к задаче «Съесть пиццу».

Граничное событие BPMN с типом «Условие»

Условное событие BPMN может применяться в качестве граничного. В следующем примере граничное прерывающее событие с типом «Условие» останавливает выполнение задачи по разгрузке грузовика, если на складе закончилось место и разгружать уже некуда. В этом случае выполнение разгрузки останавливается и грузовик отправляется на запасной склад.

Граничное прерывающее событие условие - пример

Обратите внимание, что задача «Разгрузить грузовик» при срабатывании граничного события «На складе закончилось место» останавливается, но не отменяется. То есть, та часть товара, которая уже разгружена, остается на складе, а не поместившиеся остатки отправляются на запасной склад.

Граничное не прерывающее событие с типом «Условие» позволяет запустить альтернативную ветку процесса без прерывания текущей задачи или подпроцесса. На примере ниже показано, что если при выполнении проекта плановый бюджет превышен, то параллельно с продолжением работ по проекту заказчику отправляется уведомление о превышении бюджета.

Граничное не прерывающее событие условие - пример

Ссылка

Определение и виды событий с типом “Ссылка”

Событие BPMN «Ссылка» используется для связи потоков управления на разных частях или разных листах диаграммы процесса. Ссылка может быть только промежуточным событием-обработчиком или событием-инициатором. Графически такое событие отображается в виде круга с триггером в виде стрелки внутри. Ниже приведены все возможные виды событий BPMN с типом «Ссылка».

События Ссылка

Пример использования событий с типом “Ссылка”

Теперь приведем пример использования события BPMN «Ссылка». События «Ссылки» заменяют часть потока управления в процессе. Событие-инициатор «Ссылка» – это точка завершения задачи 1, а событие-обработчик «Ссылка» – точка начала задачи 2. Оба события обозначены, как парные, буквой «А».

События Ссылка - пример

Событие BPMN «Ссылка» может быть полезно в следующих случаях:

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

Ошибка

Определение и виды событий с типом “Ошибка”

Событие BPMN с типом «Ошибка» используется для моделирования возможных ошибок при выполнении процесса, а также для отображения последовательности действий по устранению этих ошибок. Графически событие BPMN «Ошибка» отображается в виде круга с триггером молнии внутри. Ниже приведены все возможные виды событий BPMN с типом «Ошибка».

События Ошибка

BPMN не приводит какой-либо классификации возможных ошибок. Бизнес-аналитик сам выбирает какая ошибка может возникнуть в проектируемом процессе. Событие «Ошибка» может быть стартовым, промежуточным и конечным.

Стартовое событие BPMN «Ошибка»

Стартовое событие BPMN «Ошибка» используется только для запуска событийного подпроцесса. Событийный подпроцесс, начинающийся с ошибки, всегда прерывает родительский процесс.

Рассмотрим пример. На диаграмме показан развернутый подпроцесс приготовления ужина, который состоит из двух шагов: «Купить продукты» и «Приготовить еду». Дополнительно здесь предусмотрен вариант, что делать, если продукты или готовое блюдо оказались испорчены – в этом случае нужно заказать еду в ресторане. Это реализовано с помощью событийного подпроцесса «Заказ еды», который прерывает родительский процесс «Приготовление ужина».

Событие Ошибка - стартовое

Если блюдо или продукты во время выполнения подпроцесса «Приготовление ужина» оказались испорчены, то срабатывает стартовое прерывающее событие BPMN «Ошибка» и запускается событийный подпроцесс заказа еды в ресторане.

Промежуточное и конечное событие BPMN «Ошибка»

  • Промежуточное событие BPMN «Ошибка» всегда является граничным-прерывающим. Это означает, что ошибка прерывает выполнение действия, в котором она произошла, и поток операций идет по другому маршруту.
  • Конечное событие BPMN «Ошибка» показывает, что в результате выполнения процесса произошла ошибка.

Рассмотрим пример. Развернутый подпроцесс на диаграмме ниже показывает, что приготовление ужина состоит из двух задач: «Купить продукты» и «Приготовить еду». Однако, в магазине могут отсутствовать все необходимые продукты. Эта ситуация обрабатывается граничным прерывающим событием с типом «Условие». При срабатывании данного события нужно вернуть все уже положенные в корзину продукты на место и перейти к завершающему событию, которое генерирует ошибку «Нет нужных продуктов». Это событие в свою очередь обрабатывается граничным прерывающим событием «Нет нужных продуктов».

Событие Ошибка - граничное и завершающее

Таким образом, если нужных продуктов в магазине не оказалось, то будет выполняться задача «Заказать еду в ресторане», и далее процесс пойдет как обычно.

Отмена

Определение и виды событий с типом “Отмена”

Событие BPMN с типом «Отмена» используется только в подпроцессах “Транзакция” для инициирования и обработки отмены транзакций. Графически событие BPMN «Отмена» отображается в виде круга с триггером косого креста внутри. Ниже приведены все возможные виды событий с типом «Отмена».

События Отмена

Пример использования событий с типом “Отмена”

Рассмотрим пример. На диаграмме показан подпроцесс-транзакция «Покупка авиабилетов», который выполняется на сайте компании по продаже билетов. Этот подпроцесс может завершаться одним из трех завершающих событий, среди которых есть завершающее событие BPMN с типом «Отмена» – «Бронирование отменено». Это завершающее событие обрабатывается соответствующим граничным событием с таким же названием. В случае срабатывания данных событий пользователь покидает сайт по продаже авиабилетов, поскольку необходимость в них пропала.

Событие Отмена - пример

Компенсация

Определение и виды событий с типом “Компенсация”

Событие BPMN «Компенсация» показывает начало выполнения компенсирующих действий (событие-обработчик) или инициирование компенсации в процессе (событие-инициатор). Сам термин «Компенсация» обозначает отмену одного или более действий процесса, предшествующих событию-компенсации. Графически такое событие обозначается кругом с триггером в виде двух треугольников, повернутых влево (как кнопка перемотки на проигрывателе). Ниже приведены все возможные виды событий BPMN с типом «Компенсация».

События Компенсация

Необходимость использования события BPMN с типом «Компенсация» связана с тем, что иногда нужно отменить выполнение некоторых задач в процессе. Типичные примеры таких задач:

  • Бронирование билетов
  • Аренда автомобиля
  • Пополнение кредитной карты
  • Заключение договора с поставщиком услуг
  • …и так далее

Пример использования событий с типом “Компенсация”

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

Пример диаграммы BPMN - без компенсации

Эта же ситуация может быть смоделирована с использованием события BPMN «Компенсация», как показано ниже:

Пример диаграммы BPMN - с компенсацией

Правила использования событий BPMN с типом «Компенсация»

  • Действия компенсации относятся к определенному действию в процессе, поэтому их лучше располагать в одном пуле, вместе с событием BPMN «Компенсация». Этим события «Компенсация» отличаются от событий «Сообщение», которые могут быть расположены, где угодно.
  • Событие BPMN «Компенсация» отличается от других граничных событий тем, что оно срабатывает только после успешного завершения действия, к которому оно прикреплено. Граничные события других типов могут возникнуть только пока действие остается активным и не завершено.
  • События BPMN «Компенсация» соединяются с задачами «Компенсация» с помощью связей-ассоциаций, а не потока операций. Такой тип связи подчеркивает, что компенсация выходит за рамки обычной последовательности действий в процессе. Выполнение компенсации является исключением в процессе.

Практический совет

Используйте событие «Компенсация»

События «Компенсация» позволяют сделать диаграммы сложных процессов более компактными и понятными. В сложных процессах обычно очень много задач, которые требуют компенсации. Мы рекомендуем использовать событие этого типа при моделировании сложных многоуровневых диаграмм.

Сигнал

Определение и виды событий с типом “Сигнал”

Событие BPMN «Сигнал» обозначает ожидание или отправку сигнала между процессами. Это событие похоже на событие с типом «Сообщение» по следующим признакам:

  • по типу расположения в процессе (может быть стартовым, промежуточным или конечным);
  • по типу влияния на процесс (может быть событием обработчиком или событием инициатором);
  • по типу прерывания действий в процессе (может быть граничным прерывающим или граничным не прерывающим).

Основное отличие события BPMN «Сигнал» от события «Сообщение» в том, что сообщение направлено конкретному получателю (электронный адрес определенного получателя, звонок на конкретный номер и т.п.). В свою очередь, событие BPMN «Сигнал» не имеет конкретного получателя и направлено на рассылку неопределенному количеству получателей в процессе. Его может получить любой участник процесса и среагировать на него. Сигнал относительно не ориентирован.

Графически событие BPMN «Сигнал» отображается на диаграмме в виде круга с триггером в виде треугольника внутри. Ниже приведены все возможные виды событий с типом «Сигнал».

События Сигнал

Пример использования событий с типом “Сигнал”

Рассмотрим пример на диаграмме ниже. Участник процесса увидел рекламу пиццы и купил ее. Реклама пиццы – это сигнал, направленный на неопределенное количество получателей. Затем возникло условное событие «Желание съесть пиццу» после чего участник процесса съедает пиццу. После того, как покупатель съел пиццу, он оставляет отзыв на сайте, где заказал пиццу. Процесс завершается событием «На сайте оставлен отзыв о пицце», которое также является сигналом для других пользователей этого сайта и для службы доставки пиццы об удовлетворенности клиента.

Пример диаграммы с событием Сигнал

Сравните это с похожим процессом, в котором используются события с типом «Сообщение». Обратите внимание, что сообщения имеют конкретных отправителя и получателя.

Пример диаграммы с событием Сообщение

Составное

Определение и виды составных событий

Составное событие BPMN обрабатывает или генерирует одно из множества заранее заданных событий. В случае использования события-обработчика текущая ветка потока управления приостанавливается. Графически такое событие отображается в виде круга с триггером в виде пятиугольника внутри. Ниже приведены все возможные виды событий BPMN с типом «Составное».

Составное событие

Пример использования составного события

Рассмотрим пример использования Составного события BPMN. В этом примере участник процесса покупает пиццу после того, как он увидел ее рекламу или ему ее посоветовал друг. После еды он оставляет отзыв на сайте или советует пиццу своему другу.

Пример составного события

Практический совет

Не рекомендуется использовать Составные события BPMN при моделировании бизнес-процессов.

Моделируя составные события, нужно всегда помнить с какой целью вы их применяете. Они полезны при «грубом» описании бизнес-процессов, но становятся бесполезными при детальном описании, особенно, если целью является дальнейшая автоматизация. Использование отдельно нескольких событий делает процесс более полным и понятным. Поэтому мы не рекомендуем использовать составные события. Ниже приведен пример процесса, рассмотренного выше, но с использованием отдельных событий:

Пример замены составного события

Параллельное составное

Определение и виды параллельных составных событий

Параллельное составное событие BPMN обрабатывает множество параллельных (то есть, происходящих совместно) событий. Оно было добавлено в BPMN 2.0 для дополнения составного события. Тогда как обычно составное событие имеет семантику «Исключающее ИЛИ», т.е. оно обрабатывает или генерирует одно из возможных событий, параллельное составное событие BPMN имеет семантику «И», т.е. оно обрабатывает все параллельные события.

В отличие от множественного события параллельное может быть только обработчиком. При использовании параллельного события поток операций в процессе приостанавливается до тех пор, пока не будут обработаны все параллельные события. Графически параллельное составное событие BPMN изображается в виде круга с символом «+» внутри. Ниже приведены все возможные вида событий с типом «Параллельное составное».

Параллельное составное событие

Пример использования параллельного составного события

Рассмотрим пример. Данный процесс начинается, когда выполнены одновременно два условия: наступило время 18:00 и все дела сделаны. В этом случае можно пойти домой и приготовить ужин.

Параллельное составное событие - пример

Практический совет

Не рекомендуется использовать параллельные составные события BPMN при моделировании бизнес-процессов.

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

Замена параллельного составного события на шлюз

Останов

Определение и обозначение события с типом “Останов”

Событие BPMN «Останов» вызывает немедленное завершение выполнения процесса, при этом все его активные потоки управления прерываются. Графически такое событие отображается в виде окружности с триггером в виде закрашенного круга внутри. Событие BPMN «Останов» может быть только конечным событием в процессе.

Событие Останов Терминатор

Пример использования события с типом “Останов”

Рассмотрим пример. Общее время выполнения процесса, изображенного на диаграмме – 55 минут. После выполнения задачи 1, задачи 2 и 3 выполняются одновременно. Выполнение задачи 2 занимает больше времени, чем выполнение задачи 3, поэтому она определяет время выполнения процесса. Поток операций процесса проходит через параллельный шлюз и разделяется на два параллельных маршрута. Первый маршрут остается в точке задачи 2 в течение 45 минут, второй – в точке задачи 3 в течение 30 минут. Таким образом, второй маршрут приходит в абстрактное завершающее событие Конец 2, на 15 минут раньше, чем первый маршрут приходит в абстрактное завершающее событие Конец 1. Поскольку доступных маршрутов процесса больше нет, процесс завершается через 55 минут.

Пример без события Останов

При таком параллельном выполнении задач часто возникают ситуации, когда после завершения одной задачи выполнение остальных уже не требуется. В таких случаях можно использовать событие BPMN «Останов», которое останавливает выполнение всех потоков операций процесса. Например:

Пример с событием Останов

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

Данные и артефакты

Назначение данных и артефактов

Данные BPMN и артефакты BPMN расширяют возможности нотации, позволяют бизнес-аналитикам создавать более гибкие, комфортные для визуального восприятия модели процессов.

Данные

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

Графические обозначения данных

Артефакты

Графические обозначения артефактов

Данные на диаграммах BPMN

Определение и обозначение объектов данных

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

Входные и выходные данные

Входные данные BPMN – это исходные информационные объекты, которые преобразуются при выполнении действия (задачи или подпроцесса) BPMN.

Выходные данные BPMN – это информационные объекты, которые являются результатом выполнения действий BPMN.

Объект данных

Объект данных BPMN – это информационный объект (документ, отчет, письмо и т.д.), который может обрабатываться или передаваться в ходе выполнения бизнес-процесса.

Коллекция объектов данных

Коллекция объектов данных BPMN – представляет собой группу объектов данных. Например, «Комплект отгрузочных документов» или «Пакет конструкторской документации».

Хранилище данных

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

Инициирующее и ответное сообщение

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

Ответное сообщение BPMN – служит для явного указания сообщения, которое отправляется в ответ на инициирующее сообщение.

Примеры моделирования данных BPMN

Входные и выходные данные

Рассмотрим фрагмент бизнес-процесса поставки оборудования клиенту. В ходе бизнес-процесса выполняется подпроцесс «Заключить договор», «Сформировать счет на оплату» и «Сформировать товарную накладную». Для каждого из этих действий процесса указаны входные и выходные объекты данных. Обратите внимание на 2 момента:

  1. Один и тот же объект может являться входом или выходом одновременно для нескольких действий бизнес-процесса;
  2. Один и тот же объект может быть выходом для одного действия и входом для другого действия бизнес-процесса.
Входные и выходные данных - пример

Обозначение передачи данных

На диаграмме ниже показан фрагмент бизнес-процесса подписания договора. Сначала договор подготавливается, затем исполнитель уведомляет контрагента о том, что договор готов, и в завершении подписывает договор. Как видно, объект данных BPMN «Договор» одновременно является выходом из задачи «Подготовить договор» и входом задачи «Подписать договор». Поэтому он прикреплен стрелками-ассоциациями к соответствующим задачам.

Объект данных в потоке объектов - пример

Если объект данных BPMN передается между двумя задачами, которые следуют непосредственно друг за другом, то его прикрепляют связью-ассоциацией к стрелке потока управления, как показано ниже. Здесь задача «Поместить договор в архив» следует непосредственно после задачи «Подписать договор».

Ассоциация с объектом данных

Коллекции объектов данных

Рассмотрим теперь фрагмент диаграммы BPMN, состоящий из одной задачи «Подготовить комплект проектных документов». В ходе выполнения этой задачи исполнитель получает из разных источников документы: Устав проекта, Бюджет проекта, План-график проекта, Приказ о старте проекта и объединяет их в единый комплект – «Комплект проектных документов». Здесь хорошо видно, из каких документов «составляется» итоговый комплект.

Коллекция объектов данных - пример

Хранилища данных

Моделирование хранилищ данных рассмотрим на примере бизнес-процесса выдачи пропуска в офисное здание. Исполнителем процесса является сотрудник службы охраны или бюро пропусков. Сначала он узнает у посетителя цель визита, затем проверяет и сканирует паспорт, потом выдает пропуск в здание, а паспортные данные и скан-копию паспорта публикует в базе данных.

Хранилища данных - пример

Обратите внимание на 2 способа изображения передачи данных в хранилище. «Скан-копия паспорта» показана в виде объекта данных BPMN, а «Номер пропуска» и «Паспортные данные» – в виде подписи к стрелке-ассоциации.

Инициирующие и ответные сообщения

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

Инициирующие и ответные сообщения - пример

Артефакты в BPMN

Назначение и виды артефактов

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

    Спецификация BPMN определяет следующие типы артефактов:
  • Ассоциация;
  • Группа;
  • Категория;
  • Текстовая аннотация.

Бизнес-аналитик при моделировании диаграмм может создавать и добавлять на диаграммы свои артефакты BPMN, но при этом нужно учитывать правила соединения артефактов с потоками последовательности в процессе.

Правила использования  артефактов BPMN на диаграмме:

  • Артефакты соединяются с потоками последовательностей на диаграмме с помощью связей ассоциации;
  • Артефакты не могут являться источниками, либо целями потока управления.

Ассоциация BPMN

Связь ассоциации BPMN используется для:

  • Для установления соответствия между текстовыми или графическими артефактами с элементами процесса;
  • Для отображения действия «Компенсация» на диаграмме.

Ассоциация BPMN изображается на диаграмме тонкой пунктирной линией. Для того, чтобы задать направление ассоциации используется стрелка. Стрелки у связей ассоциации могут отсутствовать. Ниже приведен пример применения ассоциаций BPMN и текстовых аннотацаий:

Ассоциация - примеры применения

Текстовая аннотация BPMN

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

Группа BPMN

Артефакт BPMN «Группа» используется для отображения группы элементов на диаграмме. Графически группа изображается в виде прямоугольника со скругленными углами, выполненного штрихпунктирной линией. Группа может пересекать границы пулов и дорожек. В примере ниже она показывает взаимосвязь между задачами двух разных процессов.

Артефакт Группа - пример

Группа обычно используется для выделения определенных областей в процессе, но никакого влияния на ход выполнения процесса она не оказывает.

Категория BPMN

Категории используются для анализа выполнения действий процесса. Например, для анализа стоимости или времени выполнения. Для отображения категории на диаграмме используется артефакт BPMN «Группа». Название группы – это и есть категория. Одна и та же категория на диаграмме может быть использована в нескольких группах. Разработчик модели может использовать другие способы отображения категорий. Например, выделение цветом.

Артефакт Категория - пример

Практические примеры

О практических примерах

В этом разделе собраны примеры моделирования в нотации BPMN и практические советы по решению типовых задач, которые обычно вызывают сложности у новичков. Раздел постоянно пополняется новыми статьями. Если у Вы не нашли ответ на свой вопрос – свяжитесь с нами. Мы рассмотрим Вашу задачу и возможно выпустим отдельную статью, посвященную ее решению!

Содержание раздела

Бизнес-правилаОписано правильное использование бизнес-правил, рассмотрены типовые ошибки
Зависимые запросыВ статье рассматривается, как правильно моделировать бизнес-процессы, в которых может быть несколько одинаковых запросов и при этом нельзя допускать их дублирования.
Принцип четырех глазДанный принцип описывает правила моделирования бизнес-процессов согласования любых документов.
Ежемесячное выставление счетовРешается задача моделирования бизнес-процесса, разные части которого должны происходить с разной частотой.
Запрос дополнительной информацииОписан типовой случай, когда для завершения задачи BPMN требуется получить (от другого человека или информационной системы) дополнительную информацию.
Обработка нескольких заказовРассматривается принцип «один ко многим», когда в рамках одного экземпляра процесса должно активироваться множество экземпляров подпроцессов.
Переназначение пользовательских задачДается ответ на вопросы: как динамически назначать исполнителей задач? Как проверять доступность исполнителя?
Двухэтапная эскалацияЧастая проблема: как наиболее компактно смоделировать два этапа принятия решений, в зависимости от наступающих событий? Решение – в статье.
Правила хорошего тонаЗдесь Вы найдете несколько универсальных рекомендаций, как сделать диаграммы BPMN более читабельными, комфортными для восприятия.

Бизнес-правила в BPMN

Постановка задачи

Предположим, мы хотим смоделировать процесс, в котором используются определенные бизнес-правила BPMN. Рассмотрим такую ситуацию на примере процесса «Выставление счета». Для того, чтобы выставить счет необходимо рассчитать скидку в зависимости от категории клиента и суммы его заказа.

Этот простой пример показывает, где можно применять бизнес-правила BPMN, а где нет.

Решение задачи

Бизнес-правило - пример

В этом примере наше внимание должно быть сфокусировано на потоке управления в процессе, который имеет две задачи: «Рассчитать скидку» и «Подготовить счет». Результат процесса – счет выставлен. Не имеет смысла отдельно моделировать расчет скидки с помощью диаграммы BPMN (см. пример ниже). Иначе для каждого правила, в том числе нового, необходимо будет моделировать все новые и новые задачи, т.е. наша диаграмма будет разрастаться. Также диаграмма будет каждый раз меняться при изменении правил. Поэтому необходимо различать процессы и бизнес-правила BPMN.

Бизнес-правила в BPMN не моделируются. Они обозначаются свернутым пулом, который соединен потоками объектов с задачей типа «Бизнес-правило». Само бизнес-правило описывается в произвольном формате: таблицей, формулами, программным кодом и т.д.

Неправильный способ решения

Неправильный способ описания бизнес-правила BPMN – в виде диаграммы BPMN:

Ошибочное описание бизнес-правила

Зависимые запросы

Постановка задачи

Предположим, что мы хотим смоделировать процесс BPMN, содержащий несколько одинаковых запросов, происходящих в ходе его выполнения. Рассмотрим простой пример процесса «Проверка кредитоспособности заемщика». В этом примере мы хотим исключить двойное проведение кредитной проверки по заемщику, если такая проверка была запущена ранее. Предположим, что мы выполняем проверку кредитоспособности заемщика и получили еще один запрос на проверку для того же заемщика. Эта задача может быть решена различными способами. Общим для всех моделируемых решений будет то, что перед проверкой кредитоспособности необходимо проверять ранее запущенные проверки, т.е. совпадающие (зависимые) запросы.

Решение с использованием события BPMN «Сигнал»

Зависимые запросы c событием Сигнал

Событие «Сигнал» является одним из наиболее простых способов моделирования взаимодействия BPMN между различными запросами. Недостаток сигнала в том, что он не имеет определенного получателя, а распространяется на все множество получателей. Таким образом, поток операций в процессе будет приостановлен до тех пор, пока сигнал не будет обработан.

Решение с использованием события BPMN «Сообщение»

Зависимые запросы с событием Сообщение

Это решение немного сложнее, чем первое, т.к. событие BPMN «Сообщение» всегда имеет конкретного получателя, которого нужно определить. Кроме того, необходимо предусмотреть альтернативный вариант завершения процесса, на случай, когда есть ожидающие запросы. Однако, это решение позволяет решить проблему, возникающую в случае использования события с типом «Сигнал».

Решение с использования события BPMN «Таймер» и цикла

Зависимые запросы с таймером и циклом

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

Принцип четырех глаз

Постановка задачи

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

Пример

Мы хотим смоделировать процесс утверждения BPMN запроса (например, запроса на оплату) в BPMN, для выполнения которого требуются утверждения от двух разных сотрудников. Механизм процесса должен гарантировать, что запрос будет одобрен только после его утверждения двумя людьми. Задачи по утверждению, выполняемые пользователями, также должны быть отображены на диаграмме. Эти задачи назначаются и выполняются с использованием инструмента постановки задач, например, на корпоративном портале.

Данный сценарий может применяться для различных процессов:

  • Утверждение оплаты
  • Утверждение счета
  • Утверждение договора
  • И так далее

Решение задачи

Диаграмма взаимодействия пулов

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

Другие варианты решения задачи

Моделирование утверждающих в виде свернутых пулов BPMN

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

Диаграмма взаимодействия со свернутыми пулами

Определение утверждающих с помощью сервисной задачи BPMN

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

Применение сервисной задачи - пример

Ежемесячное выставление счетов

Постановка задачи

Этот пример иллюстрирует общий принцип моделирования процессов BPMN, когда важно обратить внимание на структуру бизнес-процесса, а не только на его шаги.

Рассмотрим структурирование диаграмм в BPMN на примере процесса «Юридическая консультация». Адвокат предлагает юридические консультации своим клиентам. Клиент при необходимости обращается за консультацией. Адвокат предоставляет нужную информацию и включает затраченные на консультацию часы в счет клиента. В конце каждого месяца бухгалтер адвоката подсчитывает количество часов и готовит счет-фактуру для оплаты клиентом.

Решение задачи

Ежемесячное выставление счетов - пример

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

Неправильный способ моделирования

Ежемесячное выставление счетов - ошибка

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

Запрос дополнительной информации после выполнения задачи

Постановка задачи

Предположим, что мы хотим смоделировать процесс BPMN, в котором после выполнения пользовательской задачи необходимо предоставление дополнительной информации от другого пользователя (решение 1), или от информационной системы (решение 2). Задачи выполняются с использованием системы назначения задач, например, корпоративного портала.

Решение 1: запрос информации от другого пользователя

Взаимодействие пользователей BPMN

Решение 2: запрос информации от информационной системы

Автоматический запрос информации BPMN

Обработка нескольких заказов

Постановка задачи

Предположим, мы хотим смоделировать процесс BPMN компании, которая получает и обрабатывает заказы, поступающие из различных дистрибьюторских каналов. Одним из таких каналов является супермаркет. Заказы из супермаркета приходят в определенные промежутки времени в виде электронных бланков со списком товаров. Каждый поступивший заказ должен быть проверен и затем загружен в ERP систему.

Решение задачи

Обработка нескольких заказов - диаграмма BPMN

В этом примере показан общий принцип моделирования подобных сценариев. Иногда такой принцип называют «1 ко многим» (или «1-N»). Запуск одного заказа приводит к возникновению множества отдельных экземпляров подпроцесса в ERP-системе. Примером таких процессов могут быть многоэкземплярные или цикличные процессы BPMN, которые запускают другие процессы используя потоки сообщений.

Переназначение пользовательских задач

Постановка задачи

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

Решение 1: С использованием граничного прерывающего события с типом «Сообщение» и сервисной задачей

Назначение исполнителя задачи BPMN

В данном примере событие «Исполнитель недоступен» прерывает выполнение пользовательской задачи и поток операций возвращается в сервисную задачу «Назначить исполнителя», которая определяет нового исполнителя.

Решение 2: С использованием граничного прерывающего события с типом «Сообщение» и задачи «Бизнес-правило»

Определение исполнителя задачи BPMN

Этот пример аналогичен решению 1, но новый исполнитель определяется с помощью бизнес-правила, заданного механизмом процесса. Такой способ моделирования позволяет явно задать алгоритм определения и назначения исполнителя.

Решение 3: С использованием граничного прерывающего события с типом «Сообщение» и неявного переназначения

Неявное переназначение задачи BPMN

В данном случае механизм процесса сам определяет исполнителя. Использовать такое решение можно только в том случае, если пользовательская задача начинается с определения исполнителя.

Двухэтапная эскалация

Постановка задачи

Рассмотрим моделирование двухэтапной эскалации в BPMN на примере процесса «Заказ пиццы». Предположим, мы заказали пиццу и ожидаем ее доставку. Если в течение 30 минут пицца не доставлена мы звоним в службу доставки. Затем мы опять ожидаем доставку пиццы. Если она не доставлена в течение 20 минут, то мы отменяем заказ. Ниже приведены возможные решения этого сценария.

Решение 1. Использование двух событийных шлюзов

Двухэтапная эскалация BPMN

Преимущества этого решения

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

Недостатки этого решения

Событийный шлюз – это сложный для визуального восприятия элемент BPMN. Нужен опыт, чтобы понять его значение. Кроме того, использование двух шлюзов приводит к дублированию события «Пицца доставлена», что делает диаграмму длиннее.

Решение 2. Использование задачи «Получение сообщения» и граничных событий

Эскалация с помощью граничных событий

Преимущества этого решения

Это решение позволяет сделать диаграмму компактней. Использование граничного непрерывающего события-таймера «30 минут» делает процесс более гибким – мы можем звонить в службу доставки неограниченное количество раз до истечения 50-ти минут. Это решение является более универсальным по сравнению с первым.

Недостатки этого решения

Задача с типом «получение сообщения» «Ожидать пиццу» более сложна для восприятия в сравнении с событием «получение сообщения». Использование граничных событий также требует определенных знаний.

Решение 3. Событийный шлюз с общим таймером

Событийный шлюз BPMN с общим таймером BPMN

Преимущества этого решения

Это диаграмма представляет собой наиболее общее решение проблемы и является самой компактной. Она позволяет моделировать эскалации n-уровня без громоздких ветвлений на диаграмме.

Недостатки этого решения

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

Правила хорошего тона

Избегайте пересечения потоков операций на диаграммах

Чем проще и нагляднее смоделирована диаграмма, тем более она понятна пользователям. Старайтесь избегать пересечения потоков операций на диаграммах: это упростит понимание моделей бизнес-процессов, как опытными, так и начинающими аналитиками BPMN.

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

Хороший пример моделирования потоков

Хороший пример диаграммы BPMN

Плохой пример моделирования потоков

Плохой пример диаграммы BPMN

Наименование элементов в BPMN

Каждый элемент BPMN имеет свое обозначение и наименование. Событие необходимо именовать по формуле «существительное + глагол в прошедшем времени». Например, «сделка состоялась». Процесс (пул) должен содержать имя процесса или субъекта, который его выполняет. Например, «Корпоративный портал» или «Инициатор договора» или «Управление доставкой». Задачи желательно именовать по формуле «отглагольное существительное + наименование объекта, над которым совершается действие». Например, «Подготовка отчета» или «Отгрузка товара» или «Подписание договора». Эксклюзивные шлюзы нужно обозначать вопросами, а потоки операций от них – ответами (условиями).

Ниже приведены примеры, иллюстрирующие наименование элементов диаграммы.

Хороший пример наименования элементов на диаграмме

Пример наименования элементов BPMN

Формулы наименований элементов

Шаблон именования элементов BPMN

Плохой пример наименования элементов на диаграмме

Плохой пример именования BPMN

Симметричное моделирование

Симметричное моделирование позволяет пользователям диаграмм лучше понять логику процесса. Этот совет проиллюстрирован на двух примерах ниже.

Пример 1: Приготовление ужина

Симметричное моделирование

Симметричное моделирование - принцип

Несимметричное моделирование

Несимметричное моделирование - принцип

Пример 2: Выполнение заказа

Симметричное моделирование

Симметричное моделирование - пример

Несимметричное моделирование

Несимметричное моделирование - пример

Используйте задачи одинакового размера

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

Диаграмма с одинаковыми размерами задач

Задачи BPMN одинакового размера

Диаграмма с разными размерами задач

Задачи BPMN разного размера

Хореография

Диаграмма хореографии

Диаграмма «Хореография» BPMN описывает последовательность взаимодействий участников при выполнении бизнес-процессов. Такие диаграммы строят для того, чтобы еще более наглядно показать взаимодействия между бизнес-процессами и их участниками. Для первоначального понимания хореографии рассмотрим простой пример.

Простая диаграмма хореографии

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

Диаграмма хореографии BPMN

Данный бизнес-процесс описан четырьмя взаимодействиями хореографии.

Запрос доктору

Пациент является инициатором взаимодействия и отправляет в Клинику инициирующее сообщение «Мне требуется прием врача!». Ответное сообщение от Клиники – «Приходите на прием!». Таким образом, данное взаимодействие является двухсторонним, то есть, в ходе него происходит обмен сообщениями. Обратите внимание, что инициирующее сообщение и участник-инициатор имеют светлый фон, а ответное сообщение и отвечающий участник – имеют темный фон

Передача симптомов

Данное взаимодействие является односторонним. Это значит, что имеет место только передача инициирующего сообщения, а ответное сообщение отсутствует. Инициатором взаимодействия является Пациент: он передает доктору в Клинике симптомы своей болезни – «Я чувствую себя плохо…»

Передача рецепта

Данное взаимодействие также, как и предыдущее, является односторонним. Инициатор взаимодействия – Клиника. В ходе взаимодействия происходит отправка инициирующего сообщения «Возьмите Ваш рецепт!»

Передача медикаментов

Пациент является инициатором взаимодействия. Он предъявляет рецепт провизору в Клинике и таким образом транслирует ему инициирующее сообщение «Мне нужны мои лекарства». В ответ Пациент получает медикаменты. Это отражено на диаграмме в виде ответного сообщения «Вот Ваши лекарства!»

Для лучшего понимания хореографии здесь и далее мы приводим соответствующую диаграмму «Взаимодействие”

Диаграмма взаимодействия BPMN

Практический совет

Инициирующее сообщение может отправлять только участник-инициатор, а ответное сообщение – может быть отправлено только в ответ на инициирующее сообщение!

На рисунке ниже показано, что нельзя прикреплять инициирующее сообщение к границе отвечающего участника и также нельзя прикреплять ответное сообщение к границе участника-инициатора.

Инициирующее и ответное сообщение хореографии

Задачи хореографии

Определение и обозначение задач хореографии

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

Задача хореографии с описанием

Задачи хореографии BPMN могут изображаться по-разному, в зависимости от характера описываемого взаимодействия. Возможно всего два варианта:

  1. Передача сообщения (одностороннее взаимодействие, one-way collaboration)

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

    Обозначение сообщений хореографии BPMN - вариант 1 Обозначение сообщений хореографии BPMN - вариант 2

    Соответствующая ситуация на диаграмме «Взаимодействие» может выглядеть по-разному. Ниже представлены два возможных примера: передача сообщения между свернутыми пулами и между задачами в разных пулах.

    Поток сообщений между свернутыми пулами BPMN Передача сообщений между развернутыми пулами BPMN

  2. Обмен сообщениями (двухстороннее взаимодействие, two-way collaboration)

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

    Обмен сообщениями - хореография BPMN

    Соответствующая ситуация на диаграмме «Взаимодействие» может выглядеть по-разному. Ниже представлены три возможных примера обмена сообщениями: между двумя, тремя и четырьмя задачами.

    Обмен сообщениями между двумя задачами

    Обмен сообщениями между двумя задачами BPMN

    Обмен сообщениями между тремя задачами

    Обмен сообщениями между тремя задачами BPMN

    Обмен сообщениями между четырьмя задачами

    Обмен сообщениями между четырьмя задачами BPMN

    Практические советы

Изображение ответного сообщения без инициирующего сообщения является ошибкой!

Нет инициирующего сообщения хореографии BPMN

Соблюдайте правильную последовательность задач хореографии!

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

Последовательность задач хореографии BPMN

Подпроцессы хореографии

Определение и обозначение подпроцессов хореографии

Подпроцесс хореографии BPMN – это составное действие хореографии, которое декомпозируется на поток из нескольких дочерних задач хореографии. Количество участников подпроцесса хореографии может быть от двух и более. Свернутый подпроцесс хореографии BPMN на диаграммах отмечается символом «+».

Свернутый подпроцесс хореографии

Свернутый подпроцесс хореографии BPMN

Развернутый подпроцесс хореографии и соответствующая ему диаграмма «Взаимодействие»

Развернутый подпроцесс хореографии BPMN

Практический совет

Изображение подпроцесса хореографии BPMN с инициирующим и / или ответным сообщением является ошибкой, так как характерно только для задач. Будьте внимательны!

Ошибка в подпроцессе хореографии BPMN

Маркеры задач и подпроцессов хореографии

Маркеры задач и подпроцессов хореографии служат для обозначения циклов и множественных экземпляров задач и подпроцессов. Рассмотрим применение маркеров подробнее на примере задач хореографии BPMN.

Циклическая задача

Циклическая задача хореографии BPMN и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что обе соответствующие задачи – отправка и получение сообщения – должны быть циклическими.

Задача хореографии BPMN - цикл

Многоэкземплярная задача (параллельные экземпляры)

Многоэкземплярная задача хореографии BPMN (параллельные экземпляры) и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что обе соответствующие задачи – отправка и получение сообщений – должны быть многоэкземплярными.

Задача хореографии BPMN - параллельные экземпляры

Многоэкземплярная задача (последовательные экземпляры)

Многоэкземплярная задача хореографии BPMN (последовательные экземпляры) и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что обе соответствующие задачи – отправка и получение сообщений – должны быть многоэкземплярными.

Задача хореографии BPMN - последовательные экземпляры

Задача с множественными участниками

Задача хореографии BPMN с множественным участником и соответствующий ей фрагмент диаграммы «Взаимодействие». Обратите внимание, что на диаграмме взаимодействия пул множественного участника также должны быть обозначен как множественный.

Задача хореографии BPMN - множественные участники

Маркеры подпроцессов хореографии

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

Маркеры подпроцессов хореографии BPMN - обозначение

Вызов хореографии

Определение вызова хореографии

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

Обозначение вызова хореографии

Обозначается графическим символом задачи или подпроцесса в жирной рамке.

Вызов хореографии BPMN - обозначение

События хореографии

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

События хореографии BPMN - пример диаграммы

Использование стартовых событий на диаграммах хореографии

Тип стартового событияМожно ли использовать?Комментарии
АбстрактноеДаИспользуется для старта хореографии во всех случаях, когда процесс должен запуститься первым инициирующим сообщением. Также используется для старта подпроцессов хореографии.
СообщениеНет 
ТаймерДаВсе участники должны иметь соглашение об одинаковом времени выполнения действий.
ЭскалацияНет 
ОшибкаНет 
КомпенсацияНет 
УсловиеДаИспользуется с обычной семантикой.
СигналДаИсточник сигнала не требуется изображать. Все участники хореографии «видят» сигналы, т.к. сигнал не имеет конкретного получателя и этим отличается от сообщения.
МножественноеДаИспользуется с обычной семантикой.

Использование стартовых событий на диаграммах хореографии

Тип стартового событияМожно ли использовать?Комментарии
АбстрактноеДаИспользуется с обычной семантикой, для обозначения определенной точки, достигнутой в процессе. Не может передавать сообщения.
Абстрактное (граничное)Нет 
СообщениеНет 
Сообщение (граничное)ДаМожно использовать только для задач хореографии (не для подпроцессов!) Сообщение прикрепляется к границе участника – получателя сообщений.
Сообщение (в событийном шлюзе)Нет 
ТаймерДаПри условии синхронизации времени между участниками хореографии.
Таймер (граничное)ДаПри условии синхронизации времени между участниками хореографии.
Таймер (в событийном шлюзе)ДаПри условии синхронизации времени между участниками хореографии.
Ошибка (граничное)Нет 
ЭскалацияНет 
Эскалация (граничное)Нет 
ОтменаНет 
Отмена (граничное)ДаПрименяется только как прерывающее событие – обработчик. Событие должно быть прикреплено к границе того участника взаимодействия, который получает ошибку.
КомпенсацияНет 
Компенсация (граничное)ДаПрименяется только как прерывающее событие – обработчик. Событие должно быть прикреплено к границе того участника взаимодействия, который инициирует компенсацию.
УсловиеДаИспользуется как задержка, которая ожидает изменения данных для того, чтобы событие сработало. Данные должны быть видны всем участникам и содержаться в одном из предыдущих сообщений.
Условие (граничное)ДаПрименяется только как прерывающее событие – обработчик.
Условие (в событийном шлюзе)ДаИспользуется как задержка, которая ожидает изменения данных для того, чтобы событие сработало. Данные должны быть видны всем участникам и содержаться в одном из предыдущих сообщений.
СсылкаДаИспользуется с обычной семантикой.
СигналДаИспользуется только как событие-обработчик.
Сигнал (граничное)ДаИспользуется только как событие-обработчик.
Сигнал (в событийном шлюзе)ДаИспользуется только как событие-обработчик.
МножественноеДаИспользуется с обычной семантикой.
Множественное (граничное)ДаИспользуется с обычной семантикой.

Использование завершающих событий на диаграммах хореографии

Тип стартового событияМожно ли использовать?Комментарии
АбстрактноеДаИспользуется для завершения хореографии, то есть, обозначения той точки в процесс хореографии, после которой участники взаимодействия прекращают отправлять сообщения и ожидать получения каких-либо сообщений.
СообщениеНет 
ОшибкаНет 
ЭскалацияНет 
ОтменаНет 
КомпенсацияНет 
СигналНет 
МножественноеНет 
Останов (терминатор)ДаИспользуется с обычной семантикой.

Шлюзы на диаграммах хореографии

Назначение шлюзов

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

Типы шлюзов

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

Эксклюзивный шлюз хореографии

Назначение

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

Обозначение на диаграмме

Ниже приведен пример применения эксклюзивного шлюза и соответствующий фрагмент диаграммы «Взаимодействие».

Диаграмма хореографии

Эксклюзивный шлюз BPMN - диаграмма хореографии

Диаграмма взаимодействия

Эксклюзивный шлюз хореографии - диаграмма взаимодействия BPMN

Событийный шлюз хореографии

Назначение

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

Обозначение на диаграмме

Ниже приведен пример применения событийного шлюза и соответствующий фрагмент диаграммы «Взаимодействие».

Диаграмма хореографии

Событийный шлюз BPMN - диаграмма хореографии

Диаграмма взаимодействия

Событийный шлюз хореографии - диаграмма взаимодействия BPMN

Неэксклюзивный шлюз хореографии

Неэксклюзивный шлюз ветвления

Неэксклюзивный шлюз ветвления используется для отображения принятия решений и выбора одной или нескольких альтернативных последовательностей задач хореографии на основании этого решения. Ниже приведен пример применения неэксклюзивного шлюза ветвления и соответствующий фрагмент диаграммы «Взаимодействие».

Диаграмма хореографии

Не эксклюзивный шлюз ветвление - диаграмма хореографии BPMN

Диаграмма взаимодействия

Не эксклюзивный шлюз хореографии ветвление - диаграмма взаимодействия

Неэксклюзивный шлюз слияния

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

Диаграмма хореографии

Не эксклюзивный шлюз слияния - диаграмма хореографии BPMN

Диаграмма взаимодействия

Не эксклюзивный шлюз хореографии слияние - диаграмма взаимодействия

Параллельный шлюз хореографии

Назначение

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

Обозначение на диаграмме

Ниже приведен пример применения параллельного шлюза и соответствующий фрагмент диаграммы «Взаимодействие».

Диаграмма хореографии

Параллельный шлюз BPMN - диаграмма хореографии

Диаграмма взаимодействия

Параллельный шлюз хореографии BPMN - диаграмма взаимодействия

Комплексный шлюз хореографии

Назначение

Комплексный шлюз хореографии используется для моделирования «частичного слияния». Это означает, что комплексный шлюз срабатывает, когда какие-то, но не все предыдущие ветви процесса завершены.

Обозначение на диаграмме

Ниже приведен пример применения комплексного шлюза и соответствующий фрагмент диаграммы «Взаимодействие».

Диаграмма хореографии

Комплексный шлюз - диаграмма хореографии BPMN

Диаграмма взаимодействия

Комплексный шлюз хореографии BPMN - диаграмма взаимодействия

Комбинированные диаграммы хореографии

Назначение

Примеры

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

Комбинированная диаграмма хореографии BPMN со свернутыми пулами
Комбинированная диаграмма хореографии BPMN с развернутыми пулами