Модель функционирования программного модуля
Отдельный программный модуль (ПМ) целесообразно рассматривать, как систему с соответствующими векторами входных 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 . Поэтому тестирование всей входной области с целью выявления закладки потребует практически бесконечного времени. Вероятностный подход к тестированию дает решение этой проблемы, однако риск оставить закладку незамеченной остается.