Различия

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

Ссылка на это сравнение

ru:simulation_fca:technology:stages_simulation_fca:jump_process [2015/01/26 22:17]
apinaeva [Пример использования переменных для управления ходом процесса в точке ветвления]
— (текущий)
Строка 1: Строка 1:
-====== Моделирование ветвления процесса ====== 
- 
- 
-Возникновение стартового/стартовых событий диаграммы запускает последовательное выполнение шагов процесса: завершение одного шага приводит к началу выполнения следующего. Однако на диаграмме могут присутствовать точки ветвления, в которых системе необходимо принять решение, по какому пути продолжить выполнение процесса. 
- 
- 
- 
-На диаграммах процессов в нотациях Процесс и Процедура в качестве точки ветвления используется блок "Решение". На диаграмме процесса в нотации ЕРС - операторы {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_002.png?nolink}} и {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_004.png?nolink}}. В нотации BPMN – шлюзы: {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_165.png?nolink}} (неэксклюзивный шлюз), {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_166.png?nolink}} (эксклюзивный шлюз), {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_167.png?nolink}} (комплексный шлюз), {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_168.png?nolink}} (эксклюзивный шлюз по событиям). Правила ветвления задаются следующим образом: 
- 
-\\ 
- 
-<startTableBox> 
-^  **Нотация**  ^  **Способ задания правил ветвления**  ^ 
-| Процесс/Процедура | Правило задается для каждой стрелки «Связь предшествования», исходящей из блока «Решение». В свойствах стрелок задается либо вероятность перехода, либо условия. При указании и того и другого приоритет отдается условиям. | 
-| EPC | Правило задается для каждого события, следующего после операторов {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_002.png?nolink}} и {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_004.png?nolink}}. В свойствах событий задается либо вероятность возникновения, либо условия. При указании и того и другого приоритет отдается условиям. Правила возникновения игнорируются. | 
-| BPMN вариант 1 | Правило задается для стрелок с типом «Условный поток управления». В свойствах стрелок задается либо вероятность перехода, либо условия. При указании и того и другого приоритет отдается условиям. При этом если условия заданы, но не выполняются, то переход происходит по стрелке с типом "Поток управления по умолчанию": {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_184.png?nolink}} | 
-| BPMN вариант 2 | Правило задается для стрелок, исходящих из шлюзов следующих типов:  {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_165.png?nolink}} (неэксклюзивный шлюз), {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_166.png?nolink}} (эксклюзивный шлюз), {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_167.png?nolink}} (комплексный шлюз). В свойствах стрелок задается либо вероятность перехода, либо условия. При указании и того и другого приоритет отдается условиям. | 
-| BPMN вариант 3 | Правило задается для событий, следующих за эксклюзивным шлюзом по событиям:   {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_168.png?nolink}}.  При использовании данного шлюза может быть выбран лишь один из предложенных маршрутов в зависимости от события, которое возникло первым. Для этого в свойствах каждого события, следующего после шлюза событий, должны быть заданы либо правила возникновения этого события, либо условия перехода. Если у события задано и то и другое, приоритет отдается правилам возникновения. Если не заданы ни правила возникновения, ни условия, то учитываются вероятности. При этом используется автонормирование: пользователь может задать какие угодно вероятности или не задавать их вовсе. Если и вероятности не заданы, то при имитации потоки рассматриваются как равновероятные. Ситуация, когда у части событий заданы правила/условия, а у части – вероятности/ничего, считаются неопределенными (выдается ошибка имитации). | 
-<endTableBox|Таблица 1. Способ задания условий ветвления> 
- 
-\\ 
- 
-=====Задание вероятности===== 
- 
-Если в точке ветвления задается вероятность перехода к веткам процессов, то сумма вероятностей для: 
-  *всех стрелок "Связь предшествования", следующих после блока "Решения",  
-  *событий, следующих после оператора {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_004.png?nolink}},  
-  *всех событий после эксклюзивного шлюза по событиям, 
-  *всех стрелок, следующих за эксклюзивным шлюзом, 
-должна быть равна 1. Вероятности стрелок или событий, сумма которых не равна 1, при имитации пересчитываются пропорционально заданным значениям так, чтобы в сумме была 1. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_062.png?nolink |Рисунок 1. Задание вероятности наступления события}}] 
- 
-\\ 
- 
-=====Задание условий===== 
- 
-Если в точке ветвления задаются условия перехода к веткам процессов, то для: 
-  *событий или стрелок "Связь предшествования", следующих после точки ветвления, 
-  *событий, следующих после оператора {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_004.png?nolink}}  в нотации EPC, 
-  *потоков управления в BPMN, 
-  *стрелок, следующих за эксклюзивным шлюзом, комплексным шлюзом и неэксклюзивным шлюзом, 
-  *событий, следующих за эксклюзивным шлюзом по событиям, 
-необходимо сформировать одно или несколько логических выражения, при выполнении которых будет осуществляться переход (//Рис.2//). 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_064.png?nolink |Рисунок 2. Задание условий перехода по стрелке}}] 
- 
-\\ 
- 
-Описание параметров вкладки **Условия** приведено в //Табл. 2//. 
- 
-\\ 
- 
-<startTableBox> 
-^  **Параметр**  ^  **Описание**  ^ 
-| И/ИЛИ | Служит для формирования структуры условия. | 
-| ( | Служит для формирования структуры условия. | 
-| Переменная | Задает переменную, значение которой будет сравниваться с операндом. | 
-| Оператор | Задает оператор сравнения. | 
-| Операнд | Задает операнд, значение которого сравнивается с переменной. | 
-| ) | Служит для формирования структуры условия. | 
-<endTableBox|Таблица 2. Описание параметров вкладки "Условия"> 
- 
-\\ 
- 
-Логическое выражение состоит из параметров: 
-  *Переменной, 
-  *Оператора, 
-  *Операнда. 
-Значение //переменной// сравнивается со значением //операнда// при помощи //оператора// и в зависимости от результата осуществляется переход к одной или другой ветке процесса. 
- 
-Рассмотрим каждый из параметров отдельно. 
- 
-====Переменные вкладки "Условия"==== 
- 
-**Создание переменных** 
- 
-Для того чтобы переменная могла быть использована для формирования логического выражения, переменная должна быть создана в системе. 
- 
-Переменные могут быть созданы для объектов, процессов, субъектов или для всей имитируемой системы. 
- 
-Переменные объектов, процессов и субъектов создаются на вкладке **Переменные** в **Параметрах ФСА** соответствующего объекта, процесса или субъекта (//Рис.3//). 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_066.png?nolink |Рисунок  3. Создание переменной объекта}}] 
- 
-\\ 
- 
-Описание колонок вкладки **Переменные** приведено в //Табл. 3//. 
- 
-\\ 
- 
-<startTableBox> 
-^  **Параметр**  ^  **Описание**  ^ 
-| Имя | Задает имя переменной. | 
-| Тип | Задает тип переменной. Тип может быть:\\ - Целый\\ - Вещественный\\ - Строка\\ - Логика\\ - Дата\\ - Время\\ - Длительность | 
-| Стартовое значение | Задает стартовое значение переменной. Стартовое значение может быть задано в виде константы, случайной величины или значения другой переменной (//Рис.4//). | 
-| Нижняя граница | Задает минимально возможное значение переменной. Задается только для переменных объектов и субъектов типа "Целый" и "Вещественный". Может использоваться для управления ходом даже последовательной цепочки процесса. Если при попытке совершить операцию с переменной ее значение окажется меньше Нижней границы, то операция выполнена не будет. При этом выполнение процесса остановится до тех пор, пока значение переменной не станет достаточным для совершения операции. Нижнюю границу можно использовать для имитирования операций с материальным ресурсом. При этом для материального ресурса должна быть создана переменная "Количество". Если значение нижней границы для этой переменной ресурса не задано, то количество ресурса будет всегда считаться достаточным для выполнения процесса. Если же оно задано, то процесс не начнет выполняться до тех пор, пока количество ресурса не станет достаточным. | 
-| Верхняя граница | Задает максимально возможное значение переменной. Задается только для переменных объектов и субъектов типа "Целый" и "Вещественный". Может использоваться для управления ходом даже последовательной цепочки процесса. Принцип использования данного параметра аналогичен принципу использования параметра "Нижняя граница". | 
-| Комментарий | Задает комментарий к переменной. | 
-<endTableBox|Таблица 3. Описание параметров вкладки "Переменные"> 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_068.png?nolink |Рисунок 4. Задание стартового значения переменной или значения операнда}}] 
- 
-\\ 
- 
-Если стартовое значение переменной может быть представлено в виде //константы//, то оно задается в поле "Значение". 
- 
-Если стартовое значение переменной может быть представлено в виде //случайной величины//, то оно задается в поле "Случайная величина". В открывшемся окне выбирается Закон распределения и заполняются необходимые параметры этого закона (//Рис.5//). 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_070.png?nolink |Рисунок 5. Задание стартового значения переменной в виде случайной величины}}] 
- 
-\\ 
- 
-Если в качестве стартового значения переменной (//Рис.4//) необходимо задать значение //другой переменной//, то используется поле "Переменная". При нажатии на кнопку  
-{{common/3dot.png?nolink}} открывается справочник "Переменные ФСА" (//Рис.6//). В справочнике отображаются переменные объектов, субъектов, процессов и переменные всей имитируемой системы, отфильтрованные по типу переменной, для которой задается стартовое значение. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_074.png?nolink |Рисунок 6. Справочник "Переменные ФСА"}}] 
- 
-\\ 
- 
-Справочник "Переменные ФСА", содержащий все переменные, можно открыть из меню **Анализ процессов** (**Главное меню** -> **Анализ процессов** -> **Переменные ФСА**). 
- 
-Переменные в справочнике сгруппированы по папкам: 
- 
-  *Переменные глобальные и системные, 
-  *Переменные объектов, 
-  *Переменные процессов, 
-  *Переменные субъектов. 
- 
-В папке "Переменные глобальные и системные" по умолчанию созданы системные переменные: 
- 
-  *Текущая дата, 
-  *Текущее время, 
-  *Текущая длительность процесса, 
-  *Текущая стоимость процесса. 
- 
-Переменные "Текущая длительность процесса" и "Текущая стоимость процесса" - локальные. При имитации для каждого экземпляра каждого процесса создается своя переменная "Текущая стоимость" и "Текущая длительность", значения которой изменяются в течение имитации. 
- 
- 
-Для доступа к переменной Количество объекта, используемого в качестве материального ресурса, можно использовать системную переменную "Количество". Для этого в **Параметрах ФСА** объекта надо открыть вкладку **Переменные** и завести переменную "Количество". 
- 
-== Внимание! == 
-Заведенная самостоятельно переменная «Количество» у объекта, используемого в ходе имитации, будет совпадать с системной переменной "Количество" этого ресурса, создаваемой в ходе имитации! Значение переменной "Количество" уменьшается в начале имитируемой операции, в которой потребляется это ресурс и увеличивается в конце, когда производится продукт совпадающий с данным ресурсом. Если же параллельно производить операции с переменной "Количество" (в **Параметрах ФСА** процесса на вкладке **Действия с переменными**), то эти действия будут применены к той же переменной. 
-==== ==== 
-\\ 
- 
-При имитации для каждого процесса создаются экземпляры. Экземпляр процесса создается в момент, когда процесс начинает выполняться (потому что сработало правило возникновения стартового события диаграммы процесса или произошел переход на диаграмму процесса с диаграммы другого процесса) и перестает существовать после того, как завершились операции, которые были запущены в рамках экземпляра. 
- 
-Переменные "Текущая длительность процесса" и "Текущая стоимость процесса" - локальные, то есть для каждого экземпляра процесса создается отдельная переменная с таким именем. 
- 
-Переменные "Текущая дата" и "Текущее время" - глобальные. При имитации для всех экземпляров всех процессов используется одна и та же переменная. 
- 
-В папке "Переменные глобальные и системные" могут быть дополнительно созданы только __глобальные__ переменные. 
- 
-**Действия с переменными** 
- 
-Во время выполнения процессов с переменными могут быть осуществлены действия, в результате которых стартовые значения переменных изменятся. Перечень действий, осуществляемых с переменными, фиксируется на вкладке **Действия с переменными** в **Параметрах ФСА** процесса. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_076.png?nolink |Рисунок 7. Вкладка **Действия с переменными** процесса}}] 
- 
-\\ 
- 
-Описание параметров вкладки **Действия с переменными** приведено в //Табл. 4//. 
- 
-\\ 
- 
-<startTableBox> 
-^  **Параметр**  ^  **Описание**  ^ 
-| Переменная | Задает переменную, над которой будет совершено действие. Переменная выбирается из справочника "Переменные ФСА" (//Рис.6//). | 
-| Оператор | Задает оператор. Может принимать значения: =, +, -, *, /. | 
-| Операнд | Задает значение операнда. Значение операнда может быть задано в виде константы, случайной величины или значения другой переменной (//Рис.4//). | 
-| Момент совершения операции | Задает момент совершения действия над переменной. Может принимать значения:\\ - В начале процесса;\\ - В конце процесса. | 
-<endTableBox|Таблица 4. Описание параметров вкладки "Действия с переменными"> 
- 
-\\ 
- 
-Тип переменной определяет перечень операторов, которыми можно воспользоваться для совершения действия над переменной (//Табл. 5//). 
- 
-\\ 
- 
-<startTableBox> 
-^  **Тип**  ^  **Используемые операторы**  ^ 
-| Целый | (= ), (+), (-), %%(*%%), %%(/%%). | 
-| Вещественный | (= ), (+), (-), %%(*%%), %%(/%%). | 
-| Строка | (= ), (+). | 
-| Логика | (= ), (+), %%(*%%). | 
-| Дата | (= ), (+), (-). | 
-| Время | (= ), (+), (-). | 
-| Длительность | (= ), (+), (-). | 
-<endTableBox|Таблица 5. Операторы, используемые для совершения действий над переменными разных типов> 
- 
-\\ 
- 
-====Операторы вкладки "Условия"==== 
- 
-Для определения следующего шага процесса в точке ветвления текущие значения переменных необходимо сравнить со значениями операндов. 
- 
-Для сравнения на вкладке **Условия** (//Рис.2//) используются операторы: (= ), (!= ), (<), (<= ), (>), (>= ). Для переменных типа "Логика" в качестве операторов сравнения могут быть использованы только операторы: (= ) и (!= ). 
- 
-====Операнды вкладки "Условия"==== 
- 
-В качестве Операнда на вкладке **Условия** (//Рис.2//) могут быть заданы: значение константы или значение другой переменной (//Рис.4//). 
- 
-=====Особенности ветвления по событиям в нотации BPMN===== 
- 
-При использовании эксклюзивного шлюза по событиям {{ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_168.png?nolink}} имитация выберет лишь один из предложенных маршрутов в зависимости от того события, которое возникнет первым. При имитации из шлюза выпускаются параллельно все исходящие потоки, и имитация ожидает наступления первого события. Ситуация, когда у части событий заданы правила/условия, а у части – вероятности/ничего, считаются некорректными. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_208.png?nolink |Рисунок 8. Диаграмма корректного использования эксклюзивного шлюза по событиям}}] 
- 
-\\ 
- 
-Как только возникло какое-то событие, то дальнейшая имитация последует только теми маршрутами, которые исходят из этого события. 
-После Эксклюзивного шлюза по событиям нотация BPMN позволяет использовать операцию с типом «Получение», которая выступает аналогом события получения сообщения. Однако, поскольку мы не можем задать правил возникновения операций, то такая диаграмма считается с точки зрения имитации некорректной и перехода к этой операции не случится никогда. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_210.png?nolink |Рисунок 9. Диаграмма некорректного использования эксклюзивного шлюза по событиям}}] 
- 
-\\ 
- 
-===== Пример использования переменных для управления ходом процесса в точке ветвления ===== 
- 
-В качестве примера рассмотрим процесс "Обслуживание машины на автомойке" (//Рис.9//). 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_078.png?nolink |Рисунок 9. Диаграмма процесса "Обслуживание машины на автомойке"}}] 
- 
-\\ 
- 
-Приехав на автомойку, водитель проверяет, есть ли свободные мойщики, и если свободных мойщиков нет - встает в очередь. Если водитель простоял в очереди 15 минут, но так и не дождался обслуживания, он уезжает. 
- 
-Для моделирования данной ситуации необходимо: 
- 
-1. Создать переменную "Доступное количество" для ресурса "Мойщик" (//Рис.10//). Стартовое значение переменной зададим 3, т.е. в рассматриваемом примере на автомойке работает 3 мойщика. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_080.png?nolink |Рисунок 10. Создание переменной "Доступное количество" на вкладке **Переменные** субъекта "Мойщик"}}] 
- 
-\\ 
- 
-2. На вкладке **Действия с переменными** процесса "Обслуживание машины" указать, какие действия будут совершаться с переменной "Доступное количество" при выполнении этого процесса. По условиям примера 1 мойщик обслуживает 1 машину. Поэтому значение переменной "Доступное количество" должно уменьшаться на 1 в момент старта процесса "Обслуживание машины" и увеличиваться на 1 в момент окончания этого процесса (//Рис.11//). 
- 
-3. Задать условия возникновения событий "Свободные мойщики есть" и "Свободных мойщиков нет" (//Рис.12//, //Рис.13//). Событие "Свободные мойщики есть" возникает, если значение переменной "Доступное количество" субъекта "Мойщик" больше или равно 1. Событие "Свободных мойщиков нет" - если значение переменной меньше 1. 
- 
-4. Задать условия возникновения событий "Время ожидания составляет >= 15 минут" и "Время ожидания составляет < 15 минут" (//Рис.14//, //Рис.15//). Для моделирования времени, в течение которого водитель будет ожидать на автомойке своей очереди, воспользуемся системной переменной "Текущая длительность процесса". Значение данной переменной изменяется при имитации автоматически. 
- 
-Имитация данного процесса позволит получить информацию о том, какое количество машин обслуживается на автомойке за период, сколько времени машина проводит на автомойке, какое количество машин уезжает, не дождавшись своей очереди. 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_082.png?nolink |Рисунок 11. Задание действий, осуществляемых с переменной при выполнении процесса}}] 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_084.png?nolink |Рисунок 12. Задание условий возникновения события "Свободные мойщики есть"}}] 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_086.png?nolink |Рисунок 13. Задание условий возникновения события "Свободных мойщиков нет"}}] 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_088.png?nolink |Рисунок 14. Задание условий возникновения события "Время ожидания составляет >= 15 минут"}}] 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_090.png?nolink |Рисунок 15. Задание условий возникновения события "Время ожидания составляет < 15 минут"}}] 
- 
-\\ 
- 
-===== Способы описания процесса "Обслуживание машин на мойке" в нотации BPMN ===== 
- 
-Рассмотрим способы реализации того же процесса в нотации BPMN: 
-==== Вариант 1 ==== 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_206.png?nolink |Рисунок 16. Прямой аналог диаграммы EPC, изображенной на //Рис.9//}}] 
- 
-\\ 
- 
-Для задания правил перехода в точках 2 и 3 необходимо заполнить свойства событий, следующих за шлюзами 1 и 2, по аналогии с примером, рассмотренным выше.  
- 
-==== Вариант 2 ==== 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_170.png?nolink |Рисунок 17. Более лаконичный аналог диаграммы EPC, изображенной на //Рис.9//}}] 
- 
-\\ 
- 
-Для задания правил перехода в точках 2 и 3 необходимо заполнить свойства исходящих из них стрелок.  
- 
-==== Вариант 3 ==== 
- 
-\\ 
- 
-[{{ ru/simulation_fca/technology/stages_simulation_fca/jump_process/jump_process_171.png?nolink |Рисунок 18. Совсем краткий аналог диаграммы EPC, изображенной на //Рис.9//}}] 
- 
-\\ 
- 
-Для задания правил перехода в точках 2 и 3 необходимо заполнить свойства исходящих стрелок 1 и 3.  
- 
- 
- 
- 
- 
- 
-[<contextnavigator>] 
- 
  
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki