99 • если 77, = т'_,(гДтор(г) или /'(z;')=m'(o); • если z'-' = p"'(rj), то или /' (z7‘)= р(°У • если 2;‘ = 0,то или m(r) или /'(z';‘)=0. Таким образом, к каждому порождающему правилу фактически привязывается семейство методов мощностью от 2* Д° 3* (* = Я). При ЭТОМ для всех без исключения правил это семейство методов является одним и тем же. Теперь определяем функции метода обеспечивающие информационную связность, следующим образом: • если z;‘ = то /'(z';')= m'(r7) или /'(z7‘)= m'(o); • если z;‘ = p' GJ> to /' (z7') = 0; • если z';‘ = 0, TO /' (z';‘) = iri (rJ или fj = 0. Таким образом, к каждому порождающему правилу фактически привязывается семейство методов мощностью до 2* • При этом, для всех без исключения правил, это семейство методов является одним и тем же. Для порождения вариантов выполнения функций управления, имеющих функциональную, процедурную или логическую связность, использование механизма синтезируемых атрибутов и соответствующих методов синтеза не целесообразно, поскольку эти методы будут основаны на переборе и по-парном сравнении символов порождаемой в данный момент и всех уже порожденных цепочек при каждом применении любого из порождающих правил. Гораздо проще осуществить такой перебор и сравнение однократно после построения всех возможных вариантов выполнения функций управления. Алгоритм порождения вариантов выполнения реорганизации структуры управления (см. рис. 3.2 [66]) выполнения функций управления, т.е. всех возможных цепочек, порождаемых соответствующей грамматикой имеет |
3) So => A {(Z1, z2, ..., Zk)} {Oj} или So’ => A {(zi, z2....... zk)} {о}, где s0 e Vo. При этом предполагается, что бизнес-функция В не может одновременно использовать и накапливать один и тот же ресурс, что с очевидностью следует из введенного в главе 2 графа бизнес-процесса (на уровне бизнес-операций). Отметим, что выбор значения zm определяется направлением соответствующего ребра использования ресурса из множества ER: при наличии ребра (В, rm) zm = р(гт), а при наличии ребра (гт, В) zm = т(гт). Определим теперь методы синтеза атрибутов, обеспечивающие последовательную и информационную связность порождаемого бизнеспроцесса. В общем случае эти методы теперь имеют вид: msj: (zi z2', ..., zk') = '(ziи), f2'(z2''1), ..., fk'(zk h1)) для i>1 При i=1 msi : (z/, z2 1, ..., zk 1) = (z/, z2 1, ..., zk 1), где zm 1=0, если не существует ни одного из ребер (1, rm), (rm,1), принадлежащих множеству ER. Определим функции fj' метода msit обеспечивающие последовательную связность, следующим образом: • если zjи = m1-1 (q), то fj ’(Zj и)= р1 (q) или fj '(Zj и)= m' (0) • если Zjи = р и (q), то fj ‘(Zj и)= m' (q) или fj '(zj и)= p' (0) • если Zjи = 0, то fj l(Zj и)= р1 (q) или fj '(Zj и)= m' (q) или fj '(Zj и)= 0 Таким образом, к каждому порождающему правилу фактически привязывается семейство методов мощностью от 2k до 3 k (k= IR ). При этом для всех без исключения правил это семейство методов является одним и тем же. Приведенный в главе 2 алгоритм автоматического порождения вариантов исполнения бизнес-процесса, т.е. всех возможных цепочек, порождаемых соответствующей грамматикой, может быть легко модифицирован для порождения всех правильных цепочек языка, удовлетворяющих требованиям критерия последовательной связности. Для этой цели в шаги 2.1 и 3 должны быть включены внутренние циклы по числу методов синтеза. Определим теперь функции fj1 метода msj, обеспечивающие информационную связность, следующим образом: 159 • если Zjи = m и (q), то fj '(Zj1-1 )= m' (r}) или fj '(zj и)= m1 (0) • если Zjи = p и (rj), to fj '(zj и)= 0 • если zjи = 0, то fj '(zj и)= m' (q) или fj '(zj и)= 0 Таким образом, к каждому порождающему правилу фактически привязывается семейство методов мощностью до 2к. При этом для всех без исключения правил это семейство методов является одним и тем же. Из тех же соображений, что и в случае последовательной связности, алгоритм автоматического порождения вариантов исполнения бизнеспроцесса из главы 2 также может быть легко модифицирован для порождения всех правильных цепочек языка, удовлетворяющих требованиям критерия информационной связности. Для порождения вариантов выполнения бизнес-процесса, имеющего функциональную, процедурную или логическую связность, использование механизма синтезируемых атрибутов и соответствующих методов синтеза не целесообразно, поскольку эти методы будут основаны на переборе и попарном сравнении символов порождаемой в данный момент и всех уже порожденных цепочек при каждом применении любого из порождающих правил. Гораздо проще осуществить такой перебор и сравнение однократно после построения всех возможных вариантов выполнения бизнес-процесса. Это можно осуществить также за счет расширения алгоритма автоматического порождения вариантов исполнения бизнес-процесса из главы 2 путем введения специального блока анализа цепочек (шага 6 алгоритма), предшествующего блоку завершения алгоритма. Блок анализа для порождения всех правильных цепочек языка, удовлетворяющих требованиям критерия процедурной связности выглядит следующим образом: Шаг 6. 6.1. Выбор очередной порожденной цепочки. Если множество цепочек исчерпано, то переход к шагу 7. 6.2. Построение множества символов CS, входящих в состав цепочки. 160 |