Московский физико-технический институт
Опубликован: 24.09.2008 | Доступ: свободный | Студентов: 4596 / 2260 | Оценка: 4.52 / 4.48 | Длительность: 25:15:00
Специальности: Системный архитектор
Лекция 11:

Модели качества и надежности в программной инженерии

10.2.3. Марковские и пуассоновские модели надежности

Марковский процесс характеризуется дискретным временем и конечным множеством состояний. Временной параметр пробегает неотрицательные числовые значения, а процесс (цепочка) определяется набором вероятностей перехода p_{ij}(n), т.е. вероятностью перейти на n -шаге из состояния i в состояние j. Процесс называется однородным, если он не зависит от n. В моделях, базирующихся на процессе Маркова, предполагается, что количество дефектов, обнаруженных в ПС, в любой момент времени зависит от поведения системы и представляется в виде стационарной цепи Маркова [10.5, 10.7, 10.10]. При этом количество дефектов конечное, но является неизвестной величиной, которая задается для модели в виде константы. Интенсивность отказов в ПС или скорость прохода по цепи зависит лишь от количества дефектов, которые остались в ПС. К этой группе моделей относятся: Джелински- Моранды [10.20], Шика-Вулвертона, Шантикумера [10.21] и др.

Ниже рассматриваются некоторые модели надежности, которые обеспечивают рост надежности ПО (модели роста надежности [10.7, 10.10]), находят широкое применение на этапе тестирования и описывают процесс обнаружения отказов при следующих предположениях:

  • все ошибки в ПС не зависят друг от друга с точки зрения локализации отказов;
  • интенсивность отказов пропорциональна текущему числу ошибок в ПС (убывает при тестировании программного обеспечения);
  • вероятность локализации отказов остается постоянной;
  • локализованные ошибки устраняются до того, как тестирование будет продолжено;
  • при устранении ошибок новые ошибки не вносятся.

Приведем основные обозначения величин при описании моделей роста надежности:

  • m - число обнаруженных отказов ПО за время тестирования;
  • Х_{i} - интервалы времени между отказами i - 1 и i, при i =1,\dots, m ;
  • S_{i} - моменты времени отказов (длительность тестирования до i -отказа), S_{i} = X_{k} при i = 1, \dots, m ;
  • T - продолжительность тестирования ПО (время, для которого определяется надежность);
  • N - оценка числа ошибок в ПО в начале тестирования;
  • M - оценка числа прогнозированных ошибок;
  • MТ - оценка среднего времени до следующего отказа;
  • E(T_{p}) - оценка среднего времени до завершения тестирования;
  • Var(T_{p}) - оценка дисперсии;
  • R(t) - функция надежности ПО;
  • Z_{i}(t) - функция риска в момент времени t между i - 1 и i -отказами;
  • с - коэффициент пропорциональности;
  • b - частота обнаружения ошибок.

Далее рассматриваются несколько моделей роста надежности, основанные на этих предположениях и использовании результатов тестирования программ в части отказов, времени между ними и др.

Модель Джелинского-Моранды. В этой модели используются исходные данные, приведенные выше, а также:

m - число обнаруженных отказов за время тестирования;

X_{i} - интервалы времени между отказами;

Т - продолжительность тестирования.

Функция риска Z_{i}(t) в момент времени t расположена между i - 1 и i имеет вид:

Z_{i}(t) = c (N - n_{i-1}),

где i = 1, \dots, m ; T_{i-1} < t < T_{i}.

Эта функция считается ступенчатой кусочнопостоянной функцией с постоянным коэффициентом пропорциональности и величиной ступени - с. Оценка параметров c и N производится с помощью системы уравнений:

\begin{array}{c}
\sum_{i=1}^m{\cfrac{1}{N-N_{i-1}}} - \sum_{i=1}^m{cX_i} =0 ,\\
\frac{n}{c} - NT - \sum_{i=1}^m{X_i n_{i-1}} = 0
\end{array}

При этом суммарное время тестирования вычисляется так: T = \sum_{i=1}^m{X_i}

Выходные показатели для оценки надежности относительно указанного времени T включают:

  • число оставшихся ошибок M_{m} = N - m ;
  • среднее время до текущего отказа MТ_{m} = 1/(N - m) c ;
  • среднее время до завершения тестирования и его дисперсию
    \begin{array}{c}
E(T_p)= \sum_{i=1}^{N-n}{\cfrac{1}{ i c}},\\
Var(T_p)= \sum_{i=1}^{N-n\}{\cfrac{1}{(i c)^2}}.
\end{array}

При этом функция надежности вычисляется по формуле:

Rm (t) = exp (- (N - m) ct),

при t > 0 и числе ошибок, найденных и исправленных на каждом интервале тестирования, равным единице.

Модель Шика-Вулвертона. Модель используется тогда, когда интенсивность отказов пропорциональна не только текущему числу ошибок, но и времени, прошедшему с момента последнего отказа. Исходные данные для этой модели аналогичны выше рассмотренной модели Джелински-Моранды:

  • m - число обнаруженных отказов за время тестирования,
  • X_{i} - интервалы времени между отказами,
  • Т - продолжительность тестирования.

Функции риска Z_{i}(t) в момент времени между i - 1 и i - m отказами определяются следующим образом:

\begin{array}{c}
Z_i(t) = c(N-n_{i-1}), \text{где } i =1, \dots,m;\; T_{i-1} < t < T_i \\
T = \sum_{i=1}^m{X_i}
\end{array}

Эта функция является линейной внутри каждого интервала времени между отказами, возрастает с меньшим углом наклона. Оценка c и N вычисляется из системы уравнений:

К выходным показателям надежности относительно продолжительности T относятся:

  • число оставшихся ошибок Mm = N - m ;
  • среднее время до следующего отказа MTт = (р / (2 (N - m) c) )1/2;
  • среднее время до завершения тестирования и его дисперсия
    \begin{array}{c}
E(T_p)= \sum_{i=1}^{N-m}{\sqrt{\cfrac{\pi}{2 i c}}}\;,\\
Var(T_p)= \sum_{i=1}^{N-m}{\cfrac{2-\pi/2}{i c}}.
\end{array}

Функция надежности вычисляется по формуле:

R_{T}(t) = exp (- \frac{(N - m) ct^{2}}{2}), t \ge 0.

Модели пуассоновского типа базируются на выявлении отказов и моделируются неоднородным процессом, который задает \{M(t), t \ge 0\} - неоднородный пуассоновский процесс с функцией интенсивности \lambda(t), что соответствует общему количеству отказов ПС за время его использования t.

Модель Гоело-Окумото. В основе этой модели лежит описание процесса обнаружения ошибок с помощью неоднородного пуассоновского процесса, ее можно рассматривать как модель экспоненциального роста. В этой модели интенсивность отказов также зависит от времени. Кроме того, в ней количество выявленных ошибок трактуется как случайная величина, значение которой зависит от теста и других условных факторов.

Исходные данные этой модели:

  • m - число обнаруженных отказов за время тестирования;
  • X_{i} - интервалы времени между отказами;
  • Т - продолжительность тестирования.

Функция среднего числа отказов, обнаруженных к моменту t, имеет вид

m (t) = N (1- e^{-bt}),

где b - интенсивность обнаружения отказов и показатель роста надежности q(t) = b.

Функция интенсивности \lambda(t) в зависимости от времени работы до отказа равна

\lambda(t) = Nb^{-b} , t \ge 0.

Оценка b и N получаются из решения уравнений:

\begin{array}{c}
m/N -1+ \exp\{(-bT)\} = 0 \\
m/b - \sum_{i=1}^m\{t_i\} - N_m \exp\{(-bT)\} = 0.
\end{array}

Выходные показатели надежности относительно времени T определяют:

  1. среднее число ошибок, которые были обнаружены в интервале [0, T], по формуле E (N_{T}) = N exp(-bT),
  2. функцию надежности
    R_{T} (t) = exp(N (e^{-bt} - e^{-bt (t+ т) })),  t \ge  0.

В этой модели обнаружение ошибки трактуется как случайная величина, значение которой зависит от теста и операционной среды.

В других моделях количество обнаруженных ошибок рассматривается как константа.В моделях роста надежности исходной информацией для расчета надежности являются интервалы времени между отказами тестируемой программы, число отказов и время, для которого определяется надежность программы при отказе. На основании этой информации по моделям определяются показатели надежности вида:

  • вероятность безотказной работы;
  • среднее время до следующего отказа;
  • число необнаруженных отказов (ошибок);
  • среднее время дополнительного тестирования программы.

Модель анализа результатов прогона тестов использует в своих расчетах общее число экспериментов тестирования и число отказов. Эта модель определяет только вероятность безотказной работы программы и выбрана для случаев, когда предыдущие модели нельзя использовать (мало данных, некорректность вычислений). Формула определения вероятности безотказной работы по числу проведенных экспериментов имеет вид

P = 1 - Neх /N,

где Neх - число ошибочных экспериментов, N - число проведенных экспериментов для проверки работы ПС.

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

Контрольные вопросы и задания

  1. Определите понятие качество ПО.
  2. Назовите основные аспекты и уровни модели качества ПО.
  3. Определите характеристики качества ПО и их назначение.
  4. Какие методы используются при определении показателей качества?
  5. Определите метрики программного продукта и их составляющие.
  6. Какие стандарты в области качества ПО существуют?
  7. Назовите основные цели и задачи системы управления качеством.
  8. В чем суть инженерии качества?Назовите критерии классификации моделей надежности.
  9. Дайте определение типов моделей надежности и их базис.
  10. В чем отличие марковских и пуассоновских моделей надежности?
  11. Сформулируйте основные параметры и предположения модели Джелинского.
Александр Медов
Александр Медов

Здравствуйте,при покупке печатной формы сертификата,будут ли выданы обе печатные сторны?

Александр Медов
Александр Медов

Здравствуйте, прошел курс МБА Управление ИТ-проектами и направил документы на получение диплома почтой. Подскажите, сроки получения оного в бумажной форме?

: