Основные факторы, определяющие надежность программ

Надежность функционирования комплексов программ зависит от многих факторов, которые можно объединить в три группы (табл.. 12).

n факторы,непосредственно определяющие возникновение отказов, и характеристики надежности программ;

n методы, способствующие проектированию корректных программ, снижающие вероятность программных ошибок и отказовых ситуаций при исполнении программ;

n метод, активно влияющие на повышение надежности функционирования программ позволяющие контролировать и поддерживать заданные показатели надежности.

Таблица 12.

Факторы, непосредственно определяющие надежность программ Методы проектирования корректных программ Методы контроля и обеспечения надежности программ
Особенности внешних абонентов и пользователей результатов программ Структурное проектирование программ и данных Методы использования избыточности
Требования к показателям надежности Структурное проектирование программных модулей Временной Информационной Программной
Инерционность внешних абонентов Структурное проектирование взаимодействия модулей Методы контроля программ, данных и вычислительного процесса
Необходимое время отклика на входные данные Структурирование данных Предпусковой контроль Оперативный контроль
Искажения исходных данных Тестирование программ Методы программного восстановления
Искажения данных поступающих от человека Детерминированное тестирование Восстановление текстов программ Исправление данных
Искажения данных поступающих по телекодовым каналам связи Статистическое тестирование Корректировка вычислительного процесса
Искажения данных в процессе накопления и хранения в ЭВМ Динамическое тестирование и контроль пропускной способности в реальном времени Методы испытаний на надежность Форсированные испытания
Ошибки в программах и их проявление   Испытания в нормальных условиях эксплуатации
Статистические характеристики ошибок и искажений:   Расчетно-экспериментальные методы определения надежности
Программ   Методы обеспечения надежности при сопровождении
массивов данных   Обеспечение сохранности программ эталонных версий
Вычислительного процесса   Обеспечение корректности внесения изменений и развития версий

Отказы при функционировании программ возникают вследствие взаимодействия данных и ошибок в программе. Характеристики ошибок в значительной степени определяются методами проектирования программ.Активные методы обнаружения и локализации программных ошибок базируются на тестировании различных видов: детерминированном, статистическом и динамическом. Однако все виды тестирования не гарантируют отсутствие ошибок в комплексах программ и высокую надежность. Для этого применяются методы контроля и обеспечения надежности программ путем использования программной, временной и информационной избыточности.

Ситуации проявления ошибок при исполнении программ можно разделить на три группы:

n Отказ - искажения вычислительного процесса, данных или программ, вызывающие полное прекращение выполнения функций системой;

n Искажения, кратковременно прерывающие функционирование системы - отказовые ситуации или сбои, характеризующиеся быстрым восстановлением без длительной потери работоспособности;

n Искажения, мало отражающиеся на вычислительном процессе - сбои и искажения, не создающие отказовые ситуации.

Основным показателем при классификации конкретных видов искажений является возможное время восстановления и степень проявления последствий произошедшего сбоя или отказовой ситуации:

n зацикливание, т.е. последовательная повторяющаяся реализация некоторой группы команд, не прекращающаяся без внешнего (для данного цикла) вмешательства;

n останов исполнения программ и прекращение решения функциональных задач;

n полная самоблокировка вычислительного процесса (клинч) из-за последовательного прекрестного обращения разных программ к одним и тем же ресурсам ЭВМ без освобождения ранее занятых ресурсов;

n прекращение или значительное снижение темпа решения некоторых задач вследствие перегрузки ЭВМ по пропускной способности;

n значительное искажение или полная потеря накопленной информации о текущем состоянии управляемого процесса или внешних абонентов;

n искажение процессов взаимного прерывания программ, приводящее к блокировке возможности некоторых типов прерываний.