Нотация BPMN. Практическое моделирование

Нотация BPMN. Практическое моделирование

Нотация BPMN давно является стандартом моделирования бизнес-спроцессов. Мы подготовили для вас более 100 иллюстраций, с описанием наиболее распространенных вопросов, связанных с практическим использованием нотации BPMN и моделированием бизнес-процессов
Нотация BPMN. Практическое моделирование

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

BPMN 2.0. События начала 

У каждого процесса должно быть, как минимум, одно событие начала 

Событие начала, это уже свершившееся действие, результат действия или условие, при котором начинается выполнение процесса. Можно сказать, что событие начала, это спусковой̆ крючок, который стартует выполнение процесса. Например: событие Получено обращение клиента является событием начала процесса Обслуживание клиентов. 

 У каждого процесса должно быть как минимум одно событие начала.png 

У каждого процесса должно быть, как минимум, одно событие начала. Если вы не можете определить событие начала, то есть два варианта: 

  1. Границы процесса определены не верно
  2. Это не процесс, а группа процессов, что, опять же, говорит о том, что процесс и его границы, определены не верно. 

Несколько событий начала 

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

  • Получено задание руководителя на подготовку отчета 

  • Последний рабочий день месяца

  • Последний день перед отпуском 

 Несколько событии начала.png

Каждое из этих событий будет стартовать выполнение одного и того же процесса. 

Множественное событие начала 

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

Множественное событие начала.png

Параллельное множественное событие начала 

Если для старта процесса необходимо наступление нескольких событий, то в нотации BPMN необходимо использовать событие начала типа Параллельное множественное.

Параллельное множественное событие начала.png

Разные события начала 

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

 Разные события начала.png

Размещение событий начала в пулах 

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

 Размещение событии начала в пулах 1.png

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

 Размещение событии начала в пулах 2.png

Связь событий между уровнями декомпозиции 

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

Связь событии между уровнями декомпозиции.png 

Также нужно помнить о том, что промежуточное событие на уровне 1, будет являться событием начала последующего процесса, на уровне 2. Ниже, промежуточное событие Получен заказ от клиента, является событием начала для следующего процесса Обработка клиентских заказов. 

 Связь событии между уровнями декомпозиции2.png

Множественное событие начала процесса может быть декомпозировано на уровне ниже 

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

 Множественное событие начала процесса может быть декомпозировано на уровне ниже.png

Событие начала в подпроцессе не должно иметь типа 

Если тип события начала определено на более высоком уровне, то на уровнях ниже событие указывается без типа. Правило нотации BPMN. 

 Событие начала в подпроцессе не должно иметь типа.png

Правильное наименование события начала 

Одна из распространенных ошибок - называть событие начала наименованием входа, объекта, поступающего в процесс. Например - заявка клиента. Это неверно. Заявка клиента, это документ, объект. А вот событие начала, да и любое событие, должно отражать свершившийся факт законченного действия. Вместо “Заявка клиента”, правильно назвать “Получена заявка клиента”. В названии события обязательно должен быть указан объект и действие, событие, которое с объектом произошло. Наименование события должно иметь форму деепричастного оборота. 

 Правильное наименование события начала.png

Если событие начала инициировано ролью 

Если событие начала инициируется кем-то, это нужно обязательно отобразить на диаграмме. Для этого необходимо отобразить пул инициатора и соединить его с событием начала, через информационный̆ поток. Только в нотации BPMN можно показать инициатора событий. 

 Если событие начала инициировано ролью.png

Связь события начала одного процесса и события окончания другого 

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

1 - Добавить номер, или наименование связанного процесса, в название события. 

Связь события начала одного процесса и события окончания другого1.png 

2 - Отобразить значок процесса, который инициирует событие начала и связать его с событием. Это нарушает правила нотации BPMN, но в определенных целях можно и нарушить правила)) 

Связь события начала одного процесса и события окончания другого2.png 

3 - Связать события через программные функции. В таком случае программа позволит увидеть взаимосвязи и перейти к связанному событию окончания. 

Связь события начала одного процесса и события окончания другого3.png 

4 - Использовать ссылку на процесс или событие окончания. 

Связь события начала одного процесса и события окончания другого4.png 

BPMN 2.0. Промежуточные события 

Событие - условие развития процесса 

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

 Событие - условие развития процесса.png 

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

 Событие - условие развития процесса2.png

Событие, это всегда результат какого-то процесса или операции 

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

Событие это всегда результат какого-то процесса или операции.png 

И даже, если действие нам неизвестно, можно указать пул-источник промежуточного события. 

Событие это всегда результат какого-то процесса или операции2.png 

События определяют сценарии процесса 

Так как, по правилам BPMN, события определяют условия развития событий, с их помощью можно (и нужно) показывать условия выбора сценария. Это можно делать с помощью ветвления, или без него. Из операции, или процесса, может исходить несколько потоков, ведущих к событиям. Такая комбинация говорит о том, что выбор следующей̆ операции зависит от того, какое событие произошло. При этом может произойти только одно событие. 

 События определяют сценарии процесса.png

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

 События определяют сценарии процесса2.png

Не прерывающие событие 

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

 Не прерывающие событие.png

Несколько событий подряд 

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

Несколько событии подряд.png 

Несколько условий, для развития процесса 

Могут возникать такие ситуации, когда выполнить операцию можно только если выполнено несколько условий. Для отражения такой ситуации можно использовать множественные события или несколько событий, объединенных в шлюз.

Несколько условии для развития процесса.png

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

Несколько условии для развития процесса2.png 

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

Событие, как условие времени 

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

Событие как условие времени.png 

Событие как условие времени2.png

События на границах операций / процессов 

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

События на границах операции  процессов.png

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

 События на границах операции  процессов2.png

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

События на границах операции  процессов3.png 

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

События на границах операции  процессов4.png 

По ходу выполнения операции может возникнуть и несколько событий. Нотация BPMN представляет весьма широкие возможности для моделирования разных ситуаций. 

 События на границах операции  процессов5.png

BPMN 2.0. События окончания

Событие окончания - условие завершения процесса 

События окончания, как и другие события, это условие. Только событие окончания определяет условие, при котором процесс считается выполненным. У каждого процесса должно быть, как минимум, одно событие окончания.

 Событие окончания - условие завершения процесса.png

Несколько событий окончания 

Также, как процесс может начинаться с нескольких событий начала, так и завершаться процесс можем несколькими условиями. Точнее - процесс может завершаться несколькими вариантами условий, а значит, разными события окончания

Несколько событии окончания.png

Множественное событие окончания 

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

Множественное событие окончания.png

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

Множественное событие окончания2.png 

Событие окончания может быть событием начала другого процесса 

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

Расположение событий окончания 

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

Расположение событии окончания.png

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

Расположение событии окончания2.png 

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

Расположение событии окончания3.png 

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

 Расположение событии окончания4.png

Нет такого события окончания, как “Процесс завершен” 

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

BPMN 2.0. Все события

Событие, это завершенное действие, а не объект 

Еще раз повторю - событие, это завершенное действие, в названии которого есть объект и действие, которое выполнено с этим объектом. Не “Приказ”, а “Получен приказ”. 

Связь документов и событий

Если вы хотите показать, что событие связно с каким то документом, то это можно сделать с помощью ассоциации. 

 Связь документов и событии.png

Парные события нужно называть одинаково 

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

 Парные события нужно называть одинаково.png

Называйте события состояния так, чтобы было понятно, какое состояние оно отражает 

Событие типа Состояние, отражает изменение некого состояния. Например, “Превышен кредитный лимит”. Соответственно, называть такие события нужно, чтобы было понятно, какое состояние оно отражает. Нельзя назвать событие просто “Кредитный лимит”, потому что становится непонятно, что с этим лимитом произошло.

 Называите события состояния так чтобы было понятно какое состояние оно отражает.png

BPMN 2.0. Шлюзы 

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

BPMN 2.0. Шлюзы1.png 

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

 BPMN 2.0. Шлюзы2.png

То есть шлюзы бывают исходящие и включающие. Или, проще говоря - ветвления и объединения. 

Шлюз, это логическая конструкция 

Существует 3 логические конструкции, которые используются в шлюзах: 

·      Исключающее ИЛИ - такая конструкция означает, что при наступлении какого-то из условий, процесс сразу пойдет по сценарию, соответствующему этому условию. То есть наступление одного условия, исключает все остальные. Пример: в составе бизнес-ланча вы можете выбрать только один напиток - чай, кофе или компот. Но не можете выбрать несколько, или все напитки.

Шлюз это логическая конструкция.png

Шлюз это логическая конструкция2.png

·      ИЛИ - а в этой логической конструкции вы уже можете выбирать. Причем можете выбрать любые комбинации, из представленных условий. То же и с процессом - он может развиваться при выполнении одного, или нескольких условий. Причем в любой комбинации.  

В примере ниже, может идти дождь, или снег, или туман, а может и дождь со снегом, а может все вместе. Соответственно, если идет и снег, и дождь, нужно выполнить сценарии для этих действий. То есть придется взять и зонт, и санки))) 

 Шлюз это логическая конструкция3.png

Шлюз это логическая конструкция4.png

·      И - конструкция предполагает несколько условий, но они все должны быть выполнены. Это значит, что процесс далее будет выполняться сразу по нескольким потокам. Тут как с фитнес залами - вы не можете купить абонемент только в бассейн, или только в тренажерный зал. Только и туда, и туда. Только И. 

 Шлюз это логическая конструкция5.png

Шлюз это логическая конструкция6.png

Комплексный шлюз

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

1 - В кармане пачка сигарет, 

2 - И лампа не горит, И врут календари. 

 Комплексныи шлюз.png

В следующем примере тоже два варианта: 

1 - В кармане пачка сигарет И есть билет на самолет; 

2 - Группа крови на рукаве. Обе комбинации приводят к одному сценарию. 

 Комплексныи шлюз2.png

Шлюз, это не принятие решения 

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

 Шлюз это не принятие решения.png

Условия развития событий

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

 Условия развития событии.png

Ветвление без шлюза 

Нотация BPMN предполагает конструкцию, которая, фактически, соответствует ветвлению, но без значка ветвления. Из операции, или процесса, может исходить несколько потоков, по которым процесс будет развиваться при наступлении соответствующих событий, или выполнении условий. Такая конструкция эквивалентна ветвлению типа “исключающее ИЛИ”. Это означает, что в таком случае, процесс будет развиваться лишь по одному сценарию. По тому, которое определено наступившим событием.

 Ветвление без шлюза.png

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

Наименование шлюза 

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

 Наименование шлюза.png

Шлюз без названия 

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

Ветвление, а затем объединение не имеет смысла 

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

 Ветвление а затем объединение не имеет смысла.png

Такие конструкции не имеют смысла. И вот почему: 

·      Если вы хотите показать, что нужно выполнить действия в определенном порядке, то так и нужно показывать. 

 Ветвление а затем объединение не имеет смысла2.png

·      Если вы хотите показать, что нужно выполнить несколько действий и порядок выполнения не важен, то замените на процедуру и укажите, что порядок выполнения не важен. 

 Ветвление а затем объединение не имеет смысла3.png

·      Если хотите показать, что нужно выполнить действия, но порядок и состав не важен, замените на процесс Ad Hoc. В процессе Ad hoc не важно в каком порядке и, даже, в каком составе будут выполнены операции. Вы можете добавить сахар, сливки, корицу в кофе в любом составе и порядке. 

 Ветвление а затем объединение не имеет смысла4.png

Заменяйте сложны ветвления бизнес-правилами 

Сложные ветвления не только сложны для создания, но и понять их бывает не очень просто. Поэтому лучше такие конструкции заменять бизнес-правилами. 

 Заменяите сложны ветвления бизнес-правилами.png

Пример сложного ветвления, лишь при трех условиях 

Заменяите сложны ветвления бизнес-правилами2.png

То же сложное ветвление, но представленное в виде бизнес-правила 

Суть объединяющего шлюза 

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

 Суть объединяющего шлюза.png

Комплексный шлюз. Объединение

Суть объединяющего шлюза2.png

Объединяющий шлюз И 

Наименование объединяющих шлюзов 

Нет необходимости называть объединяющие шлюзы. Можно давать текстовые аннотации к ним, там, где они логически не совсем очевидны. 

BPMN 2.0. Пулы / дорожки 

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

 BPMN 2.0. Пулы  дорожки.png 

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

Название пула должно соответствовать роли 

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

Пулы, дорожки и организационная иерархия 

Дорожки можно размещать в пулах, а в дорожках, можно размещать... другие дорожки)) И ограничения, на количество вложений нет. Это свойство удобно использовать, если вы хотите показать не просто взаимодействие ролей или сотрудников, но также отобразить организационную иерархию. К примеру, пул Отдел качества, в него будет вложена дорожка Специалист по качеству, которая будет отражать должность, а далее будет вложена дорожка Контроллер, которая будет отражать роль, которую выполняет специалист по качеству. 

Пулы дорожки и организационная иерархия.png 

Иерархия пулов и дорожек 

Использование иерархии также позволяет моделировать процессы таким образом, чтобы декомпозиция процессов совпадала с декомпозицией организационной структуры. Это означает, что процессы верхнего уровня будут соответствовать департаментам, процессы второго уровня отделам, и так далее. Правда, в таком случае, придется вводить дополнительные единицы, которые позволят объединить разные организационные единицы в рамках процесса. 

Если процесс выполняется одной ролью, не надо располагать пул на следующем уровне декомпозиции 

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

 Если процесс выполняется однои ролью не надо располагать пул на следующем уровне декомпозиции.png

Переход процесса от одного пула к другому 

Пулы могут соединяться между собой только информационными потоками. 

 Переход процесса от одного пула к другому.png

Информационные потоки между пулами 

Дорожки операции в дорожках соединяются рабочими потоками

Переход процесса от одного пула к другому2.png

Рабочий поток между дорожками   

Лучшая связь между элементами разным пулов выглядит как связь между операциями и событиями. То есть действие в одном пуле, порождает событие в другом пуле. Хотя может быть и прямая связь “операция - операция” 

 Переход процесса от одного пула к другому3.png

Лучший способ отразить переход процесса между пулами  

Пулы могут обмениваться документами. 

Переход процесса от одного пула к другому4.png 

Обмен документами между пулами

BPMN 2.0. Объекты данных 

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

Связи документов с элементами BPMN 

В нотации BPMN, документ может быть связан с: 

  • Операциями и процессами, через направленную ассоциацию 

  • Событиями, через ненаправленную ассоциацию

  • Пулами, через направленную ассоциацию

  • Базами данных, через простое соединение 

 Связи документов с элементами BPMN.png

Связи объектов данных с другими элементами 

Направление ассоциации имеет значение 

Если стрелка ассоциации идет от документа к операции, это означает, что документ используется для выполнения операции. Если стрелка ассоциации идет от операции к документу, это означает, что документ появляется в результате выполнения операции. 

 Направление ассоциации имеет значение.png

Направление связи документа и операции имеет значение

Также и с базой данных, если стрелка идет от базы данных к операции, это значит, что операция считывает информацию из базы данных. Если стрелка идет от операции, к базе данных, это значит, что в результате выполнения операция, информация записывается в базу данных. 

 Направление ассоциации имеет значение2.png

Направленные ассоциации с базами данных 

Отражение состояний объекта данных 

Один документ может иметь разные состояния. Например, договор может иметь состояния: проект, согласован, утвержден, подписан. Состояния разные, а документ один. В таком случае наименование документа должно быть одинаковым, а состояние указывается в квадратных скобках. 

Отражение состоянии объекта данных.png 

Отражение состояния документа с помощью наименования 

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

Копии объектов данных 

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

 Копии объектов данных.png

М- оригинал. А - копия

Вывод - используйте копии объектов только тогда, когда вы хотите показать использование одного и того же объекта в разных местах. Это справедливо для объектов всех типов. Копии можно использовать и в рамках одной диаграммы, чтобы не “тянуть” длинные и неудобные для восприятия стрелки.

 Копии объектов данных2.png

Копии можно использовать для оптимизации диаграммы 

Ссылки на процессы, которые являются источниками документов 

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

1 - Если ПО позволяет, то можно создать физическую ссылку на процесс. В Visual Paradigm для этого используется функция Trace. 

 Ссылки на процессы которые являются источниками документов.png

Связь документов и процессов-источников

2 - Использовать наименование процесса- источника и процесса-потребителя, в наименовании документа. Это достаточно делать только в тех местах, где документ первый и последний раз появляется на диаграмме. Также можно в наименовании указать ссылку на процесс.

 Ссылки на процессы которые являются источниками документов2.png

Использование наименование документа, для отражения процесса-источника документа

3 - Отобразить связь документа с процессом, можно используя значок процесса, который будет обозначать ссылку на него. 

 Ссылки на процессы которые являются источниками документов3.png

Отображение процессов-источников документов, с помощью отдельного элемента 

Связь документа и базы данных 

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

Связь документа и базы данных.png

Связи документов и баз данных

Базы данных для отражения ИТ системы 

Значок базы данных можно использовать для отражения взаимодействия операций и процессов с ИТ системами.

 Базы данных для отражения ИТ системы.png

Использование значка БД в качестве ИТ системы 

Прикрепляйте документы к объектам данных 

Если ПО для моделирования позволяет это делать. Это очень хорошая практика, потому что позволяет сразу ознакомиться с документами, которые используются в процессе. Если речь об электронном документе, то будет совсем отлично, если в описании объекта данных, вы перечислите поля данных, которые существуют в электронном документе. 

Прикрепляите документы к объектам данных.png 

BPMN 2.0. Операции / процессы 

Операция - элементарное действие, которое выполняется в процессе. Элементарное - действие, которое нельзя декомпозировать и раскрыть в качестве процесса. Процесс - совокупность операций и подпроцессов. 

Наименование операций

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

Не используйте одинаковые названия операций и процессов 

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

Используйте подпроцессы, для разделения процесса на этапы 

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

 Используите подпроцессы для разделения процесса на этапы.png

Разделение процесса на этапы, с помощью подпроцессов 

Используйте процедуры вместо цепочек операций

Процедура - простая последовательность операций. В процедурах нет ветвлений и условий. Если участок процесса представляет из себя последовательно операций, замените такой участок операцией типа Процедура. Сама процедура должна быть описана в описании операции или в виде отдельного документа.

 Используите процедуры вместо цепочек операции.png

Сворачивайте последовательные операции в процедуры 

Заменяйте сложные участки с ветвлениями бизнес-правилами 

Вместо разветвленной цепочки условий, лучше использовать операции типа Бизнес-правило. Только не забудьте описать или прикрепить описание правила. Использование процедур и правил существенно упрощает моделирование, восприятие и использование модели. 

Цикличные операции / процессы 

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

Цикличные операции  процессы.png 

Операция со стандартным циклом   

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

 Цикличные операции  процессы2.png

Множественный цикл

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

 Цикличные операции  процессы3.png

Преобразовывайте циклические участки процесса в подпроцессы. В данном примере подпроцесс имеет развернутый вид.   

Не используйте циклы там, где их можно заменить циклическими операциями с компенсацией. 

 Цикличные операции  процессы4.png

Компенсация вместо циклической конструкции 

Ручная, автоматическая и пользовательская операция 

Если вы хотите акцентировать внимание на том, что операция выполняется участником процесса вручную, без применения автоматизированных средств и инструментов, задайте тип операции Ручная. Если нужно показать, что операция выполняется с применением каких-то систем, инструментов, программного обеспечения, задайте тип операции Пользовательская. В таком случае обязательно нужно будет указать системы, которые использует пользователь в данной операции. Если операция выполняется системой или сервисом автоматически, без участия пользователя, то используйте тип операции Автоматическая. Такую операцию лучше отражать в пуле ИТ системы, которая ее выполняет, или обозначить иначе.

 Ручная автоматическая и пользовательская операция.png

Ручная, пользовательская и автоматическая операция   

BPMN 2.0. Потоки 

Рабочий поток 

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

Рабочии поток.png 

Рабочий поток

Поток работ отражает порядок выполнения операций и процессов 

Рабочий поток может существовать только в пределах одного пула. Таково правило нотации BPMN. Если поток выходит за пределы пула, он должен быть преобразован в информационный. 

Поток работ отражает порядок выполнения операции и процессов.png 

Рабочий и информационный поток в диаграмме 

Рабочий поток не может соединять шлюз и другой пул 

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

Рабочии поток не может соединять шлюз и другои пул.png 

Правила наименования 

Давать наименование рабочему потоку по умолчанию не нужно Условные потоки нужно называть в соответствии с теми условиями, по которым они становятся активными. 

Располагайте потоки работ горизонтально 

Лучше всего, когда потоки работ идут слева направо, горизонтально. Не стоит располагать элементы процесса таким образом, чтобы поток работ сначала шел слева направо, а потом справа налево.

Располагаите потоки работ горизонтально.png

Направление потоков всегда идет слева направо

Избегайте пересечений потоков. Конечно, не всегда это возможно, но помните - чем меньше пересечений потоков, тем лучше. 

Потоки сообщений используются для отображения коммуникаций между участниками процесса. 

Они не могут соединять объекты внутри одного пула. 

Потоки сообщении используются для отображения коммуникации между участниками процесса.png 

Потоки сообщений между пулами 

Информационный поток не содержит в себе документы, лишь информацию 

Поэтому, документы нужно отображать отдельно.

 Информационныи поток не содержит в себе документы лишь информацию.png

Информационный поток не содержит в себе документы. Их, документы, нужно располагать отдельно 

Неочевидные информационное потоки должны иметь название. 

Очевидный информационный поток, это поток, который исходит из операции или процесса, в наименовании которого понятно, что и куда передается. К примеру, если информационный поток исходит из операции “Отправить отчет”, то такой поток является очевидным. Если поток идет из операции “Подготовка к инвентаризации”, то оно является неочевидным, потому что непонятно, что именно отправляется или получается с этим потоком 

BPMN 2.0. Композиция диаграмм 

Оставляйте достаточно свободного пространства 

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

 Оставляите достаточно свободного пространства.png

Пространство между элементами диаграммы должно быть достаточным 

Выравнивание элементов диаграммы 

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

 Выравнивание элементов диаграммы.png

Выравнивание элементов диаграммы относительно друг друга 

Однотипные элементы должны иметь один размер 

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

 Однотипные элементы должны иметь один размер.png

Ограничьте количество элементов на диаграмме 

Не стоит перегружать диаграмму. Чтобы избежать перегрузки, ограничьте количество элементов, которое будет расположено на диаграмме. Лучше разбейте сложные процессы на подпроцессы. Существует общая рекомендация, которая утверждает - диаграмма должна размещаться на печатном листе формата А4. Не всегда это возможно, но при композиции диаграммы всегда нужно учитывать, как и в каком виде ее дальше будут читать. 

 Ограничьте количество элементов на диаграмме.png

Диаграмма явно перегружена

Ограничьте количество элементов на диаграмме2.png  

Оптимально для восприятия

Сохраняйте основную ось процесса - поток по умолчанию 

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

 Сохраняите основную ось процесса - поток по умолчанию.png

Поток по умолчанию - центральная ось. Остальное, это ответвления от него 

Проверяйте грамматику и пунктуацию 

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

BPMN 2.0. Частные случаи 

Когда пул - черный ящик

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

 Когда пул - черныи ящик.png

Роль в процессе может быть представлена в виде пула - черного ящика   

Кстати, очень удобная конструкция. Позволяет описать процесс, не заходя на территорию, которая не входит, или неподвластна процессу.

Взаимодействие пользователя с ИТ системой

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

 Взаимодеиствие пользователя с ИТ системой

Взаимодействие пользователя и ИТ системы 

Сбор результатов параллельных потоков

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

 Сбор результатов параллельных потоков.png

На этом мы завершаем сборник примеров практического использования нотации BPMN, для моделирования бизнес-процессов. 

Пожалуйста, пишите в комментариях свои вопросы. На их основе мы будем выпускать новые сборники примеров. 

 

 

Статьи по теме
Как устранить потери и улучшить процессы

Первое, что необходимо сделать, чтобы улучшить процессы — устранить потери. Некоторые потери можно устранить относительно просто. Другие потребуют серьёзных организационных и процессных изменений.

Читать
Как найти потери в процессах

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

Читать
7 потерь, которые убивают эффективность бизнеса

7 потерь — действия, которые существуют в бизнес-процессах организации, не создают ценности, но требуют денег.

Читать
Производительность и эффективность: что важнее?

… на мой вопрос, что для вас важнее, производительность или эффективность, я снова получил ответ: разве это не одно и то же? Нет. Производительность и эффективность это разные вещи и в этой стат...

Читать
Построение диаграммы SIPOC

Диаграмма SIPOC представляет собой высокоуровневое представление процесса. Диаграмма позволяет определить и компактно отобразить самое главное: поставщиков, входы, процессы, продукты и клиентов процес...

Читать
Анализ разрывов

Анализ разрывов - инструмент, который позволяет определить шаги, для повышения эффективности не только отдельных процессов, но и бизнеса в целом. Проще говоря, анализ разрывов позволяет понять, ...

Читать
Диаграммы и поиск потерь в бизнес-процессах

Поиск потерь в процессах может начинаться с анализа диаграмм. С точки зрения управления бизнес-процессами, потеря – то, что не создает ценности для внешнего или внутреннего клиента. Потери приводят к ...

Читать
Процессный подход - 10 фундаментальных принципов

Наверное, я никогда устану повторять фундаментальные принципы, на которых основывается процессный подход к управлению. Причина тому проста — не усвоив принципы, нет смысла двигаться дальше.

Читать
Регламент взаимодействия. Что нужно знать

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

Читать
Комментарии
Комментировать

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