Идея стандарта

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 требует освоения, особенно для сложных выражений
  • Не покрывает машинное обучение или нечёткую логику