Рис. 2. Блок-схема функциониро-
вания системы продукционных
моделей
функционального объекта к тому или
иному виду, константное или ста-
тистически предсказуемое значение
и т.п.);
DA
(
s
j
)
→
DB
(
s
j
)
— вы-
ражение, так называемое ядро про-
дукции с продукционным выводом
о дефекте кода или дополнительных
свойствах кода на основе существо-
вания типовых синтаксических кон-
струкций в коде, определяющих ли-
бо возможность реализации дефекта,
либо наличие свойств кода, косвенно
влияющих на возникновение дефекта
(вывод может быть промежуточным
или заключительным);
P
(
CL, PR
)
—
функция, вызываемая по достижению
логического вывода о существовании
вероятного дефекта кода, имеющая
следующие параметры:
CL
— катего-
рия (тип) дефекта (задается экспертом
в области аудита кода при формиро-
вании продукционной модели, пред-
ставляет собой числовой номер типа
дефекта в международных классификациях дефектов);
PR
— степень
критичности данного дефекта, задаваемая экспертом.
Параметрами перечисленных выше функций являются различные
виды функциональных и информационных объектов, полученных из
структурного представления кода.
Методика функционирования предложенной системы продукцион-
ных моделей включает в себя следующие шаги (рис. 2).
1. Считывание лексемы
s
j
(изначально
j
имеет индекс первого
элемента кортежа лексем).
2. Последовательная (
1
, n
) проверка всех продукций модели.
3. Если ни одна из продукций модели не была активирована на
шаге 2, то
j
увеличиваем на 1 и переходим к шагу 2.
4. Если во входном потоке больше нет лексем, то завершаем работу,
в противном случае переходим к шагу 1.
Рассмотренная система продукций является многоуровневой ме-
тамоделью описания эвристик поиска конкретных уязвимостей, что
продемонстрировано далее.
Методика формализации эвристик для различных классов де-
фектов кода.
При описании конкретных эвристик приходится оттал-
киваться от конкретных классов дефектов, конкретной программной
102 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2016. № 1