Документация / BPMN
Введение
BPMN (Business Process Model and Notation) — международный стандарт описания бизнес-процессов в виде диаграмм. Текущая версия — BPMN 2.0; её поддерживают большинство редакторов и BPM-платформ, а сам стандарт описывает не только картинку, но и формат файла — BPMN XML. Поэтому одну и ту же модель можно показать бизнесу, передать аналитику в другой инструмент и загрузить в движок исполнения процессов.
Для кого нотация
BPMN задумывалась как язык, понятный всем участникам: бизнес-пользователи читают диаграмму верхнего уровня, аналитики уточняют ветвления и обработку исключений, разработчики доводят модель до исполняемой. На практике выделяют три уровня детализации:
| Уровень | Что показывает | Кто использует |
|---|---|---|
| Описательный | Основной («счастливый») путь процесса, ключевые участники | Руководители, владельцы процессов |
| Аналитический | Все ветвления, исключения, события, обмен сообщениями | Аналитики, методологи |
| Исполняемый | Технические атрибуты: типы задач, выражения условий, данные | Разработчики, BPM-движки |
Из чего состоит диаграмма
Все элементы BPMN делятся на пять групп:
- Потоковые объекты — то, из чего складывается процесс: события (кружки), действия (прямоугольники со скруглёнными углами — задачи и подпроцессы) и шлюзы (ромбы).
- Соединяющие объекты — потоки управления (сплошные стрелки), потоки сообщений (пунктирные стрелки между участниками) и ассоциации (точечные линии к данным и комментариям).
- Данные — объекты данных, хранилища данных, входы и выходы процесса, сообщения.
- Зоны ответственности — пулы (участники взаимодействия) и дорожки (роли и подразделения внутри участника).
- Артефакты — группы и текстовые аннотации: пояснения, которые не влияют на ход процесса.
Первый процесс
Ниже — процесс обработки заказа: после получения заказа менеджер проверяет наличие товара, и в зависимости от результата заказ отправляется клиенту или клиент получает отказ.
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
id="Definitions_Order" targetNamespace="http://bpmn.io/schema/bpmn">
<bpmn:process id="Process_Order" name="Обработка заказа" isExecutable="false">
<bpmn:startEvent id="Start" name="Заказ получен">
<bpmn:outgoing>Flow_1</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:task id="Check" name="Проверить наличие товара">
<bpmn:incoming>Flow_1</bpmn:incoming>
<bpmn:outgoing>Flow_2</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="InStock" name="Товар в наличии?">
<bpmn:incoming>Flow_2</bpmn:incoming>
<bpmn:outgoing>Flow_Yes</bpmn:outgoing>
<bpmn:outgoing>Flow_No</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Ship" name="Отправить заказ">
<bpmn:incoming>Flow_Yes</bpmn:incoming>
<bpmn:outgoing>Flow_3</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Reject" name="Сообщить клиенту об отказе">
<bpmn:incoming>Flow_No</bpmn:incoming>
<bpmn:outgoing>Flow_4</bpmn:outgoing>
</bpmn:task>
<bpmn:endEvent id="Shipped" name="Заказ отправлен">
<bpmn:incoming>Flow_3</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="Rejected" name="Заказ отклонён">
<bpmn:incoming>Flow_4</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1" sourceRef="Start" targetRef="Check" />
<bpmn:sequenceFlow id="Flow_2" sourceRef="Check" targetRef="InStock" />
<bpmn:sequenceFlow id="Flow_Yes" name="Да" sourceRef="InStock" targetRef="Ship" />
<bpmn:sequenceFlow id="Flow_No" name="Нет" sourceRef="InStock" targetRef="Reject" />
<bpmn:sequenceFlow id="Flow_3" sourceRef="Ship" targetRef="Shipped" />
<bpmn:sequenceFlow id="Flow_4" sourceRef="Reject" targetRef="Rejected" />
</bpmn:process>
<bpmndi:BPMNDiagram id="Diagram_Order">
<bpmndi:BPMNPlane id="Plane_Order" bpmnElement="Process_Order">
<bpmndi:BPMNShape id="Start_di" bpmnElement="Start">
<dc:Bounds x="152" y="102" width="36" height="36" />
<bpmndi:BPMNLabel><dc:Bounds x="134" y="145" width="72" height="14" /></bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Check_di" bpmnElement="Check">
<dc:Bounds x="240" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="InStock_di" bpmnElement="InStock" isMarkerVisible="true">
<dc:Bounds x="395" y="95" width="50" height="50" />
<bpmndi:BPMNLabel><dc:Bounds x="376" y="65" width="88" height="14" /></bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Ship_di" bpmnElement="Ship">
<dc:Bounds x="500" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Reject_di" bpmnElement="Reject">
<dc:Bounds x="500" y="200" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shipped_di" bpmnElement="Shipped">
<dc:Bounds x="652" y="102" width="36" height="36" />
<bpmndi:BPMNLabel><dc:Bounds x="628" y="145" width="84" height="14" /></bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Rejected_di" bpmnElement="Rejected">
<dc:Bounds x="652" y="222" width="36" height="36" />
<bpmndi:BPMNLabel><dc:Bounds x="631" y="265" width="78" height="14" /></bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1">
<di:waypoint x="188" y="120" /><di:waypoint x="240" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2">
<di:waypoint x="340" y="120" /><di:waypoint x="395" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Yes_di" bpmnElement="Flow_Yes">
<di:waypoint x="445" y="120" /><di:waypoint x="500" y="120" />
<bpmndi:BPMNLabel><dc:Bounds x="463" y="102" width="18" height="14" /></bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_No_di" bpmnElement="Flow_No">
<di:waypoint x="420" y="145" /><di:waypoint x="420" y="240" /><di:waypoint x="500" y="240" />
<bpmndi:BPMNLabel><dc:Bounds x="428" y="190" width="22" height="14" /></bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_3_di" bpmnElement="Flow_3">
<di:waypoint x="600" y="120" /><di:waypoint x="652" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4">
<di:waypoint x="600" y="240" /><di:waypoint x="652" y="240" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
Нажмите «Открыть в редакторе», чтобы увидеть диаграмму: в редакторе BPMN слева — холст, справа — тот же процесс в BPMN XML. Правки на холсте сразу попадают в XML и наоборот.
Как читать эту документацию
- Типы диаграмм — процессы, взаимодействия участников, хореографии и диалоги.
- Действия, Потоки, Подпроцессы, Шлюзы, События — основные элементы процесса.
- Пулы и дорожки, Данные и артефакты — участники и информация, с которой работает процесс.
- Хореография — описание обмена сообщениями между участниками без их внутренней логики.
- Практические примеры — готовые процессы, которые можно открыть в редакторе и доработать.
- BPMN XML — устройство файла: как связаны модель и её изображение.
Похожие инструменты
Обновлено: 30 сентября 2026 г.
