Модели надежности Марковского и Пуассоновского типов
Марковский процесс характеризуется дискретным временем и конечным множеством состояний. Временной параметр пробегает неотрицательные числовые значения, а процесс (цепочка) определяется набором вероятностей перехода pij
(n), т.е. вероятностью на n– шаге перейти из состояния i в состояние j. Процесс называется однородным, если он не зависит от n.
В моделях, базирующихся на процессе Маркова, предполагается, что количество дефектов, обнаруженных в ПС, в любой момент времени зависит от поведения системы и представляется в виде стационарной цепи Маркова [13, 17, 18]. При этом количество дефектов конечное, но является неизвестной величиной, которая задается в для модели виде константы. Интенсивность отказов в ПС или скорость прохода по цепи зависит лишь от количества дефектов, которые остались в ПС.
К этой группе моделей относятся: Джелинського–Моранды [23], Шика–Вулвертона [24], Шантикумера [24] и др.
Ниже рассматриваются некоторые модели надежности, которые обеспечивают рост надежности ПО (называются моделями роста надежности [17]), находят широкое применение на этапе тестирования и описывают процесс обнаружения отказов при следующих основных предположениях:
– все ошибки в ПС не зависят друг от друга с точки зрения локализации отказов;
– интенсивность отказов пропорциональна текущему числу ошибок в ПС (убывает при тестировании программного обеспечения);
– вероятность локализации отказов остается постоянной;
– локализованные ошибки устраняются до того, как тестирование будет продолжено;
– при устранении ошибок новые ошибки не вносятся.
Приведем основные обозначения используемых величин при описании моделей роста надежности:
m – число обнаруженных отказов ПО за время тестирования;
Хi
– интервалы времени между отказами i–1 и i, при i =1,..., m;
Si – моменты времени отказов (длительность тестирования до i– отказа), Si
= Xk при i = 1,..., m;
T – продолжительность тестирования программного обеспечения (время, для которого определяется надежность);
N – оценка числа ошибок в ПО в начале тестирования;
M – оценка числа прогнозированных ошибок;
MТ – оценка среднего времени до следующего отказа;
E (Tp)
– оценка среднего времени до завершения тестирования;
Var (Tp)
– оценка дисперсии;
R ( t) – функция надежности ПО;
Zi ( t) – функция риска в момент времени t между i–1 и i отказами;
с – коэффициент пропорциональности;
b – частота обнаружения ошибок.
Далее рассматриваются несколько моделей роста надежности, основанные на этих предположениях и использовании результатов тестирования программ в части отказов, времени между ними и др.
Модель Джелински–Моранды. В этой модели используются исходные данные, приведенные выше, а также:
m – число обнаруженных отказов за время тестирования,
Xi – интервалы времени между отказами,
Т – продолжительность тестирования.
Функция риска Zi
(t) в момент времени t расположена между i–1 и i имеет вид:
Zi (t) = c (N – n i–1) ,
где i = 1 ,.., m; Ti–1 < t < Ti .
Эта функция считается ступенчатой кусочно–постоянной функцией с постоянным коэффициентом пропорциональности и величиной ступени – с.
Оценка параметров c и N производится с помощью системы уравнений:
m m
S 1 / (N – ni–1) – S c Xi = 0
i =1 i =1
m
n/c – NT – S Xi ni–1 = 0
i =1
m
При этом суммарное время тестирования вычисляется так: Т = S Хi
i =1
Выходные показатели для оценки надежности относительно указанного времени T
включают:
– число оставшихся ошибок Mт
= N–m;
– среднее время до текущего отказа MТт = 1/( N–m) c;
– среднее время до завершения тестирования и его дисперсия
N–n
E (Tp) = S (1/ ic) ,
i =1
N–n
Var (Tp) = S 1/( ic) 2
i
=1
При этом функция надежности вычисляется по формуле:
Rт ( t) = exp (– (N– m) ct),
при t>0 и числе ошибок, найденных и исправленных на каждом интервале тестирования, равным единице.
Модель Шика–Волвертона. Модель используется тогда, когда интенсивность отказов пропорциональна не только текущему числу ошибок, но и времени, прошедшему с момента последнего отказа. Исходные данные для этой модели аналогичны выше рассмотренной модели Джелински–Моранды:
m – число обнаруженных отказов за время тестирования,
Xi – интервалы времени между отказами,
Т – продолжительность тестирования.
Функции риска Zi (t) в момент времени между i–1 и i–m отказами определяются следующим образом:
Zi ( t) = c (N – n i –1), где i = 1 ,..., m; Ti–1 < t < Ti ,
m
Т = S Хi .
i =1
Эта функция является линейной внутри каждого интервала времени между отказами, возрастает с меньшим углом наклона.
Оценка c и N вычисляется из системы уравнений:
m m
S 1/(N – ni–1) – S Xi 2 /2 = 0
i =1 i =1
m
n/c – S (N – ni–1 ) Xi 2 / 2 = 0
i =1
К выходным показателям надежности относительно продолжительности T относятся:
– число оставшихся ошибок Mт = N–m;
– среднее время до следующего отказа MTт = (p / (2 ( N–m) c) ) 1/2 ;
– среднее время до завершения тестирования и его дисперсия
N–m
E (Tp) = S (p / (2 i c)) 1/2 ,
i=1
N–m
Var (Tp) = S ( (2– p /2) / i c );
i=1
Функция надежности вычисляется по формуле:
R Т
( t) = exp (–(N–m) ct2 /2) , t ³ 0.
Модель Пуассоновского типа базируется на выявлении отказов и моделируется неоднородным процессом, который задает {M(t), t³0} – неоднородный пуассоновский процесс с функцией интенсивности l(t), что соответствует общему количеству отказов ПС за время его использования t.
Модель Гоело–Окумото. В основе этой модели лежит описание процесса обнаружения ошибок с помощью неоднородного Пуассоновского процесса, ее можно рассматривать как модель экспоненциального роста. В этой модели интенсивность отказов также зависит от времени. Кроме того, в ней количество выявленных ошибок трактуется как случайная величина, значение которой зависит от теста и других условных факторов.
Исходные данные этой модели:
m – число обнаруженных отказов за время тестирования,
Xi – интервалы времени между отказами,
Т – продолжительность тестирования.
Функция среднего числа отказов, обнаруженных к моменту t имеет вид:
m ( t) = N (1 – e –bt ) ,
где b – интенсивность обнаружения отказов и показатель роста надежности q ( t) = b.
Функция интенсивности l ( t) в зависимости от времени работы до отказа равна
l ( t) = Nb –bt , t ³ 0.
Оценка b и N получаются из решения уравнений:
m/N –1 + exp (–bT) = 0
m
m/b – S ti – Nm exp (–bT) =0
i=1
Выходные показатели надежности относительно времени T определяют:
1) среднее число ошибок, которые были обнаружены в интервале [ 0, T]
E (NT
) = N exp (–bT) ,
2) функцию надежности
RT ( t) = exp (–N (e –bt – e –bt (t+т) )) , t ³ 0.
В этой модели обнаружение ошибки, трактуется как случайная величина, значение которой зависит от теста и операционной среды. В других моделях количество обнаруженных ошибок рассматривается как константа.
В моделях роста надежности исходной информацией для расчета надежности являются интервалы времени между отказами тестируемой программы, число отказов и время, для которого определяется надежность программы при отказе. На основании этой информации по моделям определяются следующие показатели надежности:
– вероятность безотказной работы;
– среднее время до следующего отказа;
– число необнаруженных отказов (ошибок);
– среднее время для дополнительного тестирования программы.
Модель анализа результатов прогона тестов использует в своих расчетах общее число экспериментов тестирования и число отказов. Эта модель определяет только вероятность безотказной работы программы и выбрана для случаев, когда предыдущие модели нельзя использовать (мало данных, некорректность вычислений). Формула определения вероятности безотказной работы по числу проведенных экспериментов имеет вид:
P = 1 – Neх /N ,
где Neх – число ошибочных экспериментов, N – число проведенных экспериментов для проверки работы ПС.
Таким образом, можно сделать вывод о том, что модели надежности ПС основаны на времени функционирования и/или количестве отказов (ошибок), полученных в программах в процессе их тестирования или эксплуатации. Модели надежности учитывает случайный Марковский и пуассоновский характер соответственно процессов обнаружения ошибок в программах, а также характер и интенсивность отказов.