Skip to main content

BPMN

BPMN#

BPMN (Business Process Model and Notation) - это язык моделирования бизнес-процессов, который является промежуточным звеном между формализацией/визуализацией и воплощением бизнес-процесса. Нотация представляет собой описание графических элементов, используемых для построения схемы протекания бизнес-процесса.

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

Основные графические элементы BPMN#

Элементы нотации BPMN – это элементы графической схемы, но также и элементы самого бизнес-процесса.

Пулы и дорожки#

ЭлементОписаниеНотация
Пул

Есть 2 вида пулов на диаграмме:

Раскрытый пул используется для показа бизнес-процесса и обозначения его границ.

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

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

События#

ЭлементОписаниеНотация
Событие

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

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

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

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

Символы событий

По символам событий классификация следующая:

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

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

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

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

- События-отмены инициируют или реагируют на отмену транзакции.

- События-компенсации инициируют компенсацию или выполняют действия по компенсации.

- События-условия позволяют интегрировать бизнес правила в процесс.

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

- Составные события моделирует генерацию и моделирование одного события из множества.

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

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

Действия#

Типы задач#

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

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

Задача - сценарий

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

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

Сервисная задача

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

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

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

Развернутый

подпроцесс

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

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

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

Шлюзы#

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

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

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

Допустимые способы слияния

Недопустимые способы слияния

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

Потоки#

ЭлементОписаниеНотация
Поток управления

Используется для передачи работы между элементами процесса.

Потоки управления можно использовать только внутри пула или дорожки — они не могут пересекать границы пула.

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

Используется для соединения сообщений и\или пулов, отображает отправку сообщений.

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

АссоциацияИспользуется для соединения элементов и объектов данных.

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

Артефакты и данные#

ЭлементОписаниеНотация
Входные и выходные объекты данных

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

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

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

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

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

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

Общие правила и советы по построению диаграмм#

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

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

Допускается последовательное следование нескольких событий или процессов в подряд.

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

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

Хороший пример моделирования потоков

Плохой пример моделирования потоков

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

Пример процесса «Регистрация покупателя на маркетплейсе»#

Пример процесса «Предоставление юридической консультации»#

Задание#

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

Полезные источники#

Нотация BPMN 2.0: ключевые элементы и описание

Что такое BPMN-схема и как ее создать?

Нотация BPMN. Практическое моделирование

ОптимаКонсалтинг

Ошибки в BPMN - топ 25 самых частых ошибок у начинающих

Библиотека примеров бизнес-процессов в BPMN - bpmn2.ru

https://storm.bpmn2.ru/bpmn/elements