Общие замечания
Применение чекеров, самотестирующихся, самокорректирующихся программ и их сочетаний возможно в самых различных областях вычислительной математики, а, следовательно, в самых разнообразных областях человеческой деятельности, где широко применяются вычислительные методы. К ним относятся такие направления как цифровая обработка сигналов (а, следовательно, решение проблем в системах распознавания изображений, голоса, в радио- и гидроакустике), а также методы математического моделирования процессов изменения народонаселения, экономических процессов, процессов изменения погоды и т.п. Идеи самотестирования могут найти самое широкое применение в системах защиты информации, например, в системах открытого распределения ключей, в криптосистемах с открытым ключом, в схемах идентификации пользователей вычислительных систем и аутентификации данных, где базовые вычислительные алгоритмы обладают некоторыми алгоритмическими свойствами, например, свойством случайной самосводимости, описанным выше.
Информация об усредненных значениях и статистических законах распределения характеристик этих компонентов накапливается с целью дальнейшего использования при исследовании программ, аналогичных по своему функциональному назначению и принципам разработки, а также:
· при классификации программ на основе количественных критериев для выбора рациональных методов и средств обеспечения их технологической безопасности;
· для обоснования правил структурного построения, сегментации больших программ с целью упрощения контроля их технологической безопасности;
· для выбора рациональных методов построения и применения технологически безопасных средств автоматизации программирования и отладки.
Определение критических путей программных комплексов осуществляется в процессе последовательного выполнения следующих работ, связанных с получением информации о сложностных показателях исследуемых программ:
· обработки исходных текстов и характеристик оттранслированных программ, а также расчета абсолютных и относительных численных характеристик объема модулей программ, числа используемых переменных и констант;
· структурного контроля программы, расчета числа маршрутов и циклов, а также количества передач управления в ациклических маршрутах;
· построения иерархической схемы связей программных модулей, расчета количества вызываемых и вызывающих данный модуль программ, определения интенсивности использования переменных на запись и чтение.
При исследовании управляющих программ в КС различного назначения целесообразно использовать следующую классификацию программных модулей:
· диспетчерские программы (верхний уровень иерархии);
· функциональные модули, выполняющие основные задачи обработки информации и принятия решений (средние уровни иерархии);
· стандартные модули, используемые многократно для выполнения достаточно простых процедур и технологических операций по обработке данных (нижние уровни иерархии).