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: выбирайте нотацию по типу вопроса, а не по привычке команды.

ВопросНотацияПочему
Кто что делает, в каком порядке, с ветвлениями и ролями?BPMNOrchestration, регламенты, 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 — в зависимости от того, важны ли межсистемные сообщения.

Жизненный цикл модели на проекте

От шага процесса к требованиям

Схема трассировки для спецификации:

Шаг 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 Словарь данных (описание)]]

Практика на проекте:

  1. Каждой значимой задаче или подпроцессу — идентификатор (например, T-012).
  2. В 02.03.03 Спецификация требований (SRS, Use Case, User Story) или 10.01.08 Шаблон сквозной фичи (BPMN-процесс) — таблица: ID шага, описание, FR/US, AC, связанные data objects и service tasks.
  3. Матрица трассировки — 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 Товар&#10;в наличии?"><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 Выставить&#10;счёт"><bpmn:incoming>Flow_4</bpmn:incoming><bpmn:outgoing>Flow_5</bpmn:outgoing></bpmn:serviceTask><bpmn:receiveTask id="in_wait" name="1.6 Ожидать&#10;оплату"><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 Уведомить&#10;об отсутствии"><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 Зарезервировать&#10;товар"><bpmn:incoming>Flow_1</bpmn:incoming><bpmn:outgoing>Flow_4</bpmn:outgoing></bpmn:serviceTask><bpmn:manualTask id="in_ship" name="2.2 Передать&#10;в доставку"><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 Отменить&#10;заказ"><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 Потоки, шлюзы, события.

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

  1. «Солнечный день» сначала — основной поток, затем исключения и ошибки.
  2. Не смешивайте уровни детализации — сложные фрагменты выносите в подпроцессы или Call Activity на отдельные листы (06.02.03 Типовые паттерны BPMN).
  3. Имена задач: «Глагол + существительное» («Зарезервировать товар», не «Резервирование»).
  4. Условия на исходящих потоках из XOR/OR — явно, даже если «очевидно».
  5. Дорожки — для передачи ответственности внутри одного пула и согласования с владельцами процесса (02.02.02 Воркшопы, фасилитация и совместные сессии).
  6. Верификация модели — синтаксическая проверка в BPMN-редакторе (Camunda Modeler, Signavio); логическая согласованность — рецензия с бизнесом и 02.04.01 Верификация и валидация (V&V).
  7. Хранение — файлы .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 и messagingMessage 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)).

Связи с другими разделами базы

Источники и дополнительные материалы

Книги и стандарты

  • 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/

Практические справочники и инструменты