1. BPM. Неделя 2Mathias Weske – openHPI course on Business Process Modeling and Analysis – 2013
Перевод и адаптация на русский язык Дмитрий Оськин кафедра ЭИ БГЭУ
Моделирование и анализ бизнес процессов
2. Основы моделирования БП
2.1. Основы языка моделирования
2.2. Активности процесса
2.3. Эксклюзивные и параллельные шлюзы
2.4. Инклюзивные шлюзы и циклы
2.5. События начала и завершения
2.6. Промежуточные события
4. Основы языка моделирования
● Модель БП это абстрактное представление оригинала, обладающая
следующими признаками:
○ отображающим, абстрактным и прагматическим.
● При помощи языка моделирования БП описываются модели БП
○ Используя языковые конструкции представляются важные аспекты БП.
5. Основы языка моделирования
Язык состоит из:
● Понятий и их отношений (абстрактный синтаксис)
● Средств для обозначения понятий (конкретный синтаксис / нотация)
● Значений понятий (семантика)
Понятия задают:
● активности, последовательность действий, шлюзы и события
6. Основы языка моделирования
BPMN, версия 2
- Промышленный стандарт по управлению группой объектов
- 1.x версии: "Business Process Modeling Notation"
Визуальный язык моделирования процессов
- визуальный и гибкий язык
- позволяет использовать различные варианты концепций моделирования
BPMN не подходит для:
- моделирования орг. структур, ландшафта процессов
- структур данных, ИТ инфраструктуры
В большинстве проектов другие языки дополняют BPMN
7. Категории нотации и их элементы
потоковые объекты объекты связиартефакты
события
действия
шлюзы
аннотация
последовательность
обсуждаются на этой неделе
9. Действия процесса
● “БП состоит из набора действий”
● Действия - это единицы работы, для выполнения которых
требуется время
В рамках данной недели рассмотрим задачи, т.е. единичные активности не
предусматривающие декомпозицию
Учебный сценарий: выполнение заказа
Процесс запускается вводом деталей заказа в ИТ систему.
Заказанный продукт получают со склада, упаковывают и пересылают клиенту.
Счет - фактура высылается клиенту. После получения платежа заказ переходит в архив.
ввод
деталей
заказа
получение
платежа
получение
продукта
со склада
упаковка
продукта
осуществл
ение
пересылки
отправка
счет -
фактуры
архивация
заказа
10. Действия процесса и их
последовательность.
● “... выполняются согласованно”
● действия не могут выполнятся не зависимо друг от друга, существуют
ограничения на их выполнения
● Порядок выполнения действий задается потоком операций
- нотация: направляющая стрелка м/у действиями
- А В обозначает, что действие В не может начаться до тех пор, пока не
закончится действие А
- после прекращения действия А направляющая стрелка указывает, что В готово к
началу выполнения
ввод
деталей
заказа
получение
платежа
получение
продукта
со склада
упаковка
продукта
осуществл
ение
пересылки
отправка
счет -
фактуры
архивация
заказа
11. Экземпляры действий
● Экземпляры бизнес процесса содержат экземпляры действий
ввод
деталей
заказа
получение
платежа
получение
продукта
со склада
упаковка
продукта
осуществл
ение
пересылки
отправка
счет -
фактуры
архивация
заказа
● Каждый экземпляр действий проходит через несколько состояний
○ В каждый момент времени экземпляр действия может находится
лишь в одном состоянии
● Например
○ В начале лишь действие “ввод деталей заказа” готово к
исполнению
○ После завершения этого действия “получение продукта со
склада” готово к исполнению и т.д.
12. Экземпляры действий
Состояния экземпляров действий:
- Init: инициализирован, но не готов к выполнению
- Ready: готов к выполнению, может быть запущен
- Running: выполняется
- Terminated: завершен
- Skipped: больше не требуется
13. Экземпляры действий
Состояния экземпляров действий можно представить в виде
диаграммы переходов
Состояния и их переходы являются неотъемлемой семантической частью модели процесса
Примечание
Данная диаграмма является упрощенной версией, которой достаточно для нужд данного курса
14. Руководство по моделированию
Действия маркируются в стиле “глагол существительное”
Используется согласованная лексика
Мотивация
- Стиль “глагол существительное”, например, упаковка продукта
указывает на действие
- одно и тоже существительное должно использоваться лишь в случае
когда оно относится к одному домену
- согласованность лексики должна соблюдаться во всей модели,
например, с помощью глоссария терминов организации
15. получение
продукта со
склада
Действия и типы задач
● Задачи могут быть определенного типа, который, в дальнейшем,
характеризует задачу.
- Типы задач представлены в виде меток в верхнем левом углу
● Типы задач
Задача сообщения: получение/отправка сообщения от/к партнеру
Задача пользователь: задача выполняется вручную
Задача сервис: задача выполняется автоматически, например посредством ПО
ввод
деталей
заказа
получение
платежа
упаковка
продукта
осуществление
пересылки
отправка счет -
фактуры
архивация
заказа
16. BPMN атрибуты
● BPMN это больше чем визуальное представление
○ Атрибуты содержат дополнительную информацию об элементах
диаграммы
○ не все атрибуты имеют визуальное представление
○ как правило, на диаграмме не отображается вся информация модели
процесса
● Типы задач
○ Хранятся, как атрибуты, у которых есть визуальное представление
Примечание
Позже будут рассмотрены атрибуты у которых нет визуального представления
17. Аннотации
Аннотации могут быть добавлены в модель с целью улучшить
понимание модели.
- аннотация может быть добавлена любому элементу модели, для
более подробного описания этого элемента.
Аннотации не содержат информации о способе выполнения задачи
- но они могут содержать специфическую информацию, относительно
элемента задачи
получение
продукта со
склада
ввод
деталей
заказа
получение
платежа
упаковка
продукта
осуществление
пересылки
отправка счет -
фактуры
архивация
заказа
предполагается,
что продукт
есть на складе
19. Эксклюзивные и параллельные шлюзы
Сценарий (продолжение)
Процесс запускается вводом деталей заказа в ИТ систему.
Далее следует проверка наличия заказанного продукта на складе
Если продукт в наличии, то его доставляют со склада
Иначе, необходимо заказать материалы и произвести продукт
После чего продукт упаковывают и пересылают клиенту.
Счет - фактура высылается клиенту. После получения платежа заказ переходит в архив.
20. Шлюзы
Поток операций выражает лишь последовательность выполнения
действий, что не достаточно для нужд моделирования.
● Расширить описание выполнения действий можно путем
использования шлюзов
Шлюзы обозначаются в виде ромба, который содержит символ
определяющий характеристики шлюза
● Шлюзы применяются как для разделения, так и для слияния потоков
В данном разделе рассматриваются:
● Эксклюзивный шлюз на основе данных (XOR)
● Параллельный шлюз (AND)
21. Эксклюзивный шлюз
Эксклюзивный шлюз используется как для объединения так и для
разделения потоков.
● XOR разделитель
из нескольких альтернатив, выбирается лишь одна
оцениваются условия исходящих дуг потоков
● XOR соединение
сведение альтернативных фаз
22. Семантика эксклюзивных шлюзов
Семантика разделяющего XOR шлюза
● Исходящие дуги разделителя связаны с определёнными условиями
● Условия оцениваются в определенной последовательности
● Как только первая из дуг оценивается как «правда» подается сигнал
систему
● Оставшиеся дуги игнорируются
● Возможно наличие условия по умолчанию, которое оценивается в
последнюю очередь; его значение всегда «правда»
Пример
● Допустим, задан порядок оценивания как
○ Условие1, Условие 3, Условие 2, По умолчанию
○ Допустим, Условие1 оценено, как «ложь»
○ Допустим, Условие 3 оценено, как «правда»
● Действие D запускается, действия B, C, E игнорируются
Усл.1
Усл. 2
Усл. 3
23. Семантика эксклюзивных шлюзов
Усл.1
Усл. 2
Усл. 3
Семантика разделяющего XOR шлюза (выбор единственно возможной
дуги) сохраняется даже в случае «дублирования» условий
● В заданной ниже ситуации несколько условий оценены как «правда»
Пример
● Условие 1: Цена<200
● Условие 2: Цена<1000
● Условие 3: Цена <10000
● Порядок оценивания:
○ Условие 1, Условие 3, Условие 2, По умолчанию
● Для Цены =500 два условия оценены как правда,
но выполняется только активность D
Примечание
● Порядок оценки не связан с планом выполнения действий
24. Руководство по моделированию
Для эксклюзивного шлюза всегда необходимо
использовать условие по умолчанию
Причины:
● Если ни одна из активностей не будет оценена как “правда” и
отсутствует условие по умолчанию, то процесс не может быть
продолжен
● С целью выбора конкретного пути процесса в определенной
ситуации, убедитесь, что условия не “дублируются”,
25. AND(параллельные) шлюзы
Сценарий
...заказать материалы и произвести продукт
Далее последовательно продукт упаковывается и высылается клиенту
В тоже время клиенту, от которого ожидается оплата, высылается счет-фактура.
После того как продукт доставлен и получена оплата от клиента, заказ переводится в архив
26. AND(параллельные) шлюзы
● AND разделитель (параллельное разделение)
○ Все дуги выполняются
○ Допускается параллельное, независимое выполнение действий
○ AND разделитель не требует параллельного выполнения задач,
но допускает произвольное чередование и выполнение в любой
последовательности
27. AND(параллельные) шлюзы
AND соединение (синхронизированное соединение)
● Синхронизация всех входящих потоков
● Продолжение процесса возможно лишь после исполнения всех
входящих потоков
29. Сценарий (продолжение)
Сценарий
...если продукт в наличии, то его доставляют со склада
Иначе, необходимо заказать материалы и произвести продукт
В зависимости от типа продукта комплектующие могут быть заказаны у поставщика1 и
поставщика2
Также возможна ситуация, когда для изготовления товара требуется заказ комплектующих у
обоих поставщиков
После чего продукт упаковывают и пересылают клиенту.
Счет - фактура высылается клиенту. После получения платежа заказ переходит в архив.
31. Инклюзивный шлюз (OR)
Инклюзивный разделитель (OR split)
● используюеся для разделения Потока
операций на несколько альтернативных и
параллельных маршрутов.
● Исходя из условий выбирается любой не
пустой поток операций
● Все условия имеют оценку “правда”
● Поток по умолчанию используется лишь в
том случае, если все другие потоки
оценены как “ложь”
Инклюзивное слияние (OR join)
● Синхронизация всех ранее выбранных
входящих потоков
32. Инклюзивный шлюз (OR)
Такая конструкция шлюза обеспечивает не только высокую степень
гибкости модели, но и зависимую от других процессов семантику
выполнения
33. Циклы
● Циклы создаются при помощи XOR шлюза.
● Итерация цикла требует создания нового экземпляра действия
● В одном экземпляре процесса, для конкретного действия, может
существовать множество экземпляров действий
34. Не контролируемые потоки
● Действие может иметь несколько входящих и исходящих дуг потока.
● Такие потоки определяются как “не контролируемые”, при этом
○ определяется каждая дуга
○ исходящие потоки подлежат исполнению
● Не контролируемые потоки приводят к путанице
35. Рекомендации к моделированию
Используйте шлюзы для разделения и сведения потоков
• Причины
- неконтролируемый поток зачастую трудно понять
- каждый вид действий должен иметь один входящий и один исходящий
поток
• Исключение: Циклы
36. Рекомендации к моделированию
Избегайте смешанных шлюзов
Причины
● Разделение и сведение потоков обладают разным смыслом, и для большей ясности не
должно перемешиваться в одном шлюзе.
● Изменив в смешанном шлюзе поведение на характерное для разделения потоков,
меняется поведение для соединения потоков, что может привести к не желательным
результатам
смешанный шлюз
38. События начала и завершения
Взаимодействие процессов с окружением представлено при помощи
событий.
● События это действия реального мира, которые
○ имеют значение для бизнеса
○ происходят мгновенно
● События начала запускают бизнес процесс
● События завершения завершают процесс
39. Бизнес сценарий
БП запускается сразу после получения заказа.
…
После архивации, заказ считается выполненным и
процесс удачно завершается
Если заказ не может быть выполнен, то процесс
завершается не удачно и заказ отменяется
41. Обрабатывающие (catching) и
генерирующими (throwing) события
События могут быть обрабатывающим
События происходящие в окружении и влияющие на экземпляр процесса
А могут быть генерирующими
События, созданные экземпляром процесса
42. Типы событий в BPMN
События начала (генерирующие)
Приводят к созданию нового экземпляра процесса
События завершения (обрабатывающие)
Подают сигнал о завершении экземпляра процесса
Промежуточные события(генерирующие или обрабатывающие)
Могут быть сгенерированы/обработаны во время выполнения
экземпляра процесса
События мгновенны, но процесс может быть приостановлен и
ожидать возникновения промежуточного генерирующего события
43. Разновидности событий
BPMN определяет разновидности, задающие характер, событий.
Например
● Таймер истекает, ошибка происходит, сообщение приходит
● Разновидности можно комбинировать с типами событий, однако не
все комбинации допустимы
У каждой разновидности свой символ.
44. Советы по моделированию
События не потребляют время
События обозначаются в стиле “существительное глагол”
События отслеживают состояние системы, окружение процесса, или сам процесс не должны
применяться в моделировании
Чтобы подчеркнуть возникновение события обозначаются в стиле “сущ. глагол”, например заказ
получен
Исключения: событие таймер (каждый понедельник в 10.00)
45. События начала и его разновидности
События начала создают новый экземпляр процесса и запускают его
выполнение
Разновидности событий начала:
● Пустое событие начала применяется в том случае, когда процесс
запускается вручную или событие начала не имеет собственного
значения
● Таймеры используются в цикличных событиях,моментах времени,
временных
● периоды и таймаутах.
● Сообщения обозначают начало процесса после получения
соответствующего сообщения
46. Советы по моделированию
Запуск БП осуществляется лишь одним событием начала
● Экземпляр процесса проще воспринимать, в том случае если
существует лишь одно событие начала
● Если требуется больше чем одно событие начала, то должны быть
альтернативные события начала
47. Советы по моделированию
Для каждого возможного события завершения используйте свое
событие завершения
Причины
● Каждое завершение процесса имеет разное значение
с точки зрения бизнес логики и должно быть
обозначено своим событием завершения
● События завершения должны быть эксклюзивными,
чтобы было ясно когда и как завершился процесс
49. Промежуточные события
● Промежуточные события происходят между стартом и
завершением БП
● Промежуточные события м.б как “сгенерированными”, так и
“обработанными”
○ Обработан: процесс ждет возникновения события
○ Сгенерирован: процесс создает событие и продолжает
выполняться
● Промежуточные события м.б. соединены с другими узлами
процесса через входящие и исходящие потоки операций
50. Учебный сценарий
Если заказ поступил в пятницу или на
выходных, то он должен быть отложен до
понедельника, т.к. склад обновляется в
воскресенье вечером
51. Промежуточное событие таймер
Промежуточное событие таймер может
быть только обрабатывающем
Таймер работает, как механизм
отложенного действия
● Для специальной даты/времени,
например 16.12.2014
● Для повторяющейся даты/времени,
например “каждую субботу в 10.00”
● Для промежутка времени, например
“одна неделя”
52. Промежуточное событие
соединенное с действием
Такие события могут быть только обрабатывающими.
Возникновение таких событий возможно лишь в том случае, когда
действие находится в состоянии Running “выполняется”
Выделяют
● Прерывающие процесс события
● Непрерывающие процесс события
53. Учебный сценарий
….
Если товара нет в продаже и во время
изготовления товара возникает сбой, то
заготовки списывают в брак, а процесс
заканчивается не удачно
54. Прерывающее процесс событие, связанное с
Действием “Ошибка”
Когда возникает подобное событие, то процесс
изготовления товара прекращается и поток операций
ведет к отмене заказа
55. Прерывающее процесс событие, связанное с
Действием и XOR шлюз
Существуют различия между событием и шлюзом:
● Выбор элемента происходит на основе события или условия
● Различие в семантике выполнения. В случае XOR шлюза активность
завершена, а в событие связанном с действием активность
продолжается
● С точки зрения моделирования. Ошибки в процессе происходят
намного реже, чем обычные процессные решения
56. Непрерывающие процесс промежуточные события
связанные с Действием
В таком случае действие не прерывается, а событие отражает реакцию на
действие
Пример
Информирование клиента о увеличении времени изготовления продукта,
без прекращения изготовления
57. Непрерывающее процесс событие, связанное с
Действием и AND шлюз
● Различие в семантике выполнения. В случае AND шлюза
наблюдается последовательное исполнение действий, в то время как
для непрерывающего события это не характерно.
● Непрерывающее событие может возникать несколько раз, в то время
как при использовании AND шлюза возможен лишь один экземпляр
события.
58. Промежуточное событие Сигнал
Промежуточное событие Сигнал используется для получения сигнала. При запуске Сигнала,
Стандартный поток операций становится Потоком исключений.
Событие типа Сигнал отличается от События типа Ошибка тем, что посредством Сигнала
указывается более общее и не являющееся ошибкой условие для прерывания выполнения
Действия (например, успешное выполнение другого Действия)
Например
Событие Сигнал может применяться для
информирования о пополнении запасов