Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Надежность.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
14.98 Mб
Скачать

4.3. Повышение надежности программного обеспечения

Повышение надежности программ

Программное обеспечение состоит из большого числа программ, подпрограмм и модулей, находящихся под управлением операционной системы или программы-диспетчера. Выполнение этих программ осуществляется последовательно во времени на одном и том же процессоре ЭВМ. Если выполняемые программы предназначены для получения одного результата y (или выполнения одной функции АСУ), то в надежностном отношении программный комплекс представляет собой простую систему без избыточности и вероятность его безотказной работы равна произведению вероятностей безотказного функционирования каждой программы Пi

,

где m – число программ в ПО (рис. 4.10)

Рис. 4.10 – Схема решения задачи с помощью ПО на однопроцессорной ЭВМ

Надежность такого ПО определяется интенсивностью отказов самой ненадежной программы с наименьшей функцией Рi(t) или с наибольшим значением , . Отсюда следует последовательность действий по повышению надежности ПО:

- определяются самые «ненадежные» программы ПО, имеющие наименьшие оценки , где - наработки до отказа i- й программы на этапе динамического тестирования,

- «ненадежные» программы подвергаются дополнительному, более жесткому тестированию (реже – статическому, чаще - динамическому), где используются другие тесты и, в том числе, те задачи, для решения которых создается ПО;

- если при дополнительном тестировании выявлено и удалено достаточно много ошибок и значения стали близки к аналогичным величинам для более «надежных» программ, то все m программ стали почти равнонадежными и надежность всего ПО возможно стала удовлетворять предъявляемым к нему требованиям;

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

Повышение надежности по путем резервирования

Другой перспективный путь повышения надежности ПО (и особенно ПО РВ) связан с созданием в программной системе некоторой избыточности. Применительно к ПО РВ различают четыре вида резервирования: временное, информационное, программное, программно-техническое.

Временное резервирование ПО заключается в многократном прогоне одного и того же программного комплекса с неизменными исходными данными и последующего анализа полученных результатов y (рис. 4.11 а).

Рис. 4.11 а – Схема временного резервирования ПО (нагруженный вариант “два из трех”)

Подобное нагруженное резервирование позволяет устранять программные сбои и выявлять случайные устойчивые отказы, требующие восстановления программ. Анализ результатов - номер прогона ПО, на предмет выявления «неразумных» решений осуществляет эксперт (группа экспертов) или, реже специальная программа-анализатор (последнее возможно для тех хорошо изученных задач, для которых известны границы Г(у) множества ). Выбор правильного результата из ряда «разумных», но различающихся осуществляется по мажоритарному правилу «два из трех» или, реже, «три из пяти».

Временное резервирование реализуется достаточно просто, однако требует заметного l-кратного увеличения затрат машинного времени на получение решения у или повышения быстродействия ЭВМ (последнее существенно удорожает вычислительную систему).

С позиции экономии ресурсов ЭВМ более предпочтительно ненагруженное временное резервирование, когда повторные прогоны ПО выполняют только при появлении «неразумного» или «подозрительного» решения . Однако для реализации такого способа резервирования ПО РВ необходимо наличие программы-анализатора, которая автоматически идентифицирует и реализует с помощью ключа К режим повторного прогона (рис. 4.11 б).

Рис. 4.11 б – Схема временного резервирования ПО (ненагруженный вариант)

Кроме того, ненагруженное временное резервирование ПО РВ предъявляет повышенные требования к быстродействию ЭВМ, правда в сравнительно редких случаях отказов программ.

Информационное резервирование основано на дублировании исходной информации и двукратном последовательном решении (одним и тем же ПО) задачи и с данными и эквивалентными им данными (рис. 4.12). Если , то ПО работоспособно, при имеет место устойчивый отказ какой-либо из программ ПО, при наблюдается сбой ПО и требуется еще раз решить задачу с данными и , и с помощью правила «два из трех» выбрать правильный результат. Функции анализатора АН выполняют эксперты или, при известных границах множества «разумных» решений , специальные программы-идентификаторы (рис. 4.12).

Рис. 4.12- Схема нагруженного информационного резервирования ПО

Информационное резервирование допускает нагруженный и/или ненагруженный режимы работы. Основной трудностью при реализации информационного резервирования ПО РВ является получение второго набора исходных данных , количественно и семантически эквивалентных данным .