Непрерывные эмпирические модели надежности ПО (НЭМП)
Для построения НЭМП используются следующие определения [6.5]:
Отказ – недопустимое отклонение характеристик процесса функционирования программы от требуемых.
Дефект – изъян программы, приводящий к отказу.
Ошибка – действие человека, вызывающее появлению дефекта в программе.
Одной из наиболее ранних и популярных НЭМП является модель Джелински – Моранды [6.5, 6.6]. Эти авторы предложили интенсивность отказов ПО описывать кусочно-постоянной функцией, пропорциональной числу неустранимых дефектов. После каждого обнаруженного при опытной эксплуатации ПО дефекта интенсивность отказов скачком уменьшается на постоянную величину, а в промежутках между обнаружением и устранением следующего дефекта остается постоянной величиной. Таким образом, модель основана на следующих допущениях:
· случайное время между обнаружениями отказов в программе подчиняется экспоненциальному распределению;
· λ – интенсивность отказов ПО пропорциональна количеству еще оставшихся не выявленными дефектов в программе.
Согласно этим допущениям вероятность безотказной работы ПО как функция времени ti равна
(6.1)
где ti- время между появлением (i-1) и i отказа;
(6.2)
С- коэффициент пропорциональности;
N- количество первоначально заложенных дефектов в программе.
Как видно из (6.2) , коэффициенты C, N - неизвестны, и их необходимо экспериментально определять. Недостаток модели состоит в том, что при неточном экспериментальном определении величины N интенсивность отказа λi может стать отрицательной.
Покажем определение искомых коэффициентов, используя метод максимального правдоподобия [6.8].
Функция правдоподобия – F (t1, t2,…tn), равная произведению плотностей вероятности времени появления отказов ПО, для определения неизвестных параметров должна быть максимальной:
(6.3)
где t1, t2,…tn – временные отрезки между проявлениями отказов в ПО при отладке или опытной эксплуатации.
Покажем, как можно воспользоваться выражением (6.3) для получения коэффициентов C, N.
Допустим [6.6], при отладке получены следующие значения наработки между отказами ПО: t1=10ч, t2=20ч, t3=25ч.
Необходимо определить, сколько в среднем времени система проработает до 4 отказа. Обозначим, к = 4.
(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.6] отличается от рассмотренной выше модели Джелински - Моранды только тем, что периоды времени отладки и эксплуатации рассматриваются отдельно. Модель основана на следующих допущениях:
· в момент сдачи ПО на тестирование ( отладку) в нем имеется E0 ошибок, в ходе корректировок новые ошибки не вносятся;
· общее число I – машинных команд не изменяется при корректировках;
· интенсивность отказов λ ПО пропорциональна количеству дефектов, оставшихся в нем после отладки в течение времени τ,
· интенсивность отказов λ считается постоянной величиной на отрезке времени эксплуатации [0, t].
(6.10)
εс(τ)- отношение числа ошибок , устраненных в течение времени отладки отладки τ л общему числу команд I .
Следовательно, в этой модели надежности ПО различаются два времени:
· t – наработка программы в эксплуатации (ч.),
· τ – время отладки .
Тогда вероятность безотказной работы ПО на отрезке времени эксплуатации равна
(6.11)
Из эксперимента, используя метод максимального правдоподобия, найдем для двух периодов отладки τ1 и τ2 (τ1 < τ2 ) значения двух неизвестных коэффициентов – С и Е0.