- •Раздел 3.3 посвящен оценке качества бизнес-процесса с общесистемных позиций, позволяющей на основе ряда критериев и метрик оценить, насколько хорош спроектированный вариант и можно мл его улучшить.
- •3.1. Проектирование (планирование) бизнес-процесса
- •3.1.1. Введение в теорию формальных языков и грамматик
- •3.1.2. Грамматика бизнес-процесса и его порождение
- •3.1.5. Организация параллелизма при планировании бизнес-процесса
- •3.2. Тестирование бизнес-процесса
- •3.2.1. Специфика тестирования бизнес-процесса -
- •3.2.2. Модель потоков данных'бизнес-процесса
- •3.2.3. Критерии тестирования бизнес-процессов
- •3.3. Оценка качества бизнес-процесса
- •3.3.1. Критерий сцепления оизнес-процесса
- •3.3.2. Критерий связности бизнес-процесса
- •3.3.3. Порождение вариантов выполнения :к[ бизнес-процесса с учетом типа связности «'?*"
- •3.4. Анализ бизнес-процессов
- •3.4.1. Метод статического анализа потоков данных бизнес-процесса
- •3.4.2. Методы динамического анализа щ
- •Дайте определение грамматики бизнес-процесса.
- •Постройте грамматику бизнес-процесса «Прием на работу нового сотрудника». Выберите и аргументируйте вариант его исполнения.
- •Постройте грамматику бизнес-процесса «Увольнение сотрудника». Выберите вариант его (исполнения и синхронизируйте его с вариантом исполнения процесса «Прием на работу нового сотрудника».
- •4.1. Понятие реорганизации
3.1.5. Организация параллелизма при планировании бизнес-процесса
При планировании бизнес-процесса необходимо иметь возможность указания функций и операций, которые могут выполняться параллельно. Для корректного выполнения параллельных участков необходимо иметь средства их инициации и завершения, а также механизмы их взаимодействия.
113
Предложенная в данной главе грамматика бизнес-процесса относится к,классу параллельных порождающих грамматик. Однако введенная в главе 3 графовая модель бизнес-процесса не содержит никакой информации о потенциальной возможности параллельного выполнения его компонентов.
Для идентификации параллельных участков необходимо нагрузит^ граф бизнес-процесса соответствующей информацией. Одним из вариантов решения этой задачи является создание привязанной к графу бизнес-процесса матрицы, в которой отмечаются возможности параллельного выполнения его компонентов. Формат матрицы имеет следующий вид (табл. 3.5):
|
|
|
|
|
|
|
Таблиня ч < |
|
|
|
|
А' |
В |
С |
D |
Е |
F |
G + |
|
|
А' В С |
|
* |
* |
* |
|
+ |
|
|
D Е F |
|
|
|
|
+ |
+ '-■'+' + ■ ■*;■ |
|
||
|
*г- |
|
|
|
|
|
-*$г- |
|
|
-Названия строк и столбцов соответствуют компонентам рассматриваемого бизнес-процесса. Символ ' означав?^начало выполнения параллельного процесса, символы * показывают, что соответствующие компоненты могут (но не обязательно должны) выполняться параллельно.
Отметим, что в данной матрице могут быть указаны и возможные последовательности выполнения компонентов бизнес-процесса. Так, символы + в табл. 3.5 означают, что после выполнения компоненты D может быть выполнена как компонента Е, так и компонента F.
Такая матрица частично строится автоматически из графа бизнес-процесса (в части существующих известных последовательностей выполнения его компонентов), а затем дополняется вручную ЛПР, отмечающим параллельные участки и вводящим дополнительные новые последовательности выполнения компонентов.
Параллельная порождающая грамматика строится из матрицы в. соответствии со следующими этапами.
Этап I. В качестве начального символа выбирается символ, определяемый пустым столбцом матрицы. Если таких столбцов несколько, то создается фиктивная начальная вершина.
Этап 2. В качестве терминальных символов выбираются символы, определяемые пустыми строками матрицы.
Этап 3. В качестве нетерминальных символов выбираются все остальные символы. : s
Этап 4. Множество порождающих правил определяется символами в клетках матрицы следующим образом:
если на пересечении строки X и столбца Y стоит символ *, это означает создание правила типа X' => X'Y;
если на пересечении строки X и столбца Y стоит символ +, это . означает создание правила типа X => XY.
Таким образом, каждая параллельная цепочка описывается как независимая единица бизнес-процесса, имеющая специальную конструкцию для указания возможности ее одновременного выполнения с некоторыми другими частями бизнес-процесса.
Для описания средств инициации и завершения параллельных участков, а также механизмов их взаимодействия воспользуемся аппаратом, применяемым в параллельных языках программирования. На современном этапе программная инженерия является единственной областью, в которой идея параллелизма широко апробироваш з практике создания и использования таких объектов, как операционные системы и компиляторы параллельных языков. Поскольку семантика этих средств не изменяется при их применении к бизнес-процессам, оставим без изменения и их синтаксис.
Для инициации параллельной цепочки может быть использована операция PARCALL (<список параметров>), а для ее завершения - операции END, RETURN и STOR При этом первые две операции завершают выполнение отдельных цепочек, а последняя служит для завершения всего процесса.
Для порождения и объединения нескольких цепочек в одной точке могут использоваться парные операции FORK-JOIN, PAR-BEGIN-PAREND, COBEGIN-COREND, DO TOGETHER-HOLD и другие, при этом первая операция открывает параллельный сегмент, а вторая закрывает его. Семантически эти операции различаются способом завершения цепочек.
Более высокий уровень управления параллельными цепочками достигается при использовании управляющих выражений,
не
позволяющих непосредственно описывать порядок выполнения цепочек. ■ , .
Для установления правильной очередности выполнения це почек служит механизм синхронизации. Задача синхронизации заключается в организации доступа цепочек к разделяемым с другими цепочками ресурсам таким образом, чтобы они не иска жали результатов выполнения бизнес-процесса. Отметим, что инициация и завершение являются одним из видов синхрони зации. -
Простейшим и универсальным механизмом синхронизации янаяются семафоры Дейкстры (Dijkstra). Реализация этого механизма связана с введением целочисленных переменных специального типа (семафоров) и двух неделимых операций Р и V, ко-торые выполняются над семафорами и обеспечивают единственный способ обращения к ним. Для организации взаимодействия нескольких параллельных цепочек наряду с семафорами могут использоваться переменные типа «событие», с помощью которых можно задавать произвольные правила взаимодействия цепочек. Для работы с ними вводятся операции SIGNAL X (объявить собыгае) и WAIT X (ждать событие),: где X — переменная типа «собнше». Фактически эти операции'являются аналогами операций Щ) и Р(Х) соответственно.
Мщепризнанным недостатком семафоров является то, что бесвднрольное их использование запутывает структуру управления щнллельным процессом и велика вероятность ошибок при описагаи сложных взаимодействий. Введение механизма условных чштических интервалов Хоара (Ноаге) позволяет повысить уровяь средств взаимодействия цепочек и устранить ряд недостатков^ присущих семафорам. Для этой цели вводится специаль-яаяощрация (условный критический интервал), и все обращения к общ» ресурсам осуществляются только с помощью этой олера-шш.Чрвстой пример такой операции: REGION V WHEN В ЕЮ S. Выпвиение операции S возможно только при выполнении нредзшвия В, в качестве которого можно задавать произвольное логачпаюе выражение (V — имя критического интервала).
Садрощим шагом в повышении уровня взаимодействия па-раллешых цепочек является реализация концепции процесса-ескреяр, централизующего управление параллельными цепочками ^анитор Хоара (Ноаге) и Хансена (Hansen), сентинелл Кешщя (Kepler), управляющие выражения Кемпбелла
(Kampbell) и Хабермана (Haberman)). Идея монитора заключает^; ся в создании механизма, унифицирующего взаимодействие параллельных цепочек по синхронизации, разделяемым ресурсам и компонентам процесса, использующим эти ресурсы. Сентинелл является развитием монитора и позволяет описывать дисциплину синхронизации в своем теле.
Рассмотренные механизмы взаимодействия цепочек получили название процедурных. Для них существенно, что цепочки взаимодействуют через общие переменные, а взаимоисключающий доступ к ним обеспечивается с помощью семафоров или механизмов, их развивающих.
Известны еще два вида механизмов взаимодействия: ориентированный на передачу сообщений и осуществляемый посредством удаленного вызова процедур. Разница между ними определяется явным или неявным (через удаленный вызов процедуры или рандеву) использованием примитивов посылки и получения сообщения. Такие механизмы ориентированы на их использование Ч распределенных системах, что делает их особо актуальными для бизнес-процессов.-
Задача синхронизации параллельных участков бизнее?про-цесса решается путем расстановки в порожденных цепочках синхронизирующих операций.
В качестве примера рассмотрим синхронизацию двух параллельных цепочек, имеющих обращение к некоторому общему ресурсу г.
А' — BC(r)D
I—EF(r)G
Функции С и F могут быть функциями обращения к эксперту для получения консультации, а г характеризует время, затрачиваемое на консультацию.
Осуществим синхронизацию с использованием семафора s:
A'f В p(s) С(г) v(s) D
I Ep(s)F(r)v(s)G
где f: s = 1; p(s): если s = 1, то s = s - 1; v(s): s = s + 1.
Следует отметить, что при использовании средств синхронизации возможно появление ошибок следующих основных типов:
отсутствие операций синхронизации для некоторых общих ресурсов;1
взаимная блокировка параллельных цепочек (тупик);
повторный запуск на выполнение цепочки до окончания ее предыдущего запуска и др.
Для их обнаружения были разработаны специальные методы, -которые без изменений могут быть применены и для бизнес-про- > цессов.
Далее в книге будут рассматриваться только последователь- ' ные процессы. Схема обработки параллельных объектов по ана- ; логии с решениями, принятыми в программной инженерии, выг- ■ лядит следующим образом:
переход от параллельных процессов к последовательным | путем их декомпозиции, фактически заключающейся в исключе- j нии из рассмотрения табл. 3.5; ; 1
анализ, верификация и оценка последовательных процес- % сов известными методами; '*
синхронизация процессов, ее анализ и верификация тради- ] ционными, апробированными в программной инженерии мето-; , j дами. j;