Это старая версия документа.
Возникновение стартового/стартовых событий диаграммы запускает последовательное выполнение шагов процесса: завершение одного шага приводит к началу выполнения следующего. Однако на диаграмме могут присутствовать точки ветвления, в которых системе необходимо принять решение, по какому пути продолжить выполнение процесса.
На диаграммах процессов в нотациях Процесс и Процедура в качестве точки ветвления используется блок "Решение". На диаграмме процесса в нотации ЕРС - операторы и . В нотации BPMN – шлюзы: (неэксклюзивный шлюз), (эксклюзивный шлюз), (комплексный шлюз), (эксклюзивный шлюз по событиям). Правила ветвления задаются следующим образом:
Нотация | Способ задания правил ветвления |
---|---|
Процесс/Процедура | Правило задается для каждой стрелки «Связь предшествования», исходящей из блока «Решение». В свойствах стрелок задается либо вероятность перехода, либо условия. При указании и того и другого приоритет отдается условиям. |
EPC | Правило задается для каждого события, следующего после операторов и . В свойствах событий задается либо вероятность возникновения, либо условия. При указании и того и другого приоритет отдается условиям. Правила возникновения игнорируются. |
BPMN вариант 1 | Правило задается для стрелок с типом «Условный поток управления». В свойствах стрелок задается либо вероятность перехода, либо условия. При указании и того и другого приоритет отдается условиям. При этом если условия заданы, но не выполняются, то переход происходит по стрелке с типом "Поток управления по умолчанию": |
BPMN вариант 2 | Правило задается для стрелок, исходящих из шлюзов следующих типов: (неэксклюзивный шлюз), (эксклюзивный шлюз), (комплексный шлюз). В свойствах стрелок задается либо вероятность перехода, либо условия. При указании и того и другого приоритет отдается условиям. |
BPMN вариант 3 | Правило задается для событий, следующих за эксклюзивным шлюзом по событиям: . При использовании данного шлюза может быть выбран лишь один из предложенных маршрутов в зависимости от события, которое возникло первым. Для этого в свойствах каждого события, следующего после шлюза событий, должны быть заданы либо правила возникновения этого события, либо условия перехода. Если у события задано и то и другое, приоритет отдается правилам возникновения. Если не заданы ни правила возникновения, ни условия, то учитываются вероятности. При этом используется автонормирование: пользователь может задать какие угодно вероятности или не задавать их вовсе. Если и вероятности не заданы, то при имитации потоки рассматриваются как равновероятные. Ситуация, когда у части событий заданы правила/условия, а у части – вероятности/ничего, считаются неопределенными (выдается ошибка имитации). |
Задание вероятности
Если в точке ветвления задается вероятность перехода к веткам процессов, то сумма вероятностей для:
должна быть равна 1. Вероятности стрелок или событий, сумма которых не равна 1, при имитации пересчитываются пропорционально заданным значениям так, чтобы в сумме была 1.
Задание условий
Если в точке ветвления задаются условия перехода к веткам процессов, то для:
необходимо сформировать одно или несколько логических выражения, при выполнении которых будет осуществляться переход (Рис.2).
Описание колонок вкладки Условия приведено в Табл. 1.
Параметр | Описание |
---|---|
И/ИЛИ | Служит для формирования структуры условия. |
( | Служит для формирования структуры условия. |
Переменная | Задает переменную, значение которой будет сравниваться с операндом. |
Оператор | Задает оператор сравнения. |
Операнд | Задает операнд, значение которого сравнивается с переменной. |
) | Служит для формирования структуры условия. |
Логическое выражение состоит из параметров:
Значение переменной сравнивается со значением операнда при помощи оператора и в зависимости от результата осуществляется переход к одной или другой ветке процесса.
Рассмотрим каждый из параметров отдельно.
Переменные вкладки "Условия" (Рис.2)
Создание переменных
Для того чтобы переменная могла быть использована для формирования логического выражения, переменная должна быть создана в системе.
Переменные могут быть созданы для объектов, процессов, субъектов или для всей имитируемой системы.
Переменные объектов, процессов и субъектов создаются на вкладке Переменные в Параметрах ФСА соответствующего объекта, процесса или субъекта (Рис.3).
Описание колонок вкладки Переменные приведено в Табл. 2.
Параметр | Описание |
---|---|
Имя | Задает имя переменной. |
Тип | Задает тип переменной. Тип может быть: - Целый - Вещественный - Строка - Логика - Дата - Время - Длительность |
Стартовое значение | Задает стартовое значение переменной. Стартовое значение может быть задано в виде константы, случайной величины или значения другой переменной (Рис.4). |
Нижняя граница | Задает минимально возможное значение переменной. Задается только для переменных объектов и субъектов типа "Целый" и "Вещественный". Может использоваться для управления ходом даже последовательной цепочки процесса. Если при попытке совершить операцию с переменной ее значение окажется меньше Нижней границы, то операция выполнена не будет. При этом выполнение процесса остановится до тех пор, пока значение переменной не станет достаточным для совершения операции. Нижнюю границу можно использовать для имитирования операций с материальным ресурсом. При этом для материального ресурса должна быть создана переменная "Количество". Если значение нижней границы для этой переменной ресурса не задано, то количество ресурса будет всегда считаться достаточным для выполнения процесса. Если же оно задано, то процесс не начнет выполняться до тех пор, пока количество ресурса не станет достаточным. |
Верхняя граница | Задает максимально возможное значение переменной. Задается только для переменных объектов и субъектов типа "Целый" и "Вещественный". Может использоваться для управления ходом даже последовательной цепочки процесса. Принцип использования данного параметра аналогичен принципу использования параметра "Нижняя граница". |
Комментарий | Задает комментарий к переменной. |
Если стартовое значение переменной может быть представлено в виде константы, то оно задается в поле "Значение".
Если стартовое значение переменной может быть представлено в виде случайной величины, то оно задается в поле "Случайная величина". В открывшемся окне выбирается Закон распределения и заполняются необходимые параметры этого закона (Рис.5).
Если в качестве стартового значения переменной (Рис.4) необходимо задать значение другой переменной, то используется поле "Переменная". При нажатии на кнопку открывается справочник "Переменные ФСА" (Рис.6). В справочнике отображаются переменные объектов, субъектов, процессов и переменные всей имитируемой системы, отфильтрованные по типу переменной, для которой задается стартовое значение.
Справочник "Переменные ФСА", содержащий все переменные, можно открыть из меню Анализ процессов (Главное меню → Анализ процессов).
Переменные в справочнике сгруппированы по папкам:
В папке "Переменные глобальные и системные" по умолчанию созданы системные переменные:
Переменные "Текущая длительность процесса" и "Текущая стоимость процесса" - локальные. При имитации для каждого экземпляра каждого процесса создается своя переменная "Текущая стоимость" и "Текущая длительность", значения которой изменяются в течение имитации.
Для доступа к переменной Количество объекта, используемого в качестве материального ресурса, можно использовать системную переменную "Количество". Для этого в Параметрах ФСА объекта надо открыть вкладку Переменные и завести переменную "Количество".
Заведенная самостоятельно переменная «Количество» у объекта, используемого в ходе имитации, будет совпадать с системной переменной "Количество" этого ресурса, создаваемой в ходе имитации! Значение переменной "Количество" уменьшается в начале имитируемой операции, в которой потребляется это ресурс и увеличивается в конце, когда производится продукт совпадающий с данным ресурсом. Если же параллельно производить операции с переменной "Количество" (в Параметрах ФСА процесса на вкладке Действия с переменными), то эти действия будут применены к той же переменной.
При имитации для каждого процесса создаются экземпляры. Экземпляр процесса создается в момент, когда процесс начинает выполняться (потому что сработало правило возникновения стартового события диаграммы процесса или произошел переход на диаграмму процесса с диаграммы другого процесса) и перестает существовать после того, как завершились операции, которые были запущены в рамках экземпляра.
Переменные "Текущая длительность процесса" и "Текущая стоимость процесса" - локальные, то есть для каждого экземпляра процесса создается отдельная переменная с таким именем.
Переменные "Текущая дата" и "Текущее время" - глобальные. При имитации для всех экземпляров всех процессов используется одна и та же переменная.
В папке "Переменные глобальные и системные" могут быть дополнительно созданы только глобальные переменные.
Действия с переменными
Во время выполнения процессов с переменными могут быть осуществлены действия, в результате которых стартовые значения переменных изменятся. Перечень действий, осуществляемых с переменными, фиксируется на вкладке Действия с переменными в Параметрах ФСА процесса.
Описание колонок вкладки Действия с переменными приведено в Табл. 3.
Параметр | Описание |
---|---|
Переменная | Задает переменную, над которой будет совершено действие. Переменная выбирается из справочника "Переменные ФСА" (Рис.6). |
Оператор | Задает оператор. Может принимать значения: =, +, -, *, /. |
Операнд | Задает значение операнда. Значение операнда может быть задано в виде константы, случайной величины или значения другой переменной (Рис.4). |
Момент совершения операции | Задает момент совершения действия над переменной. Может принимать значения: - В начале процесса; - В конце процесса. |
Тип переменной определяет перечень операторов, которыми можно воспользоваться для совершения действия над переменной (Табл. 4).
Тип | Используемые операторы |
---|---|
Целый | (= ), (+), (-), (*), (/). |
Вещественный | (= ), (+), (-), (*), (/). |
Строка | (= ), (+). |
Логика | (= ), (+), (*). |
Дата | (= ), (+), (-). |
Время | (= ), (+), (-). |
Длительность | (= ), (+), (-). |
Операторы вкладки "Условия" (Рис.2)
Для определения следующего шага процесса в точке ветвления текущие значения переменных необходимо сравнить со значениями операндов.
Для сравнения используются операторы: (= ), (!= ), (<), (⇐ ), (>), (>= ). Для переменных типа "Логика" в качестве операторов сравнения могут быть использованы только операторы: (= ) и (!= ).
Операнды вкладки "Условия" (Рис.2)
В качестве Операнда могут быть заданы: значение константы или значение другой переменной (Рис.4).
Особенности ветвления по событиям в нотации BPMN
При использовании эксклюзивного шлюза по событиям имитация выберет лишь один из предложенных маршрутов в зависимости от того события, которое возникнет первым. При имитации из шлюза выпускаются параллельно все исходящие потоки, и имитация ожидает наступления первого события. Ситуация, когда у части событий заданы правила/условия, а у части – вероятности/ничего, считаются некорректными.
Как только возникло какое-то событие, то дальнейшая имитация последует только теми маршрутами, которые исходят из этого события. После Эксклюзивного шлюза по событиям нотация BPMN позволяет использовать операцию с типом «Получение», которая выступает аналогом события получения сообщения. Однако, поскольку мы не можем задать правил возникновения операций, то такая диаграмма считается с точки зрения ФСА некорректной и перехода к этой операции не случится ни при каком случае.
В качестве примера рассмотрим процесс "Обслуживание машины на автомойке" (Рис.9).
Приехав на автомойку, водитель проверяет, есть ли свободные мойщики, и если свободных мойщиков нет - встает в очередь. Если водитель простоял в очереди 15 минут, но так и не дождался обслуживания, он уезжает.
Для моделирования данной ситуации необходимо:
1. Создать переменную "Доступное количество" для ресурса "Мойщик" (Рис.10). Стартовое значение переменной зададим 3, т.е. в рассматриваемом примере на автомойке работает 3 мойщика.
2. В списке "Действия с переменными" процесса "Обслуживание машины" указать, какие действия будут совершаться с переменной "Доступное количество" при выполнении этого процесса. По условиям примера 1 мойщик обслуживает 1 машину. Поэтому значение переменной "Доступное количество" должно уменьшаться на 1 в момент старта процесса "Обслуживание машины", и увеличиваться на 1 в момент окончания этого процесса (Рис.11).
3. Задать условия возникновения событий "Свободные мойщики есть" и "Свободных мойщиков нет" (Рис.12, Рис.13). Событие "Свободные мойщики есть" возникает, если значение переменной "Доступное количество" субъекта "Мойщик" больше или равно 1. Событие "Свободных мойщиков нет" - если значение переменной меньше 1.
4. Задать условия возникновения событий "Время ожидания составляет >= 15 минут" и "Время ожидания составляет < 15 минут" (Рис.14, Рис.15). Для моделирования времени, в течение которого водитель будет ожидать на автомойке своей очереди, воспользуемся системной переменной "Текущая длительность процесса". Значение данной переменной изменяется при имитации автоматически.
Имитация данного процесса позволит получить информацию о том, какое количество машин обслуживается на автомойке за период, сколько времени машина проводит на автомойке, какое количество машин уезжает, не дождавшись своей очереди.
Рассмотрим способы реализации той же диаграммы в нотации BPMN:
Для задания правил перехода в точках 2 и 3 необходимо заполнить свойства событий, следующих за шлюзами 1 и 2 по аналогии с примером, рассмотренным выше.
Для задания правил перехода в точках 2 и 3 необходимо заполнить свойства исходящих из них стрелок.
Для задания правил перехода в точках 2 и 3 необходимо заполнить свойства исходящих стрелок 1 и 3.