DMN
Стандарт OMG для формализации бизнес-правил и решений через декларативные таблицы и графы зависимостей.
Идея стандарта
Decision Model and Notation отделяет логику принятия решений от логики потока процесса. Многие BPMN-модели исторически содержали XOR-шлюзы с большим количеством веток и сложной логикой — это делало диаграммы нечитаемыми и трудно поддерживаемыми.
DMN предлагает выносить эту логику в отдельную модель решения, на которую BPMN-задача типа Business Rule Task ссылается через DMN Reference.
Два уровня DMN
Decision Requirements Diagram (DRD)
Граф зависимостей, показывающий, какие решения от каких входных данных и подрешений зависят. Это структурный уровень.
Decision Tables
Таблицы решений, реализующие конкретную логику. Каждая строка таблицы — правило: при определённой комбинации входов получается определённый выход.
FEEL — Friendly Enough Expression Language
DMN включает специальный язык выражений FEEL, разработанный для записи бизнес-правил в форме, понятной аналитикам и одновременно строго формализованной. FEEL поддерживает арифметику, логику, работу со строками, датами, списками, контекстами.
Применение
- Скоринг кредитных заявок
- Расчёт страховых тарифов
- Маршрутизация заявок
- Конфигурация продуктов
- Расчёт скидок и бонусов
- Принятие медицинских решений
Сильные стороны
- Прямая исполняемость в DMN-движках (Camunda DMN, Drools, IBM ODM)
- Высокая читаемость таблиц решений
- Простота поддержки бизнес-правил без участия разработчиков
- Полная интеграция с BPMN через Business Rule Task
Ограничения
- Меньшая известность по сравнению с BPMN
- FEEL требует освоения, особенно для сложных выражений
- Не покрывает машинное обучение или нечёткую логику