Есть ли языки/нотации для записи бизнес-логики?

Например, в математике пишут "x + y < z" потому что это понимается проще чем
текст "сумма x и y меньше чем z".
Есть ли подобные нотации для записи требований?

Допустим есть некая система букинга отеля. И для нее хотим записать требование

"Скидка доступна если у пользователя подключен тарифный план Платина и срок его действия не закончен на дату бронирования."

Можно было бы записать как-то так:

Скидка "Платина" Доступна ЕСЛИ
(Тарифный план пользователя = Платина)
И (День окончания Бронирования <= День окончания срока действия тарифа).

Какую проблему решаю:
- Повысить читаемость требований
- Формализировать/Унифицировать запись
- Сделать возможным переиспользование требований (типа условия скидки, один раз определили и используем в других формулах)

Есть ли какие-то подобные системы записи?

Обн.
* Нет цели задокументировать абсолютно весь в проект в такой нотации.
* Мне это видится как такой DDD в псевдокоде, без привязки к инфраструктуре или языку программирования.
* Что-то похожее https://www.flexrule.com/business-rules
  • Вопрос задан
  • 1375 просмотров
Пригласить эксперта
Ответы на вопрос 4
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Диаграммы же. Смотрите в сторону с текстовой базой. Типа UML и прочее. Вот еще тоже неплохой онлайн инструмент для создания диаграмм из текстового описания: https://www.mermaidchart.com/landing (можно запустить локальный инстанс у себя).

UPD1:
Пример флоу-диаграммы русалки:
flowchart TD
    A[Полльзователь] --> B(Скидка)
    B --> C{Тариф - платина?}
    C -->|Да| D[15%]
    C -->|Нет| E[5%]

Картинка:
spoiler
6687d7a27a876258314167.png

UPD2: Можно взять что-то гибридное типа ЯП Дракон.
Ответ написан
@alexalexes
Похоже на попытку реализовать язык Prolog или его форк.
Любые попытки использовать это в документации приведет к тому, что нужно будет всем учиться читать такие записи, и техническому писателю учиться правильно формировать их без логических ошибок.
Лучше подобные фичи описывать как теоремы/гипотезы в математике:
1. Условие применимости фичи (область действия теоремы/гипотезы).
2. Суть фичи (формулировка теоремы).
3. Результат применения (что получаем).
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
"x + y < z"

То что вы хотите - это не язык бизнес-логики а обычная блок-схема алгоритма или
диаграмма использования.

Формализировать/Унифицировать запись

Вы должны задать себе вопрос для кого это делается. Кто будут те люди, которые обязаны
будут по должностной читать эти вещи. Соберите с них фидбеки. Я вообще не уверен
что у них с этим проблема. Может они вам скажут что им такое не надо и проблема в другом.

Посмотрите еще графический стандарт BPML (Business Process Modeling Language).
Посмотрите также обычные Activity Diagram, Use-Case Diagrams из рисовалок UML.
Ответ написан
enkryptor
@enkryptor
software developer (TS/JS, C#), Agile enthusiast
У нас для хранения бизнес-правил использовался BPML. Это XML-описание схемы процесса, которую можно представить визуально. То есть человекочитаемый формат тут — именно визуальная диаграмма, схема процесса. Для автоматизации же есть много клиентов и библиотек для работы с таким форматом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы