Это действительный BPMN?

https://i.imgur.com/VUQzidR.png

У меня есть ворота XOR, связанные с 4 действиями. Затем каждое действие подключается к одному и тому же подпроцессу. Не ищу ответов или решений — просто общие советы, связанные с BPMN-моделированием.

Моя проблема в том, что я думаю, что этот шаблон проектирования можно было бы смоделировать лучше. Я также не уверен, что это действительно. У кого-нибудь есть указатели в правильном направлении?

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


person math_is_for_nerds    schedule 16.11.2019    source источник
comment
Вам ответили на этот вопрос?   -  person Jankapunkt    schedule 17.04.2020


Ответы (2)


Если вы действительно заботитесь о достоверности, вы можете использовать настраиваемый линтер bpmn, например https://github.com/bpmn-io/bpmnlint (я не имею никакого отношения к этому проекту).

С помощью такого инструмента вы можете статически проверять распространенные ошибки проектирования.

person Jankapunkt    schedule 16.11.2019

Что касается вашего второго вопроса, «действительно ли это», я бы сказал: почти.

  • Диаграмма 1: Закрытие шлюза XOR должно быть размещено перед действием «Проверить компонент». Все четыре стрелки отдельных действий «Найти компонент xxx» должны сливаться с этим шлюзом, тем самым отражая исходный шлюз XOR, из которого выходят четыре стрелки. От этого слияния/закрытия шлюза XOR вы должны нарисовать одну стрелку к «Проверить компонент».
  • Диаграмма 2. Вы также должны поместить закрывающий шлюз XOR в конце вашего процесса, непосредственно перед конечным событием, чтобы объединить стрелки от ветви «Нет» третьего шлюза XOR и действия «Записать другие отклонения». В противном случае ваш процесс никогда не завершится, если вы выполните «Запись других аномалий», потому что от этого действия нет исходящей стрелки.

Хотя приведенные выше пункты являются объективными, поскольку они относятся к синтаксису BPMN, ответ на ваш первый вопрос, «можно ли смоделировать этот шаблон проектирования лучше», основан на мнении. Вот что я хотел бы улучшить

  • На диаграмме 1 вопрос "Компонент успешно проверен?" никогда не ответят «да». Что происходит, когда все компоненты действительно проверены? Ваш процесс застрял бы.
  • У меня такое чувство, что вам не нужны отдельные действия «Найти компонент x» на этом уровне. На диаграмме расположение каждого компонента не меняет ход последующих действий. Я бы предпочел рассматривать это действие как первую задачу в подпроцессе «Проверить компонент». Но если вы настаиваете на моделировании таким образом, то я бы превратил эксклюзивный шлюз в инклюзивный и добавил бы стрелку, которая ведет прямо к конечному событию. Таким образом, может произойти несколько проверок или ни одной проверки, и вы не застрянете.
  • Учитывая два предыдущих пункта, вы можете представить цикл «Для каждого» с последовательным действием, как показано ниже. Три горизонтальные линии означают, что вы повторяете подпроцесс последовательно (а не параллельно). Сам этот процесс я бы рассматривал как подпроцесс более широкого процесса, такого как «Техническое обслуживание автомобиля».

введите здесь описание изображения

person khalito    schedule 18.11.2019