Непрерывные эмпирические модели надежности ПО (НЭМП)
Для построения НЭМП используются следующие определения [6.5]:
Отказ – недопустимое отклонение характеристик процесса функционирования программы от требуемых.
Дефект – изъян программы, приводящий к отказу.
Ошибка – действие человека, вызывающее появление дефекта в программе.
Одной из наиболее ранних и популярных НЭМП является модель Джелински-Моранды [6.5, 6.7]. Эти авторы предложили интенсивность отказов ПО описывать кусочно-постоянной функцией, пропорциональной числу неустранимых дефектов. После каждого обнаруженного при опытной эксплуатации ПО дефекта интенсивность отказов скачком уменьшается на постоянную величину, а в промежутках между обнаружением и устранением следующего дефекта остается постоянной величиной. Таким образом, модель основана на следующих допущениях:
· случайное время между обнаружениями отказов в программе подчиняется экспоненциальному распределению;
· λ – интенсивность отказов ПО пропорциональна количеству еще оставшихся не выявленными дефектов в программе.
Согласно этим допущениям вероятность безотказной работы ПО как функция времени ti равна
, (6.1)
где ti- время между появлением (i-1) и i отказа,
, (6.2)
С - коэффициент пропорциональности,
N - количество первоначально заложенных дефектов в программе.
Как видно из (6.2) , коэффициенты C, N - неизвестны и их необходимо экспериментально определять. Недостаток модели состоит в том, что при неточном экспериментальном определении величины N интенсивность отказа λi может стать отрицательной.
Покажем определение искомых коэффициентов, используя метод максимального правдоподобия [6.8].
Функция правдоподобия – F(t1, t2,.., tn), равная произведению плотностей вероятности времени появления отказов ПО, для определения неизвестных параметров должна быть максимальной:
F(t1, t2,.., tn) → max, (6.3)
где t1, t2,.., tn – временные отрезки между проявлениями отказов в ПО при отладке или опытной эксплуатации.
Покажем, как можно воспользоваться выражением (6.3) для получения коэффициентов C, N.
Допустим [6.7], что при отладке получены следующие значения наработки между отказами ПО: t1 = 10 ч, t2 = 20 ч, t3 = 25 ч.
Необходимо определить, сколько в среднем времени система проработает до 4 отказа. Обозначим, к = 4.
F(t1, t2,.., tn) = . (6.4)
Известно [6.8], что максимум функций F(t1, t2,.., tn) и ln F(t1, t2,.., tn) имеет место при одних и тех же значениях искомых переменных.
. (6.5) Поскольку в точке максимума частные производные функции по неизвестным параметрам равны 0, получим систему из двух уравнений:
, (6.6)
. (6.7)
Из (6.7) следует, что
. (6.8)
Подставим (6.8) в (6.2):
. (6.9)
Из (6.9) получим значение N методом перебора.
Если N = 3, то левая часть (6.9) равна 3(10+25+20)/(1/3+1/2+1) = 90, в правой части 3*10+2*20+1*25 = 95. При N = 4 слева получится 152, а справа – 150. При N = 5 получится 210 и 205 соответственно.
Следовательно, наименьшая ошибка в (6.9) будет при N = 4.
Из (6.8) С = (1/4+1/3+1/2)/(10+ 20+25) = 0.02.
Из (6.2) λ4 = 0.02(4-3) = 0.02 (1/ч).
Отсюда средняя наработка программы до появления 4 ошибки ч.
Модель Шумана[6.5,6.7] отличается от рассмотренной выше модели Джелински-Моранды только тем, что периоды времени отладки и эксплуатации рассматриваются отдельно. Модель основана на следующих допущениях:
· в момент сдачи ПО на тестирование (отладку) в нем имеется E0 ошибок, в ходе корректировок новые ошибки не вносятся;
· общее число I – машинных команд не изменяется при корректировках;
интенсивность отказов λ ПО пропорциональна количеству дефектов, оставшихся в нем после отладки в течение времени τ, , (6.10)
где εс(τ) - отношение числа ошибок , устраненных в течение времени отладки отладки [0, τ] к общему числу команд I ;
· интенсивность отказов λ считается постоянной величиной на отрезке времени эксплуатации [0, t].
Следовательно, в этой модели надежности ПО различаются два времени:
· t – наработка программы в эксплуатации, ч,
· τ – время отладки, ч .
Тогда вероятность безотказной работы ПО на отрезке времени эксплуатации равна
. (6.11) Из эксперимента, используя метод максимального правдоподобия, найдем для двух периодов отладки τ1 и τ2 (τ1 < τ2) значения двух неизвестных коэффициентов – С и Е0.