BPMN 2.0 (Business Process Model and Notation, стандарт OMG, он же ISO/IEC 19510) это нотация для бизнес-процессов. Её понимают и бизнес, и разработчики, а схемы могут исполняться движками (Camunda, Flowable и другие).
Четыре группы элементов
- Потоковые объекты: события, задачи, шлюзы.
- Соединяющие объекты: поток управления (сплошная стрелка), поток сообщений (пунктир с кружком), ассоциация.
- Зоны ответственности: пулы (участники, организации) и дорожки (роли внутри участника).
- Артефакты: объекты данных, хранилища, аннотации, группы.
События
- Стартовое (тонкий круг), промежуточное (двойной круг), конечное (жирный круг).
- Типы по значку: сообщение (конверт), таймер (часы), ошибка (молния), сигнал, условие.
- Граничное событие висит на краю задачи: например, таймер «24 часа» уводит процесс в эскалацию, если задачу не выполнили. Бывает прерывающим (сплошная граница) и непрерывающим (пунктир).
Задачи
- Пользовательская (человек в системе), сервисная (вызов системы), ручная (без системы), скриптовая, отправка и получение сообщения, бизнес-правило.
- Подпроцесс: свёрнутый блок со знаком плюс.
Шлюзы
| Шлюз | Значок | Смысл |
|---|---|---|
| Исключающий (XOR) | ромб с X или пустой | ровно одна ветка по условию |
| Параллельный (AND) | ромб с + | все ветки сразу, на слиянии ждёт все |
| Включающий (OR) | ромб с кругом | одна или несколько веток по условиям |
| Событийный | ромб с пятиугольником в кругах | ветка выбирается по тому, какое событие пришло первым |
Ветки после разделения нужно корректно собрать: параллельные ветки собирают параллельным шлюзом, иначе процесс «размножится».
Пулы и сообщения
- Внутри одного пула элементы связывает поток управления.
- Между пулами только поток сообщений: другая организация живёт своим процессом, мы лишь обмениваемся сообщениями.
- Внешнего участника, чей процесс неизвестен, рисуют свёрнутым пулом (чёрный ящик).
Пример: заявка на кредит
Пул «Банк», дорожки «Клиентский менеджер», «Скоринг», «Андеррайтер». Старт: сообщение «Заявка получена». Сервисная задача «Скоринг». XOR-шлюз: балл выше порога → «Одобрить автоматически», ниже → пользовательская задача «Ручная проверка» с граничным таймером 2 дня. Конец: «Решение отправлено клиенту» (событие сообщения).
Уровни детализации
- Описательный (для бизнеса): 10-20 элементов, без технических деталей.
- Аналитический: исключения, события, роли.
- Исполняемый: под движок, с переменными и сервисными задачами.
Частые ошибки
- Поток управления между пулами (надо поток сообщений).
- Шлюз, который и разделяет, и сливает одновременно.
- Нет конечного события у ветки или «висящие» задачи.
- Названия задач не по схеме «глагол + объект» («Заявка» вместо «Проверить заявку»).
- Схема на 80 элементов на одном листе: разбейте на подпроцессы.
Что спросят на собесе
- Какие типы шлюзов знаешь, чем отличаются XOR, AND и OR?
- Чем пул отличается от дорожки?
- Как показать, что задача должна быть выполнена за сутки, иначе эскалация?
- Когда BPMN, а когда диаграмма активности UML?
- Нарисуй процесс возврата товара.