Главное не результат, главное процесс

BPM-блог Анатолия Белайчука

Необходимые и избыточные элементы BPMN: развилки

Полная палитра BPMN включает сотни элементов (если считать все возможные комбинации). И хотя профессионал знать их должен все, не надо стремиться все их использовать.

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

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

Попробуем ответить на эти вопросы и показать, какие элементы абсолютно необходимы, а без каких можно обойтись, заменив их другими.

Начнем с развилок.

1. Развилка “или/или”

Пытаться заменить эту развилку мы не будем.

Примечание: пустой ромб и ромб с косым крестом внутри - альтернативные варианты начертания одного и того же элемента. Ясно, что лучше выбрать (для себя или для организации) один вариант и придерживаться его.

2. Развилка “и” (параллельная)

Тоже вещь незаменимая.

3. Развилка “и/или”

Заменяется комбинацией развилок “или/или” и параллельной:

=

Развилка “и/или” полезна, так как моделирует вполне определенный и достаточно распространенный сценарий “набор независимых опций”; альтернативная реализация получается более громоздкой. Минус тот, что бизнес-пользователи схему справа поймут без дополнительных объяснений, а схему слева - вряд ли.

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

4. Комплексная развилка

Комплексная развилка управляет токенами на схождении нескольких потоков управления. Заменяется парой развилок или/или:

=

5. Развилка по событиям

Заменяется с помощью подпроцесса:

=

Это универсальная техника, позаимствованая у Брюса Силвера, пригодная для любых комбинаций событий.

Если одно из событий - получение сообщения, то можно использовать более простой прием:

6. Стартовая развилка по событиям

=

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

7. Параллельная стартовая развилка по событиям

=

Представляет в основном лишь академический интерес.

Выводы

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

О взаимозаменяемости событий и других элементах - в следующих статьях.

28.01.17 | Статьи |    

Комментарии (5)

  1. Андрей 28.01.17 16:24

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

  2. Дмитрий Бацюро 28.01.17 18:37

    “Развилка “и/или” полезна, так как моделирует вполне определенный и достаточно распределенный сценарий”.
    Видимо, “… и достаточно РАСПРОСТРАНЕННЫЙ сценарий”?

  3. Anatoly Belychook 28.01.17 18:38

    Спасибо, исправил.

  4. Андрей 20.03.17 19:13

    Упрощение сейчас в тренде:
    https://habrahabr.ru/post/319344/

  5. Anatoly Belychook 20.03.17 19:57

    Статья неплохая по содержанию, но хамская по форме. И она точно не про упрощение. Оставлю ваш комментарий в виде исключения, но обсуждать ее тут не надо.

Комментирование закрыто

Copyright © 2008-2024 Анатолий Белайчук. Спасибо Wordpress и Yahoo.  Контент  Комментарии