BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс для системных аналитиков » Модуль 2.1. BPMN 2.0 на практике

Модуль 2.1. BPMN 2.0 на практике

Темы: пулы/потоки, события, шлюзы, паттерны. Артефакты: модель процесса As-Is/To-Be («заказ-оплата-доставка»). Практика: смоделировать процесс заказа.

 

BPMN 2.0 — это «общий язык» бизнеса и ИТ, который позволяет одинаково понимать сценарии с участием людей, систем и внешних контрагентов. Для системного аналитика BPMN — связка между SRS, AC/BDD, DMN (правила) и API/событиями. Ниже — практический гайд «как сотруднику», с паттернами, ошибками и чек-листами качества.

 

Быстрый ориентир по нотации (что, где и зачем)

Коллаборация (Collaboration) — главный вид диаграммы для интеграций: пулы (Pools) — участники, потоки сообщений (Message Flows) — взаимодействие между пулами.
Процесс (Process) — внутри пула: ленты (Lanes) для ролей/подразделений; задачи (Tasks), события (Events), шлюзы (Gateways), подпроцессы (Sub-process).
Хореография/Конверсация — реже в ИТ-проектах; используем Collaboration в 90% случаев.

Токены — как «бежит» выполнение

  • Стартовое событие порождает токен.
  • Шлюз AND дублирует токен; Join AND ждёт все входящие токены.
  • XOR пропускает 1 ветку; OR — одну или несколько (динамический join).
  • Без End Event токен «зависает» — процесс не завершён.

 

Пулы, ленты и потоки: что помещать и как именовать

  • Пул = организация/внешняя система: Покупатель, Витрина/Checkout, Платежный провайдер (PSP), Склад, Перевозчик.
  • Ленты = роли/подсистемы внутри пула: Оператор саппорта, Сервис Payments, Сервис Orders.
  • Последовательные потоки (Sequence Flow) — только внутри пула.
  • Потоки сообщений (Message Flow) — между пулами (HTTP-запросы, вебхуки, e-mail).
  • Именование задач: Глагол + Объект («Проверить корзину», «Создать платёж»), событий — Событие + Объект («Событие: таймаут PSP»).

 

События: стартовые/промежуточные/конечные и пограничные

Что должно быть в «инвентаре» SA

  • Start: простое, по сообщению (Message), по таймеру (Timer), по условию (Conditional).
  • Intermediate: ожидание сообщения (catch), отправка сообщения (throw), Timer, Signal, Link (связка частей диаграммы).
  • Boundary Events (пограничные) — на границе задачи/подпроцесса: Error, Timer, Message, Escalation, Compensation; прерывающие (сплошная кайма) и непрерывающие (штриховая).
  • End: обычное, Error End (выброс ошибки), Terminate End (убивает все активные токены), Escalation End.

 

Практика «заказ-оплата-доставка»

  • На задаче «Авторизовать платёж» — пограничный Timer 25 сек (прерывающий): при срабатывании — ветка «Принять как асинхронный» → 202 Accepted, публикация события payment.pending.
  • На подпроцессе «Доставка» — непрерывающий Message Boundary для входящих вебхуков трекинга: процесс продолжается, но фиксируем статус.

 

Шлюзы (Gateways) и как ими не стрелять себе в ногу

  • Exclusive (XOR) — одна ветка. Всегда задавайте Default Flow.
  • Parallel (AND) — параллелит/синхронизирует; Join AND ждёт все токены → возможен дедлок, если одна ветка условно не порождает токен.
  • Inclusive (OR) — динамический выбор нескольких веток; Join OR ждёт только те, что стартовали.
  • Event-based — выбор по входящему событию (сообщение/таймер/сигнал), а не по условию данных. Нельзя смешивать с задачами — только события.
  • Complex — редко; заменяйте явной логикой/подпроцессом.

 

Анти-паттерн: ставить XOR там, где фактически нужна реакция на событие (например, «или пришёл вебхук, или истек таймер») — используйте Event-based Gateway.

 

Подпроцессы, multi-instance и транзакции

  • Collapsed Sub-process — «сверните» детали, если они не нужны на верхнем уровне.
  • Event Sub-process — локальный «перехватчик» событий (ошибка/эскалация/сообщение/таймер) в контексте процесса.
  • Multi-instance (маркеры внизу задачи): например, «Собрать посылки по позициям заказа» (по списку OrderItems).
  • Транзакционный подпроцесс + компенсации — для саг: «Создать этикетку» ↔ «Отменить этикетку», «Зарезервировать товар» ↔ «Снять резерв».

 

Данные: объекты, хранилища и документы

  • Data Object — вход/выход задачи («Заказ», «Платёж», «Трекинг»).
  • Data Store — постоянное хранилище (БД, DWH, файловое).
  • В BPMN не моделируем структуру данных — только факт использования. Схему атрибутов держим в ER/словаре данных.

 

Библиотека паттернов (e-commerce сквозняк)

Чекаут и платёж (с асинхронным PSP)

  1. Start → «Проверить корзину» → «Создать заказ» → «Инициировать платёж (REST)».
  2. Event-based Gateway: либо Message Catch «payment.captured», либо Timer «25 сек».
  3. Если Message — «Подтвердить заказ», End.
  4. Если Timer — «Вернуть 202 Accepted», «Поставить задачу на ретраи», End.
    Пограничные события: на «Инициировать платёж» повесьте Error Boundary (decline) → «Отменить заказ/резерв».

 

Доставка и трекинг

  • «Сформировать отгрузку» → Parallel Gateway: «Печать этикетки» && «Упаковка».
  • Message Boundary на подпроцессе доставки для приема вебхуков tracking.updated.
  • Timer Boundary «Просрочка SLA» → «Эскалация/компенсация клиенту» (Escalation Event).

 

Возврат (RMA) с инспекцией и рефандом

  • Start (Message: запрос RMA) → «Создать RMA» → «Отправить ярлык/назначить забор» → Event Sub-process (Message: посылка получена) → «Инспекция» → XOR: «Approved» → «Инициировать рефанд»; «Rejected» → «Отправить уведомление/закрыть».

 

Качество модели: чек-лист (DoD BPMN)

  • Название процесса = глагол + объект (напр., «Оформить заказ»).
  • Есть Start и хотя бы один End, нет «висящих» токенов.
  • Межсистемные вызовы — Message Flow (не Sequence).
  • Ошибки/таймауты — через Boundary/Event-based (а не XOR «как-будто»).
  • У каждого XOR — Default Flow.
  • Пулов не > 7, элементов на уровне — не > ~12.
  • На каждой диаграмме — легенда/версия/владелец/ссылка на SRS/AC/контракты.
  • Все задачи наблюдаемы: где лог/метрика/трейс.
  • Есть линк на DMN (если есть правила) и на OpenAPI/Events (если есть интеграции).

 

Типовые ошибки и риски

Ошибка

К чему приводит

Как чинить

Sequence между пулами

Потеря семантики интеграции

Заменить на Message Flow

Нет End

Висящие инстансы/ресурсы

Добавить End, проверить ветки

XOR вместо Event-based

«Счастливый» путь, нет таймаута

Event-based + Timer/Message

AND-join без гарантий токенов

Дедлок

Убедиться, что все ветки стартуют; иначе OR-join

Нет обработки ошибок/откатов

«Подвисшие» заказы/резервы

Boundary Error/Compensation, Event Sub-process

Логика в названиях

Неоднозначность

Чёткие глаголы, DMN/AC для условий

Пул «Пользователь» с задачами

Путаница

Для внешнего клиента используйте Message Start/End

Гигантский «ковёр»

Нечитаемо

Декомпозируйте на подпроцессы/диаграммы уровня

 

Связи BPMN с другими артефактами

  • SRS: § «Сценарии/Состояния» — ссылка на BPMN; в требованиях — отсылки к узлам/событиям.
  • AC/BDD: каждое ответвление alt → AC/feature-файл.
  • DMN: гейтвеи решения → таблицы DMN (скидки, SLA, лимиты).
  • OpenAPI/Events: Message Flows ↔ эндпоинты/события (ссылки на OpenAPI/AsyncAPI).
  • RTM: строка «REQ-… ↔ BPMN node(s) ↔ AC ↔ TestCase».

 

Артефакты модуля: шаблоны As-Is / To-Be

As-Is (минимум полей в заголовке)

Process: Возврат товара (As-Is)  |  Версия 1.0  |  Владелец: SA
Границы: с момента обращения клиента до завершения возврата денег
SLAs: T1 — первичный ответ ≤ 1ч; T2 — рефанд ≤ 5 раб.дней
Известные боли: нет трекинга, ручные сверки, задержки PSP
Ссылки: SRS §7, регламент №…

 

To-Be

Process: Возврат товара (To-Be)  |  Версия 1.2
Изменения: добавлен Event Sub-process «Получен трек»; таймеры SLA; компенсации; webhooks
Зависимости: PSP v1.4 (Async), Carrier API v2, Rules DMN v3

 

Практика: смоделировать процесс заказа (90–120 мин)

Задание: сделать Collaboration-диаграмму «Заказ-Оплата-Доставка» (To-Be) с пулами: Витрина/Checkout, Payments, Warehouse, Carrier, Customer (как внешний пул с сообщениями), Support.

Обязательные элементы:

  1. Event-based Gateway на ожидании платёжного результата (Message vs Timer).
  2. Boundary Timer на задаче «Доставить» — SLA нарушено → «Эскалация» (Escalation).
  3. Split shipment — Multi-instance Sub-process по OrderItems.
  4. Message Flows для PSP/Carrier вебхуков; дедупликация и акк как отдельная задача.
  5. Compensation на «Печать этикетки» (отмена при отказе/откате).
  6. Минимум 2 End Events: «Заказ завершён» и «Заказ отменён/истёк».

 

Критерии зачёта:

  • Межсистемные вызовы оформлены Message Flow, альтернативы смоделированы событиями.
  • Есть таймеры/ошибки/эскалации; нет висящих токенов.
  • Линки на OpenAPI/Events и на DMN (SLA/скидки).
  • Читаемость: ≤ 12 элементов на уровне, остальное — в подпроцессы.

 

Вопрос–Ответ

В: Когда использовать Event-based Gateway вместо XOR?
О: Когда выбор зависит не от данных, а от внешнего события/времени (вебхук, таймер). Пример: «или придёт payment.captured, или наступит таймаут 25 сек».

 

В: Как показать ретраи/идемпотентность?
О: Отдельная задача «Поставить повтор», рядом — Boundary Timer и цикл; в подписи указать политику backoff. Идемпотентность отражайте в AC/контрактах, на диаграмме — комментарий «повтор безопасен».

 

В: Пользователь — это пул или лента?
О: Внешний актор — отдельный пул без внутренних задач (только Message Start/End). Внутренние роли — ленты.

 

В: Чем компенсаторное событие отличается от отмены задачи?
О: Компенсация — откатывает завершённое действие (после End компенсации процесс продолжается); отмена — прерывает текущее.

 

В: Можно ли показывать SQL/внутренности сервисов?
О: Нет. BPMN — про процесс и взаимодействия. Данные/SQL — в ER/контрактах. В BPMN — только факт использования Data Objects/Stores.

 

В: Как показать SLA доставки?
О: Таймеры (Timer Boundary) + DMN (правила расчёта обещанной даты) + Event Sub-process «Нарушен SLA» (эскалация/компенсация).

 

Теория — короткая памятка

  • Collaboration = пулы + message flows; процесс = задачи/шлюзы/события внутри пула.
  • Обработку ошибок делаем событиями (Boundary/Error/Escalation), а не XOR.
  • Event Sub-process — лучший способ локально ловить таймеры/сообщения/ошибки.
  • AND-join ждёт все токены — проверяйте, что они действительно появляются.
  • Default Flow у XOR — маст-хэв.
  • Подробности скрывайте в подпроцессы; на верхнем уровне — не более ~12 элементов.
  • Всегда указывайте версию/легенду/владельца и ставьте ссылки на SRS/AC/контракты/DMN.

 

Что сдаём по модулю (артефакты)

  1. As-Is возврата/доставки (1 диаграмма Collaboration).
  2. To-Be «Заказ-Оплата-Доставка» (1–2 диаграммы с подпроцессами).
  3. Список ошибок/таймеров/эскалаций (таблица с условиями и владельцами).
  4. Связи: таблица «узел BPMN → AC/BDD → OpenAPI/Events → DMN».

 

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Модуль 1.6. Acceptance & критерии готовности
Следующая статья →
Модуль 2.2. Решения и правила: DMN, decision tables
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • АО «Новосибирскэнергосбыт» является единственным гарантирующим поставщиком электроэнергии на территории г. Новосибирска и Новосибирской области. Предприятие отвечает за электроснабжение клиентов, закупая электроэнергию на оптовом рынке, регулируя поставку электроэнергии через договорные отношения с сетевыми организациями.

  • Компания ООО "Комус" - один из лидеров российского рынка оптовых продаж офисных товаров и техники. Компания поставляет широкий ассортимент продукции - от канцелярских принадлежностей до компьютерной техники и офисной мебели.

  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • KazanExpress — торговая площадка, на которой представлены товары с бесплатной доставкой за один день в более, чем 70 городах России. Аналитическое решение на базе платформы данных Yandex Cloud позволило компании обеспечить демократизацию данных. Результат — принятие обоснованных решений на всех уровнях, увеличение лояльности партнеров и повышение прозрачности бизнеса.

    Мониторинг ключевых метрик в реальном времени минимизировал недополученную прибыль и обеспечил рост прибыльных направлений, а возможности геоаналитики сервиса Yandex DataLens помогли за короткое время проанализировать локации для открытия более 90 ПВЗ в 25 городах России и заложить основу для роста компании.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.