Модель функционирования программного модуля

Отдельный программный модуль (ПМ) целесообразно рассматривать, как систему с соответствующими векторами входных x, выходных y и внешних v параметров (см. рис. 61).

Рис. 61 Система программного модуля

Описание функционирования программного модуля с позиций модели «чёрного ящика» позволяет далее сформулировать и основные принципы диагностики программного обеспечения. Предполагается, что вектор v описывает состояние операционной среды, в которой протекает функционирование ПМ.

Так как большинство ПМ является системами «с памятью», необходимо использовать концепцию «состояния ПМ». Предполагается, что в общем случае реализуется функциональная зависимость

y = F ( х, v, z ),где z – вектор переменных состояния;х Î X, v Î V, z Î Z.

Здесь X, V, Z - множества допустимых значений соответствующих векторов. В частности, отдельные компоненты всех векторов могут иметь дискретный характер. В простейшем случае систем без памяти реализуется более простая связь выхода со входом:

у = F ( х, v )

или даже

у = F ( х ).

Основная задача диагностики ПМ состоит в определении данного набора (или наборов) векторов x, y, z, прикоторых наступает конец латентной фазы и начинается появление АД.

Для решения поставленной задачи предполагается, что на выходе системы ПМ реализуется некоторой расширенный вектор у, то есть вектор , определяющий не только значения выходных переменных y ПМ согласно его основному назначению, но и некоторых дополнительных переменных, описывающих эффект воздействия данного ПМ на ВС. Данное требование объясняется тем, что основная цель введения АД как раз может заключаться не в искажении вектора у, а в целенаправленном и деструк­тивном воздействии на среду функционирования данного ПМ.

Условия проявления АД могут состоять, например, в появлении следующих событий или их комбинации:

· наступление некоторого фиксированного момента времени на системных часах;

· превышение определенного порога частоты обращения к зонам памяти, внеш­ним устройствам, каким-либо подпрограммам и т.п.;

· наличие прерываний;

· выход ПМ на определенный режим;

· появление определенной комбинации входных данных х;

· реализация определенной комбинации компонент векторовх, v, у, z и т.д.

Обнаружение закладки осложняется тем фактом, что мощность входного множества может по оценкам специалистов быть порядка 1070 - 10100, а мощность ОДЗ 1015 - 1020 . Поэтому тестирование всей входной области с целью выявления закладки потребует практически бесконечного времени. Вероятностный подход к тестированию дает решение этой проблемы, однако риск оставить закладку незамеченной остается.