Как стать автором
Обновить

Как сделать BPMN-диаграмму чуточку лучше

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.1K
Всего голосов 34: ↑34 и ↓0+37
Комментарии8

Комментарии 8

Вместо инструкций в Альфа-Банке теперь BPMN схемы? Или они в дополнение?

BPMN - хорошее дополнение тестового описания, одно не исключает другое)

Где-то используются BPMS движки

Всем любителям BPMN посвящается:

Тут другие читатели верно заметили про первый пример, где так легко и непринуждённо упущен собирающий шлюз. Это нарушение логики, потенциально ведущее к потерю контроля за процессом.

Решается просто.
Что общее у вариантов? Завершение - значит, его оставляем. Собирающий шлюз для соблюдения формальной логики. А что надо, чтобы показать то, что хочет автор? Просто зафиксировть результат процесса, например, доком (артефактом) в каждом варианте.
Это гораздо правильнее, потому что в реальной системе комменты на схеме останутся комментами, а артефакт на схеме - это реальный запись в системе с результатом процесса

Да, есть разные подходы, через фиксацию результата артефактом - тоже приемлемый вариант.

Но иногда правильнее иметь несколько завершающих событий, т.к это может быть подпроцессом и в зависимости от результата - далее будут осуществляться разные сценарии. В примере статьи, возможно, это не очень очевидно, т.к схемы сильно упрощены

О чём и речь.
Вы сами зафиксировали, что все варианты оканчиваются одним остановом (завершением процесса) - так соблюдайте же это. Вы понимаете, что один останов и три останова - это, соответственно, одна и три независимые сущности в системе? Вам проще контролировать одну точку или три?
Что за содержание между ветвлением и окончанием этого ветвления - вообще не важно, артефакт или суперсложный подпроцесс. Но если вы сейчас, как нарисовали, отпустите на волю этот подпроцес, вы легко и непринуждённо вернётесь назад (плодя логические петли), совершенно забыв про обязательное условие - зафиксировать результат ветвления в собирающем шлюзе.

В реальных системах мы обязаны соблюдать формальную логику, а не "и так же очевидно, чё тут усложнять". Потому что она не для красоты, а для контроля (человеком или движком) начала и завершения всей модели. Поэтому такие примеры, на мой взгляд, вредны.

все зависит от того, что идет после завершения данного подпроцесса, если у нас далее идет разделение на сильно разнящиеся подпроцессы - то иногда удобнее иметь три раздельных завершения.

НО при этом еще раз подчеркну, что ваш вариант решения - тоже приемлимый (фиксировать различные варианты через артифакты)

Все зависит от контекста

Зарегистрируйтесь на Хабре, чтобы оставить комментарий