Методы и средства инженерии программного обеспечения

       

Модели надежности Марковского и Пуассоновского типов


Марковский процесс характеризуется дискретным временем  и конечным множеством состояний. Временной параметр пробегает неотрицательные числовые значения, а процесс (цепочка) определяется набором вероятностей перехода  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   – число  проведенных экспериментов для  проверки работы ПС.

Таким образом, можно сделать вывод о том, что модели надежности ПС основаны на времени функционирования и/или  количестве отказов (ошибок),  полученных в программах в процессе их тестирования или эксплуатации. Модели надежности учитывает случайный  Марковский и пуассоновский характер соответственно процессов обнаружения ошибок в программах, а также  характер  и интенсивность отказов.  


Содержание раздела