Функциональные и числовые характеристики надежности ПО

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

- функция ненадежности (риска)

Q(t) = Вер { того, что отказ ПО возникнет до момента t };

- функция надежности

Р(t) = Вер { того, что отказ ПО возникнет после момента t };

- плотность вероятности отказа

- функция интенсивности отказов

,

являющаяся условной вероятностью возникновения отказа ПО на отрезке (t, t+dt) при условии исправности всех программ до момента t;

- средняя наработка на отказ ПО

.

Основная особенность характеристик надежности ПО заключается в их зависимости от числа ошибок N(0), имеющихся в сертифицированных (сданных в эксплуатацию) программах. Действительно, если программа свободна от ошибок и N(0) = N0 = 0, то Р(τ) 1 (рис. 4.6).

Рис.4.6 – Зависимость функции надежности ПО от числа ошибок N

 

При >0 и > вероятность безотказной работы ПО тем быстрее стремится к нулю, чем больше по сравнению с , что иллюстрируют графики Р(τ) на рис. 4.6.

Таким образом, функция надежности ПО фактически превращается в семейство распределений , зависящих от числа скрытых ошибок N(0) в сертифицированном ПО.

Относительно поведения функции интенсивности отказов во времени τ можно сделать несколько гипотез. Первая из них заключается в том, что есть кусочно-постоянная функция с разрывами первого рода в моментах времени , j = 1, 2, …, когда проявляется очередная ошибка, возникает отказ программы и после удаления этой ошибки ПО становится надежнее, а уменьшается (см. рис. 4.7, где для простоты показано мгновенное восстановление программ). При этом «ремонтник» не вносит новых дефектов в программу, которая рано или поздно станет абсолютно надежной, а .

Рис. 4.7 – Зависимость интенсивности отказа ПО от числа ошибок N

 

Понятно, что данная гипотеза аналогична первой модели поведения ошибки в сертифицированном ПО. Зависимость интенсивности отказов от τ и N описывается формулой:

, < , j = 1, 2, …,

где - параметр; N(0) – число ошибок в ПО при τ =0; j – порядковый номер обнаруженной ошибки в момент , j = 1, 2, ….

Соответствующая данной гипотезе функция надежности ПО имеет вид:

, < } j = 1, 2, ….

Существуют и другие гипотезы о поведении функции интенсивности при переменном числе ошибок в ПО. В частности, предполагается возрастающий кусочно-линейный характер на отрезках j = 1, 2, …, где - моменты проявления и мгновенного удаления ошибки (рис. 4.8), или кусочно-линейный ниспадающий вид (рис. 4.9).

Рис. 4.8 - Возрастающая интенсивность Рис. 4.9 – Ниспадающая интенсивность отказа ПО при переменном числе ошибок отказа ПО при убывающем числе ошибок

 

Следует отметить слабую теоретическую обоснованность всех гипотез о характере функции и крайне недостаточное экспериментальное подтверждение их справедливости.

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

.

Для практических расчетов используется оценка , где - наработки до отказа тестируемого ПО, n – число отказов ПО на этапе его динамического тестирования.