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

Понимание основных строительных блоков 🧱
Диаграмма BPMN состоит из четырёх основных категорий элементов. Каждая категория выполняет определённую функцию при определении жизненного цикла бизнес-процесса. Чтобы создать надёжную модель, необходимо понимать нюансы между похожими по форме фигурами.
- События: То, что происходит. Они изображаются в виде кругов и определяют начало, промежуточную точку или конец потока.
- Действия: Работа, которая должна быть выполнена. Они изображаются в виде закруглённых прямоугольников, представляющих задачи или подпроцессы.
- Шлюзы: Решения и синхронизация. Эти ромбы управляют путём, по которому проходит поток.
- Соединяющие объекты: Стрелки, соединяющие всё вместе.
1. События: Пульс вашего процесса ⏱️
События — это триггеры и результаты вашего процесса. Они изображаются в виде кругов. Толщина границы круга указывает на тип события. Понимание различий между ними критически важно для точного моделирования и выполнения.
События начала 🟢
Событие начала обозначает начало экземпляра процесса. У него нет входящего последовательного потока. Граница события начала тонкая. Внутри круга символ определяет, что запускает процесс.
- Событие начала по сообщению: Запускается при получении сообщения (например, электронной почты или вызова API). Обозначается иконкой конверта.
- Событие начала по таймеру: Запускается при выполнении временного условия (например, каждый понедельник в 9 часов утра). Обозначается иконкой часов.
- Событие начала по сигналу: Запускается при отправке сигнала в систему.
- Событие начала по ошибке: Редко используется, обозначает запуск процесса по определённому условию ошибки.
События окончания 🔴
События окончания обозначают завершение экземпляра процесса. У них нет исходящего последовательного потока. Граница толстая, чтобы указать на завершение. Символы внутри определяют результат.
- Событие окончания по сообщению: Отправляет сообщение по завершении.
- Событие окончания по сигналу: Рассылает сигнал другим процессам.
- Окончание с ошибкой: Указывает, что процесс завершился из-за ошибки.
- Окончание отмены: В частности, для транзакционных процессов или подпроцессов, указывающее на отмену.
- Окончание завершения: Немедленно останавливает все запущенные экземпляры процесса, независимо от других параллельных путей.
Промежуточные события ⚪
Промежуточные события происходят между началом и концом. У них есть входящие и исходящие последовательные потоки. Граница тонкая, но внутри находится двойная линия круга, чтобы отличить их от событий начала и конца.
- События захвата: Процесс ожидает наступления чего-либо. Примеры включают захват сообщения, таймера или сигнала. Поток приостанавливается до выполнения условия.
- События выброса: Процесс генерирует что-либо. Примеры включают отправку сообщения или запуск сигнала. Обычно это происходит после завершения задачи.
- Компенсация: Особое управление ошибками в длительных процессах.
2. Действия: определение работы 🛠️
Действия представляют собой фактическую работу, выполняемую в рамках процесса. Они изображаются в виде закруглённых прямоугольников. Значок внутри прямоугольника указывает на конкретный тип действия.
Задачи 📝
Задача — это наименьшая единица работы. Она не может быть дополнительно разложена в рамках диаграммы.
- Задача пользователя: Работа, выполняемая человеком. Требует взаимодействия с человеком.
- Задача сервиса: Работа, выполняемая ИТ-системой или сервисом. Человеческое вмешательство не требуется.
- Ручная задача: Работа, которая будет выполнена вручную в реальном мире, возможно, вне системы.
- Задача скрипта: Работа, выполняемая скриптом или фрагментом кода.
- Задача бизнес-правила: Работа, выполняемая движком бизнес-правил или политикой.
- Задача отправки/приема: Конкретные типы задач для асинхронной передачи сообщений.
Подпроцессы 📂
Когда процесс становится слишком сложным, он разбивается на подпроцессы. Это обозначается закруглённым прямоугольником с плюсом (+) внизу.
- Свернутый подпроцесс: Показывает знак плюс. Подробности скрыты, чтобы сохранить чистоту основной диаграммы.
- Развернутый подпроцесс: Показывает внутренние задачи и потоки. Используется для подробной документации.
- Вызов активности: Ссылка на повторно используемый шаблон процесса, определённый в другом месте.
3. Шлюзы: Контроллеры логики 🔄
Шлюзы определяют путь потока процесса. Это наиболее важные элементы для контроля логики. Без правильного использования шлюзов процесс не может принимать решения или обрабатывать параллельные потоки работы.
Исключающий шлюз (XOR) ⚡
Исключающий шлюз представляет точку принятия решения, где выбирается только один путь. Он выглядит как ромб с символом X внутри. Используется, когда условия взаимоисключающие.
- Логика: Если условие А истинно, идти по пути А. Если условие В истинно, идти по пути В. Активен только один путь.
- Применение: Процессы утверждения (одобрено против отклонено), ветвление на основе значений данных.
- Поток по умолчанию: Если ни одно условие не выполняется, используется поток по умолчанию. Он должен быть чётко обозначен.
Параллельный шлюз (И) ⚙️
Параллельный шлюз одновременно разделяет или объединяет потоки. Он выглядит как ромб с символом + внутри.
- Разделение: Создаёт несколько параллельных путей. Все пути выполняются одновременно.
- Объединение: Ожидает завершения всех входящих параллельных путей перед продолжением.
- Применение: Отправка уведомительного электронного письма и одновременное обновление базы данных. Ожидание нескольких утверждений перед продолжением.
Входящий шлюз (ИЛИ) 🌐
Входящий шлюз позволяет выбрать один или несколько путей. Он выглядит как ромб с овнутри.
- Разделение:Оценивает условия. Если условие А истинно, активируется путь А. Если условие В истинно, активируется путь В. Оба могут быть истинными.
- Объединение:Ожидает завершения всех активных путей. Не ждет путей, которые не были выбраны.
- Использование:Сложная разветвленная структура, где можно выбрать несколько вариантов (например, выбор нескольких способов доставки).
Шлюз на основе события ⚠️
Этот шлюз ожидает наступления определенного события. Он выглядит как ромб с шестиугольником внутри. Используется для ожидания внешних триггеров.
- Логика: Процесс ожидает наступления одного из нескольких событий. Как только одно событие происходит, другие возможные пути отменяются.
- Использование: Ожидание подтверждения оплаты или истечения времени ожидания.
Сравнение типов шлюзов
| Тип шлюза | Символ | Логика разделения | Логика объединения |
|---|---|---|---|
| Исключающий (ИСКЛЮЧАЮЩЕЕ ИЛИ) | X внутри ромба | Выбирает ровно один путь на основе условий. | Объединяет единственный входящий путь. |
| Параллельный (И) | + внутри ромба | Создает все пути одновременно. | Ожидает завершения всех входящих путей. |
| Включительный (ИЛИ) | о внутри ромба | Активируйте любые пути, соответствующие условиям. | Дождитесь завершения всех активных путей. |
| На основе события | Шестиугольник внутри | Дождитесь наступления любого события. | Дождитесь наступившего события. |
4. Соединяющие объекты: связывание потока 🔗
Соединители определяют, как информация и управление передаются между элементами. Стиль стрелки указывает на характер соединения.
Последовательный поток 🟦
Последовательный поток соединяет элементы в рамках одного процесса. Это сплошная линия с открытой стрелкой.
- Функция:Указывает порядок выполнения.
- Направление:Течет сверху вниз, слева направо.
- Применение:Соединение задач, событий и шлюзов в пределах одного канала.
Поток сообщений 🟧
Поток сообщений соединяет элементы между различными пузырями или участниками. Это пунктирная линия с открытой стрелкой.
- Функция:Указывает на обмен информацией между участниками.
- Направление:Может пересекать каналы и пузыри.
- Применение:Отправка запроса от Клиента поставщику.
Связь 🟩
Связь соединяет артефакты данных или аннотации с элементами потока. Это пунктирная линия с закрашенной стрелкой (или открытой, в зависимости от направления).
- Функция:Предоставляет контекст или ссылки на данные без влияния на управление потоком.
- Использование: Связывание документа с задачей или текстовой заметки с конкретным шлюзом.
5. Бассейны и полосы: организация ответственности 🏊
Сложные процессы вовлекают несколько сторон. BPMN использует бассейны и полосы для визуализации этих взаимоотношений.
Бассейны 🟦
Бассейн представляет участника процесса. Это контейнер, содержащий определение процесса. У каждого бассейна есть собственные независимые события начала и окончания.
- Публичный бассейн: Представляет внешнюю организацию или сущность.
- Частный бассейн: Представляет внутреннее подразделение или систему.
- Поток сообщений: Может происходить только между разными бассейнами.
Полосы 🟨
Полосы — это подразделения внутри бассейна. Они представляют конкретные роли, отделы или системы, ответственные за действия в этой части.
- Ответственность: Уточняет, кто выполняет какую задачу.
- Визуальная ясность: Помогает отслеживать передачу задач между ролями.
- Бассейны (полосы): Часто используется как синоним полос для описания горизонтального или вертикального деления.
6. Распространённые шаблоны и антипаттерны 🛑
Даже опытные моделисты допускают ошибки. Распознавание распространённых шаблонов и антипаттернов обеспечивает долговечность и удобство использования ваших диаграмм.
Бесконечный цикл ⚠️
Последовательный поток, возвращающийся к предыдущей точке без условия завершения, создаёт бесконечный цикл. В диаграмме это допустимо, если оно представляет механизм повторной попытки, но при выполнении вызывает зависание системы.
- Решение: Убедитесь, что в цикле есть ограничение по количеству ил условие выхода.
Заброшенные задачи
Задачи, не имеющие входящих или исходящих соединений, являются заброшенными. Они указывают на незавершённую диаграмму.
- Решение: Подключите все задачи к логическому пути потока.
Отсутствующие шлюзы
Параллельные потоки, которые неправильно объединены или разделены, могут привести к зависанию. Если процесс разделяется на два параллельных пути, но только один из них возвращается, другой путь может зависнуть бесконечно.
- Решение: Всегда используйте параллельный шлюз для объединения всех параллельных ветвей.
7. Лучшие практики по созданию диаграмм 📏
Чтобы поддерживать высокое качество документации процессов, соблюдайте эти структурные рекомендации.
Согласованность в именовании
- Используйте четкие, ориентированные на действия имена для задач (например, Проверить счет а не Счет).
- Называйте события по триггеру (например, Счет получен а не Начало).
- Метки шлюзов с условием (например, Сумма > 1000).
Визуальная иерархия
- Размещайте событие начала сверху или слева.
- Размещайте событие окончания снизу или справа.
- Сохраняйте последовательность направления потока (сверху вниз или слева направо).
- Избегайте пересечения линий. Используйте изгибы для сглаживания потока.
Объекты данных
- Представляйте данные в виде значков документов, привязанных к задачам.
- Используйте связи, чтобы показать, какие данные читаются или записываются.
- Не размещайте объекты данных на последовательных потоках; они относятся к задачам или шлюзам.
8. Расширенная логика шлюзов 🧠
Расширенное моделирование часто требует вложенных шлюзов или сложных условий. Очень важно понимать взаимодействие между различными типами шлюзов.
Вложенные шлюзы
Размещение шлюза внутри другого шлюза может упростить сложную логику. Однако это увеличивает когнитивную нагрузку для читателей.
- Рекомендация: Держите логику простой. Если шлюз требует пяти условий, рассмотрите возможность разделения процесса на подпроцессы.
Выбор на основе события
При использовании шлюза на основе события убедитесь, что все ожидающие события различны. Если два события могут произойти одновременно, поведение становится неопределенным.
- Рекомендация: Используйте явную логику для приоритизации одного события перед другим, если существует неоднозначность.
9. Устранение распространенных путаниц с символами 🤔
Даже эксперты иногда путают похожие символы. Вот краткое руководство по наиболее распространенным ошибкам.
Задача против сервисной задачи
- Задача:Работа человека.
- Сервисная задача:Работа системы.
- Проверка: Человеку нужно нажать кнопку? Если да, это задача. Если система делает это автоматически, это сервисная задача.
Параллельный шлюз против включающего шлюза
- Параллельный: Все пути выполняются.
- Включающий: Выбранные пути выполняются.
- Проверка: Возможно ли, чтобы выполнялся только один путь? Если да, используйте включающий шлюз. Если все пути должны выполняться, используйте параллельный шлюз.
Промежуточный шлюз захвата против шлюза отправки
- Захват: Процесс ожидает.
- Отправка: Процесс отправляет.
- Проверьте:Стрелка указывает на событие (поймать) или от него (бросить)?
10. Вопросы реализации 🚀
Хотя этот гид фокусируется на нотации, реализация этих диаграмм часто включает в себя движки выполнения. Понимание нотации гарантирует, что логика может быть преобразована в код или правила рабочего процесса.
- Оценка условия: Убедитесь, что условия шлюза являются проверяемыми выражениями.
- Тайм-ауты: Используйте промежуточные события таймера для отслеживания SLA.
- Уведомления: Используйте события завершения сообщения для запуска внешних оповещений.
Обзор правил нотации 📜
Соблюдение стандарта BPMN гарантирует, что ваши диаграммы являются переносимыми и понятными для любого заинтересованного лица.
- События — это круги: Начало (тонкий), Конец (толстый), Промежуточное (двойной тонкий).
- Деятельность — это закруглённые прямоугольники: Задача (иконка внутри), Подпроцесс (плюс внутри).
- Шлюзы — это ромбы: XOR (X), AND (+), OR (o), Событие (шестиугольник).
- Соединения — это линии: Последовательность (сплошная), Сообщение (штриховая), Ассоциация (штриховая).
- Артефакты — это документы: Данные, Группа, Аннотация.
Овладев этими символами, вы создадите основу для оптимизации процессов. Чёткие диаграммы уменьшают неоднозначность, упрощают коммуникацию и способствуют точной автоматизации. Вложения в изучение нотации окупаются ясностью получаемых бизнес-процессов.
Помните, что диаграмма — это договор. Если логика неясна, выполнение будет ошибочным. Регулярно проверяйте свои модели, чтобы убедиться, что они по-прежнему отражают текущую реальность бизнеса.








