Практическая работа с BPMN

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

Нотация BPMN (Business Process Model and Notation) — это система условных обозначений и их описания средствами языка разметки XML для моделирования бизнес-процессов. Разработана Business Process Management Initiative (BPMN.org) и поддерживается Object Management Group, после слияния обеих организаций в 2005 году. Последней версией BPMN на текущий момент является 2.0 (2.0.2).

BPMN позволяет не только описать бизнес-логику выполнения действий в виде наглядной диаграммы, но и запустить отрисованный бизнес-процесс на исполнение. Для этого используются специализированные системы BPMS (Business Process Modelling System), поддерживающие эту нотацию. Такие системы могут автоматически перевести схему бизнес-процесса в исполняемый код и создать веб-приложение, которое будет обрабатывать данные, введённые пользователями и сторонними сервисами. Такая концепция называется Low Code/No Code (создание программного обеспечения без разработки кода) и отлично подходит для автоматизации офисных процессов.

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

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

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

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

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

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

dfb1828f136024fae05c6ac029a531b3.png

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

Пулы и зоны

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

События

Любая диаграмма начинается и заканчивается событиями. События в кружочках обозначают то, что происходит в ходе процесса.

Простой кружочек

9d41284fe955e699d02fb99c606be4fd.png

 обозначает событие запуска, то есть событие, инициирующее процесс. Событие запуска, содержащее значок конверта,

cfe9b6a3487990a7fb32d79bfc1dd3e2.png

 указывает на то, что пришло сообщение и запускает процесс.

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

Также, на нашей диаграмме присутствует событие ожидания

ef89920703b9f3e6d671f54ebc39c5ab.png

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

И наконец, события завершения. Кружочек с жирной линией

da3f54af0b9c27f405ff46ab7bfc2fee.png

 обозначает завершение процесса на стороне клиента. А закрашенный кружочек с жирной линией

fef1dbe5dc98da3900d3a33825aa9062.png

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

Типы шлюзов

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

Итак, параллельный шлюз

398bd584600ce9a86102ec06c3009154.png

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

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

adf8d3cac9e506d014ebd129ca289796.png

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

В примере ниже в зависимости от того, что будет передано после шага Go to Old North Chrunch, Land или Sea, с помощью эксклюзивного шлюза будет выбран вариант дальнейших действий.

b75bf53f7aec110d9a017415b7935916.png

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

Еще один шлюз, представленный на схеме это инклюзивный шлюз

7c756a78846a5918653eae1820e9f21c.png

.  Принцип работы инклюзивного шлюза — логическая операция ИЛИ.

7dc330f4295f86f8f41664a9eab19506.png

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

6f3b6c47b430aa5524cb580da963f6a2.png

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

3100c6391420485b4cda82f48a30338a.png

Соединители

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

79f84606778918ab64b95dd9b93da705.png

Создание диаграммы

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

1deb55845949a2ed6a0ce53085685b7f.png

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

Заключение

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

Как нарисовать процесс в бесплатном сервисе BPMN.IO? Узнаем на открытом уроке 15 августа. В результате этого занятия вы научитесь применять нотацию BPMN в своей работе и освоите сервис BPMN.IO.

Записаться на урок можно на странице онлайн-курса «BPMN: Углубленная практика».

© Habrahabr.ru