102 кой. За ним в фигурных скобках указывается кортеж значений синтезируемых атрибутов (ресурсов) и значение наследуемого атрибута. На этом порождение последовательной цепочки заканчивается. Шаг 4: 4.1. Если в точке А есть еще не помеченные правила, то происходит переход к шагу 2. 4.2. Если существуют цепочки, порожденные символом А, которые должны быть объединены в параллельную цепочку, то производится их объединение. Шаг 5. Если А Ф , где ,у0 е уо, то происходит переход к шагу 2 в точке (/-1). Следующие блоки позволят контролировать все правильные цепочки языка, удовлетворяющие требованиям критерия процедурной связности. Шаг 6: 6.1. Выбор очередной порожденной цепочки. Если множество цепочек исчерпано, то переход к шагу 8. 6.2. Построение множества символов CS, входящих в состав цепочки. 6.3. Сравнение множества CS с множеством у N и ут. 6.4. Если CS= уN и ут, то переход к блоку 6.6. 6.5. Если CS^yN^yT, то вычеркивание цепочки и переход к блоку 6.1. 6.6. Построение множества пар CR = {{/4,2?}} из рядом стоящих символов, входящих в состав цепочки. 6.7. Сравнение множества CR с множеством управляющих ребер графа функции управления Е. 6.8. Если CR = Е,то переход к блоку 6.1. 6.9. Если CR * Е, то вычеркивание цепочки и переход к блоку 6.1. Блок анализа для порождения всех правильных цепочек языка, удовлетворяющих требованиям критерия временной связности. Причем, обозначим через /(Л) время начала выполнения функции А, а через s значение вре |
Идея алгоритма заключается в порождении очередной цепочки до тех пор пока это возможно, в случае невозможности продолжения возврат назад до полного перебора всех грамматических правил. Шаг 1. i = 1 Шаг 2. 2.1. Если i-м элементом является символ А и существует правило А=>АВ {(ri, г2, ..., rk)} {oj, где В е VN такое, что результат применения привязанного к символу А метода синтеза удовлетворяет введенному специальным образом ограничению на ресурс для каждого из ресурсов, правило помечается и производится конкатенация символа В с порождаемой цепочкой. За ним в фигурных скобках указывается кортеж значений синтезируемых атрибутов (ресурсов) и значение наследуемого атрибута. 2.2. i = i+1 2.3. Если В е VT, то переход к шагу 3, иначе переход к шагу 2.1. Шаг 3. Если i-м элементом является символ А и существует правило А=>АВ {(п, г2, ..., ги)} {Oj}„ где В е Vt такое, что результат применения привязанного к символу А метода синтеза удовлетворяет введенному специальным образом ограничению на ресурс для каждого из ресурсов, правило помечается и производится конкатенация символа В с порождаемой цепочкой. За ним в фигурных скобках указывается кортеж значений синтезируемых атрибутов (ресурсов) и значение наследуемого атрибута. На этом порождение последовательной цепочки заканчивается. Шаг 4. 4.1. Если в точке А есть еще не помеченные правила, то переход к шагу 2. 4.2. Если существуют цепочки, порожденные символом А, которые должны быть объединены в параллельную цепочку, то производится их объединение. Шаг 5. Если А * s0, где soe Vo, то к шагу 2 в точке И, иначе завершение. 93 • если 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 6.3. Сравнение множества CS с множеством Vn и Vt. 6.4. Если CS = Vn u Vt, to переход к подшагу 6.1. 6.5. Если CS * Vn u Vt, то вычеркивание цепочки и переход к подшагу 6.1. Шаг 7. Завершение работы алгоритма. Блок анализа для порождения всех правильных цепочек языка, удовлетворяющих требованиям критерия функциональной связности выглядит следующим образом: Шаг 6. 6.1. Выбор очередной порожденной цепочки. Если множество цепочек исчерпано, то переход к шагу 7. 6.2. Построение множества символов CS, входящих в состав цепочки. 6.3. Сравнение множества CS с множеством V^u Vt. 6.4. Если CS = Vn и Vt, to переход к подшагу 6.6. 6.5. Если CS # Vn u Vt, to вычеркивание цепочки и переход к подшагу 6.1. 6.6. Построение множества пар CR={{A,B)} из рядом стоящих символов, входящих в состав цепочки. 6.7. Сравнение множества CR с множеством управляющих ребер графа бизнес-процесса Е. 6.8. Если CR = Е, то переход к подшагу 6.1. 6.9. Если CR * Е, то вычеркивание цепочки и переход к подшагу 6.1. Шаг 7. Завершение работы алгоритма. Блок анализа для порождения всех правильных цепочек языка, удовлетворяющих требованиям критерия логической связности выглядит следующим образом: Шаг 6. 6.1. Выделение символов аир, соответственно начинающих и завершающих логический вариант. 6.2. Выбор очередной порожденной цепочки. Если множество цепочек исчерпано, то переход к шагу 7. 161 |