Business Process Model and Notation (BPMN) 2.0 — международный стандарт моделирования бизнес-процессов, понятный бизнесу, аналитикам и разработчикам. Системный аналитик использует BPMN для документирования процессов «как есть» (as-is) и «как должно быть» (to-be), согласования с заинтересованными сторонами и передачи однозначных требований в разработку. Эта заметка — введение в контексте SA и hub для ветки «Описание бизнес-процессов»; полный справочник элементов, паттернов и исполняемого BPMN — в 06.02.01 Потоки, шлюзы, события, 06.02.02 Пулы, дорожки и артефакты, 06.02.03 Типовые паттерны BPMN и 06.02.04 Работа с Camunda.
1. Суть темы
BPMN описывает поток работ: кто что делает, в каком порядке, при каких условиях и как участники обмениваются сообщениями. Стандарт поддерживается OMG и опубликован как ISO/IEC 19510; место BPMN среди других сводов знаний — в 00.04 Основные стандарты и своды знаний (BABOK, SEBoK, ISO 29148).
Задачи системного аналитика с BPMN:
- зафиксировать as-is и спроектировать to-be для согласования с владельцами процесса;
- показать границы системы и внешних участников до детализации (связка с 03.01.02 Моделирование контекста системы (Context Diagram));
- связать шаги процесса с функциональными требованиями, критериями приёмки и интеграционными контрактами;
- подготовить модель для регламента, тестирования или (на более позднем этапе) автоматизации в BPMS.
BPMN не заменяет все нотации моделирования: выбор инструмента зависит от вопроса, на который нужно ответить — критерии выбора в §3.
Граница этой заметки: материала §2 достаточно, чтобы прочитать и проверить чужую BPMN-диаграмму на ревью. Все типы элементов, семантика слияния шлюзов, граничные события, multi-instance и edge cases — только в 06.02.01 Потоки, шлюзы, события и соседних заметках ветки 06.02.
2. Ключевые понятия
Пять категорий элементов
| Категория | Назначение | Примеры |
|---|---|---|
| Элементы потока (Flow Objects) | Поведение процесса: события, действия, ветвления | Стартовое событие, задача, эксклюзивный шлюз |
| Данные (Data) | Создаваемая, потребляемая и хранимая информация | Объект данных, хранилище данных |
| Соединительные элементы (Connecting Objects) | Связи между элементами потока и артефактами | Поток управления, поток сообщений, ассоциация |
| Роли (Swimlanes) | Группировка по исполнителям | Пул, дорожка |
| Артефакты (Artifacts) | Контекст без влияния на поток | Группа, текстовая аннотация |
Это «алфавит» BPMN. Объекты данных на диаграмме показывают, какие сущности проходят через шаги; атрибуты и определения полей фиксируйте в 03.03.03 Словарь данных (описание), а не только на схеме. Детальные таблицы типов событий, задач, шлюзов и редких элементов — в 06.02.01 Потоки, шлюзы, события; пулы, дорожки, объекты данных — в 06.02.02 Пулы, дорожки и артефакты.
События, действия и шлюзы — минимум для чтения диаграмм
События (Events) — круг. По позиции различают стартовые, промежуточные и конечные; по иконке внутри — триггер (none, message, timer, error и др.). На ревью достаточно понять: что запускает процесс, что может прервать или отложить шаг, чем поток завершается. Детали граничных событий, нескольких стартов и редких триггеров — 06.02.01 Потоки, шлюзы, события.
Действия (Activities) — прямоугольник со скруглёнными углами: задача (элементарная работа) или подпроцесс (свёрнутый блок с внутренней логикой). Для SA чаще всего встречаются user task, service task, manual task; тип задачи подсказывает, нужен ли экран, вызов API или ручная операция. Различие Call Activity и встроенного sub-process, transaction, event sub-process — 06.02.01 Потоки, шлюзы, события и 06.02.03 Типовые паттерны BPMN.
Шлюзы (Gateways) — ромб; управляют ветвлением (fork) и слиянием (join). На введении запомните три базовых типа: XOR — один путь, AND — все параллельные ветки, OR (inclusive) — один или несколько путей по условиям. Семантика слияния (что именно ждёт merge XOR vs AND), event-based и complex gateway — 06.02.01 Потоки, шлюзы, события.
Потоки: sequence flow и message flow
- Поток управления (Sequence Flow) — сплошная стрелка внутри одного пула; задаёт порядок выполнения.
- Поток сообщений (Message Flow) — пунктир между пулами; показывает обмен сообщениями между участниками. Sequence flow не пересекает границу пула.
Дорожка (Lane) ≠ пул (Pool): lane — роль или подразделение внутри одного участника; переход sequence flow между дорожками одного пула допустим. Переход «стрелки» между разными пулами — только message flow.
Нарушение этого правила — частая ошибка при моделировании интеграций; детали — 06.02.02 Пулы, дорожки и артефакты и 03.01.04 Интерфейсы и интеграционные взаимодействия.
Process diagram vs Collaboration diagram (Choreography)
- Process diagram — процесс внутри одного участника (пула): последовательность задач, шлюзов, событий. Основной вид для as-is/to-be на проекте SA.
- Collaboration diagram — тип BPMN-диаграммы с несколькими пулами на одном листе: кто кому отправляет сообщения; message flow между пулами. Не путать с «collaboration» в смысле совместной работы команды. Нужен, когда важно межорганизационное или межсистемное взаимодействие без детализации каждого процесса.
- Choreography — акцент на протоколе обмена (кто инициирует сообщение, кто отвечает), без внутренней логики участников. Реже на практике SA, но полезен при согласовании интеграционных сценариев с 03.05.01 Виды интеграции (точка-точка, ESB, API-led).
Black-box и white-box пулы
Пул (Pool) — участник процесса (организация, система, роль верхнего уровня).
- Black-box pool — пустой пул или только старт/конец: участник есть, внутренняя логика не детализируется (внешний банк, маркетплейс, legacy-система). Соответствует внешней сущности на 03.01.02 Моделирование контекста системы (Context Diagram).
- White-box pool — внутри показан процесс с задачами и шлюзами: детализация участника, которого вы проектируете или оптимизируете.
Перед BPMN-моделированием зафиксируйте на context diagram, какие участники остаются black-box, а какой пул раскрываете в to-be.
Три уровня моделирования
OMG выделяет три целевых уровня:
| Уровень | Назначение | Для SA |
|---|---|---|
| Descriptive | Эскиз для обсуждения с бизнесом | Воркшопы, первичный as-is |
| Analytical | Точная спецификация веток, исключений, данных | Основной уровень системного аналитика |
| Executable | Модель для BPMN-движка (Camunda, Flowable) | Передача в разработку автоматизации — 06.02.04 Работа с Camunda |
Системный аналитик чаще работает на аналитическом уровне: модель должна быть однозначной для согласования, трассировки в требования и 02.04.01 Верификация и валидация (V&V) — без обязательной deployable-разметки под конкретный движок. Analytical-модель не обязана быть исполняемым XML; Executable — только когда команда реально деплоит процесс в BPMS.
3. Как применяется в работе аналитика
Когда BPMN, а когда другая нотация
Ответ на вопрос из §1: выбирайте нотацию по типу вопроса, а не по привычке команды.
| Вопрос | Нотация | Почему |
|---|---|---|
| Кто что делает, в каком порядке, с ветвлениями и ролями? | BPMN | Orchestration, регламенты, as-is/to-be, BPMS |
| Как данные движутся между процессами и хранилищами? | DFD — 03.04.02 Диаграмма потоков данных (DFD) | Фокус на потоках данных, не на исполнителях |
| Как декомпозировать функцию «что на входе — что на выходе»? | IDEF0 — 03.04.03 IDEF0 и его применение | Функциональные блоки и интерфейсы ICOM |
| Цепочка создания ценности, событийные цепочки? | VAD/EPC — 03.04.04 Цепочка создания ценности (VAD) и EPC | Стратегический и event-driven взгляд |
| Поток внутри UML-стека, детализация прецедента? | Activity Diagram — 03.02.02 Диаграмма деятельности (Activity Diagram) | Алгоритмы внутри системы, связь с UC |
| Какие сценарии поддерживает система с точки зрения актёров? | Use Case Diagram — 03.02.01 Диаграмма прецедентов (Use Case Diagram) | Границы функциональности без пошагового потока |
BPMN и Activity Diagram пересекаются по смыслу «поток работ», но BPMN сильнее там, где нужны роли, message flow между участниками и стандарт для BPMS. Детализацию прецедента в пошаговый поток часто переносят с UC-диаграммы на Activity или BPMN — в зависимости от того, важны ли межсистемные сообщения.
Жизненный цикл модели на проекте
- As-is — собираете и согласуете на elicitation (02.02.02 Воркшопы, фасилитация и совместные сессии): фиксируете текущую логику до проектирования изменений.
- To-be — проектируете в рамках согласованного scope; каждый новый шаг и ветка — кандидат в backlog требований. Процессные модели легко раздувают scope: сверяйте to-be с границами решения и приоритетами (02.05.03 Управление объёмом (Scope Creep) и ожиданиями, 02.05.02 Управление приоритетами в условиях изменчивости).
От шага процесса к требованиям
Схема трассировки для спецификации:
Шаг BPMN → FR / User Story → Критерии приёмки → Тест-кейс
↘ NFR (время, надёжность) → [[08.02 Нефункциональные требования (НФТ) — классификация и стандарты]]
↘ Service task / message → API-контракт → [[03.05.03 Спецификации контрактов (OpenAPI, AsyncAPI, Protobuf)]] / [[03.01.04 Интерфейсы и интеграционные взаимодействия]]
↘ Data object «Заказ» → атрибуты в [[03.03.03 Словарь данных (описание)]]Практика на проекте:
- Каждой значимой задаче или подпроцессу — идентификатор (например,
T-012). - В 02.03.03 Спецификация требований (SRS, Use Case, User Story) или 10.01.08 Шаблон сквозной фичи (BPMN-процесс) — таблица: ID шага, описание, FR/US, AC, связанные data objects и service tasks.
- Матрица трассировки — 02.03.04 Трассировка требований (концепция) и 10.01.15 Шаблон матрицы трассировки.
Так процесс становится основой для 02.04.02 Критерии приёмки (Acceptance Criteria) и 02.04.01 Верификация и валидация (V&V).
Пример процесса
Покупатель присылает заказ и на диаграмме остаётся чёрным ящиком. Магазин — белый ящик: продажи проверяют наличие, склад резервирует товар, затем продажи ждут оплату. Если оплаты нет сутки, заказ отменяют. Если товара нет, покупателя уведомляют и процесс заканчивается. Файл можно открыть в 07.04 Инструменты моделирования (Sparx EA, Lucidchart, draw.io) или bpmn.io.
<?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_intro_order" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.0.0">
<bpmn:collaboration id="Collaboration_intro_order"><bpmn:participant id="in_buyer" name="Покупатель" /><bpmn:participant id="in_shop" name="Магазин" processRef="process_intro" /><bpmn:messageFlow id="Message_0" name="Заказ" sourceRef="in_buyer" targetRef="in_s" /></bpmn:collaboration>
<bpmn:process id="process_intro" name="Магазин" isExecutable="false"><bpmn:laneSet id="LaneSet_in_shop"><bpmn:lane id="in_sales" name="1. Продажи"><bpmn:flowNodeRef>in_s</bpmn:flowNodeRef><bpmn:flowNodeRef>in_g</bpmn:flowNodeRef><bpmn:flowNodeRef>in_bill</bpmn:flowNodeRef><bpmn:flowNodeRef>in_wait</bpmn:flowNodeRef><bpmn:flowNodeRef>in_timer</bpmn:flowNodeRef><bpmn:flowNodeRef>in_no</bpmn:flowNodeRef><bpmn:flowNodeRef>in_ne</bpmn:flowNodeRef></bpmn:lane><bpmn:lane id="in_wh" name="2. Склад"><bpmn:flowNodeRef>in_res</bpmn:flowNodeRef><bpmn:flowNodeRef>in_ship</bpmn:flowNodeRef><bpmn:flowNodeRef>in_ok</bpmn:flowNodeRef><bpmn:flowNodeRef>in_cancel</bpmn:flowNodeRef><bpmn:flowNodeRef>in_ce</bpmn:flowNodeRef></bpmn:lane></bpmn:laneSet><bpmn:startEvent id="in_s" name="1.1 Заказ"><bpmn:outgoing>Flow_0</bpmn:outgoing><bpmn:messageEventDefinition id="in_s_def" /></bpmn:startEvent><bpmn:exclusiveGateway id="in_g" name="1.2 Товар в наличии?"><bpmn:incoming>Flow_0</bpmn:incoming><bpmn:outgoing>Flow_1</bpmn:outgoing><bpmn:outgoing>Flow_2</bpmn:outgoing></bpmn:exclusiveGateway><bpmn:serviceTask id="in_bill" name="1.5 Выставить счёт"><bpmn:incoming>Flow_4</bpmn:incoming><bpmn:outgoing>Flow_5</bpmn:outgoing></bpmn:serviceTask><bpmn:receiveTask id="in_wait" name="1.6 Ожидать оплату"><bpmn:incoming>Flow_5</bpmn:incoming><bpmn:outgoing>Flow_6</bpmn:outgoing></bpmn:receiveTask><bpmn:boundaryEvent id="in_timer" name="сутки" attachedToRef="in_wait" cancelActivity="true"><bpmn:outgoing>Flow_8</bpmn:outgoing><bpmn:timerEventDefinition id="in_timer_def" /></bpmn:boundaryEvent><bpmn:sendTask id="in_no" name="1.3 Уведомить об отсутствии"><bpmn:incoming>Flow_2</bpmn:incoming><bpmn:outgoing>Flow_3</bpmn:outgoing></bpmn:sendTask><bpmn:endEvent id="in_ne" name="1.4"><bpmn:incoming>Flow_3</bpmn:incoming></bpmn:endEvent><bpmn:serviceTask id="in_res" name="2.1 Зарезервировать товар"><bpmn:incoming>Flow_1</bpmn:incoming><bpmn:outgoing>Flow_4</bpmn:outgoing></bpmn:serviceTask><bpmn:manualTask id="in_ship" name="2.2 Передать в доставку"><bpmn:incoming>Flow_6</bpmn:incoming><bpmn:outgoing>Flow_7</bpmn:outgoing></bpmn:manualTask><bpmn:endEvent id="in_ok" name="2.3"><bpmn:incoming>Flow_7</bpmn:incoming></bpmn:endEvent><bpmn:userTask id="in_cancel" name="2.4 Отменить заказ"><bpmn:incoming>Flow_8</bpmn:incoming><bpmn:outgoing>Flow_9</bpmn:outgoing></bpmn:userTask><bpmn:endEvent id="in_ce" name="2.5"><bpmn:incoming>Flow_9</bpmn:incoming></bpmn:endEvent><bpmn:sequenceFlow id="Flow_0" sourceRef="in_s" targetRef="in_g" /><bpmn:sequenceFlow id="Flow_1" name="да" sourceRef="in_g" targetRef="in_res" /><bpmn:sequenceFlow id="Flow_2" name="нет" sourceRef="in_g" targetRef="in_no" /><bpmn:sequenceFlow id="Flow_3" sourceRef="in_no" targetRef="in_ne" /><bpmn:sequenceFlow id="Flow_4" sourceRef="in_res" targetRef="in_bill" /><bpmn:sequenceFlow id="Flow_5" sourceRef="in_bill" targetRef="in_wait" /><bpmn:sequenceFlow id="Flow_6" sourceRef="in_wait" targetRef="in_ship" /><bpmn:sequenceFlow id="Flow_7" sourceRef="in_ship" targetRef="in_ok" /><bpmn:sequenceFlow id="Flow_8" name="SLA" sourceRef="in_timer" targetRef="in_cancel" /><bpmn:sequenceFlow id="Flow_9" sourceRef="in_cancel" targetRef="in_ce" /></bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_intro_order">
<bpmndi:BPMNPlane id="BPMNPlane_intro_order" bpmnElement="Collaboration_intro_order">
<bpmndi:BPMNShape id="in_buyer_di" bpmnElement="in_buyer" isHorizontal="true"><dc:Bounds x="80" y="40" width="1618" height="120" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_shop_di" bpmnElement="in_shop" isHorizontal="true"><dc:Bounds x="80" y="250" width="1618" height="806" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_sales_di" bpmnElement="in_sales" isHorizontal="true"><dc:Bounds x="110" y="250" width="1588" height="482" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_wh_di" bpmnElement="in_wh" isHorizontal="true"><dc:Bounds x="110" y="732" width="1588" height="324" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_s_di" bpmnElement="in_s"><dc:Bounds x="153" y="318" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="138" y="362" width="66" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_g_di" bpmnElement="in_g" isMarkerVisible="true"><dc:Bounds x="345" y="311" width="50" height="50" /><bpmndi:BPMNLabel><dc:Bounds x="334" y="265" width="72" height="28" /></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_bill_di" bpmnElement="in_bill"><dc:Bounds x="808" y="296" width="180" height="80" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_wait_di" bpmnElement="in_wait"><dc:Bounds x="1072" y="296" width="180" height="80" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_timer_di" bpmnElement="in_timer"><dc:Bounds x="1144" y="358" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="1142" y="402" width="40" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_no_di" bpmnElement="in_no"><dc:Bounds x="280" y="454" width="180" height="80" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_ne_di" bpmnElement="in_ne"><dc:Bounds x="352" y="634" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="357" y="678" width="27" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_res_di" bpmnElement="in_res"><dc:Bounds x="544" y="778" width="180" height="80" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_ship_di" bpmnElement="in_ship"><dc:Bounds x="1336" y="778" width="180" height="80" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_ok_di" bpmnElement="in_ok"><dc:Bounds x="1607" y="800" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="1612" y="844" width="27" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_cancel_di" bpmnElement="in_cancel"><dc:Bounds x="1336" y="936" width="180" height="80" /></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="in_ce_di" bpmnElement="in_ce"><dc:Bounds x="1607" y="958" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="1612" y="1002" width="27" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0_di" bpmnElement="Flow_0"><di:waypoint x="189" y="336" /><di:waypoint x="345" y="336" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1"><di:waypoint x="395" y="336" /><di:waypoint x="634" y="336" /><di:waypoint x="634" y="778" /><bpmndi:BPMNLabel><dc:Bounds x="403" y="318" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2"><di:waypoint x="370" y="361" /><di:waypoint x="370" y="454" /><bpmndi:BPMNLabel><dc:Bounds x="378" y="367" width="27" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_3_di" bpmnElement="Flow_3"><di:waypoint x="370" y="534" /><di:waypoint x="370" y="634" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4"><di:waypoint x="724" y="818" /><di:waypoint x="898" y="818" /><di:waypoint x="898" y="376" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_5_di" bpmnElement="Flow_5"><di:waypoint x="988" y="336" /><di:waypoint x="1072" y="336" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_6_di" bpmnElement="Flow_6"><di:waypoint x="1252" y="336" /><di:waypoint x="1426" y="336" /><di:waypoint x="1426" y="778" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_7_di" bpmnElement="Flow_7"><di:waypoint x="1516" y="818" /><di:waypoint x="1607" y="818" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_8_di" bpmnElement="Flow_8"><di:waypoint x="1162" y="394" /><di:waypoint x="1162" y="976" /><di:waypoint x="1336" y="976" /><bpmndi:BPMNLabel><dc:Bounds x="1190" y="402" width="27" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_9_di" bpmnElement="Flow_9"><di:waypoint x="1516" y="976" /><di:waypoint x="1607" y="976" /></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Message_0_di" bpmnElement="Message_0"><di:waypoint x="889" y="160" /><di:waypoint x="889" y="196" /><di:waypoint x="171" y="196" /><di:waypoint x="171" y="318" /><bpmndi:BPMNLabel><dc:Bounds x="897" y="171" width="40" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
Что читать на диаграмме:
- Два пула. «Покупатель» — participant без процесса, «Магазин» — white box с дорожками «Продажи» и «Склад». Между ними message flow «Заказ» на message start. Sequence flow не выходит из магазина. Атрибуты заказа — в 03.03.03 Словарь данных (описание).
- XOR «Товар в наличии?». Ветка «да» — service task «Зарезервировать товар» (её можно связать с API-контрактом), затем счёт и ожидание оплаты. Ветка «нет» — send task и завершение.
- На receive task «Ожидать оплату» — прерывающий граничный таймер «сутки»: по таймауту сотрудник отменяет заказ. Детали граничных событий — 06.02.01 Потоки, шлюзы, события.
Практики моделирования
- «Солнечный день» сначала — основной поток, затем исключения и ошибки.
- Не смешивайте уровни детализации — сложные фрагменты выносите в подпроцессы или Call Activity на отдельные листы (06.02.03 Типовые паттерны BPMN).
- Имена задач: «Глагол + существительное» («Зарезервировать товар», не «Резервирование»).
- Условия на исходящих потоках из XOR/OR — явно, даже если «очевидно».
- Дорожки — для передачи ответственности внутри одного пула и согласования с владельцами процесса (02.02.02 Воркшопы, фасилитация и совместные сессии).
- Верификация модели — синтаксическая проверка в BPMN-редакторе (Camunda Modeler, Signavio); логическая согласованность — рецензия с бизнесом и 02.04.01 Верификация и валидация (V&V).
- Хранение — файлы
.bpmn(XML) в 07.05 Системы контроля версий (Git) для документации; исполняемый уровень и деплой — 06.02.04 Работа с Camunda.
LLM и ИИ-ассистенты могут ускорить черновик диаграммы из текста, но результат требует ручной проверки семантики (типы событий, message vs sequence flow). Подробнее — 11.05 Интеграция LLM с инструментами аналитика и 11.07 Практические кейсы применения LLM в анализе.
4. Типовые ошибки и ограничения
| Ошибка | Почему мешает | Как избежать |
|---|---|---|
| Sequence flow между пулами | Нарушает семантику BPMN; путает orchestration и messaging | Message flow между пулами; sequence — только внутри пула |
| Дорожка вместо отдельного пула для внешнего участника | Скрывает межсистемную границу; sequence «перепрыгивает» контракт | Внешний участник — black-box пул; lane — только внутри одного участника |
| XOR-merge как AND | Лишние или «зависшие» токены при параллельных ветках | Семантика merge — 06.02.01 Потоки, шлюзы, события |
| Black-box без context diagram | Неясны границы системы | Сначала 03.01.02 Моделирование контекста системы (Context Diagram), затем пулы |
| Справочник вместо спецификации | Диаграмма на 80 элементов не согласуется | Декомпозиция, уровень Analytical, ссылка на поддиаграммы |
| Descriptive на этапе передачи в dev | Двусмысленность веток и условий | Явный уровень модели; executable — только с командой BPMS |
| ИИ без рецензии | Синтаксически верный, семантически неверный XML | Валидация аналитиком; не подмена 02.04.01 Верификация и валидация (V&V) |
BPMN слабо подходит как единственная модель данных (для этого — 03.03.01 ER-диаграммы (сущность-связь) и DFD) и не заменяет контракт API (03.05.03 Спецификации контрактов (OpenAPI, AsyncAPI, Protobuf)).
Связи с другими разделами базы
- 06.02.01 Потоки, шлюзы, события — полный справочник элементов потока и семантики шлюзов.
- 06.02.02 Пулы, дорожки и артефакты — swimlanes, data objects, message flow.
- 06.02.03 Типовые паттерны BPMN — паттерны ветвления, компенсации, интеграций.
- 06.02.04 Работа с Camunda — исполняемый BPMN и движок.
- 03.04.02 Диаграмма потоков данных (DFD) · 03.04.03 IDEF0 и его применение · 03.04.04 Цепочка создания ценности (VAD) и EPC — альтернативные нотации ветки 03.04.
- 03.01.02 Моделирование контекста системы (Context Diagram) — границы участников до BPMN.
- 10.01.08 Шаблон сквозной фичи (BPMN-процесс) — артефакт процесса в спецификации.
- 04.01 Форматы документов (Vision&Scope, BRD, SRS, FRD) — размещение BPMN в проектной документации.
Источники и дополнительные материалы
Книги и стандарты
- OMG (2011). Business Process Model and Notation (BPMN) 2.0. Официальная спецификация; актуальная редакция 2.0.2 (2013). URL: https://www.omg.org/spec/BPMN/2.0/
- Фройнд, Я., Рюккер, Б. (2019). Real-Life BPMN. 4-е издание. Практический справочник с примерами.
- Силвер, Б. (2012). BPMN Method and Style. 2-е издание. Правила и стили декларативного моделирования.
- Дюма, М., Ла Роса, М., Мендлинг, Я., Рейхерс, Г. (2018). Fundamentals of Business Process Management. 2-е издание. URL: https://fundamentals-of-bpm.org/
Практические справочники и инструменты
- Camunda (2024). BPMN 2.0 Reference. URL: https://camunda.com/bpmn/reference/
- bpmn.io — веб-редактор и демо BPMN 2.0. URL: https://bpmn.io/
- Camunda. BPMN 2.0 Poster — наглядная шпаргалка по элементам. URL: https://camunda.com/bpmn/