Общая характеристика моделей надежности программных средств

Автор: Пользователь скрыл имя, 24 Марта 2013 в 23:04, реферат

Описание работы

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

Содержание

Введение 3
1 Аналитические модели надежности ПС 4
1.1 Динамические модели надежности 4
1.2 Статические модели надежности 20
2 Эмпирические модели надежности 34
Заключение 42
Список использованных источников 43

Работа содержит 1 файл

Модели надежности.doc

— 647.50 Кб (Скачать)

Последовательность состояний {т, т - 1 , т - 2 , т-3 и т.д.} соответствует периодам времени, когда ошибки исправляются. Например, в состоянии т-1 вторая ошибка уже обнаружена, но еще не исправлена.

Любое состояние модели определяется рядом переходных вероятностей (Pij), где Pij означает вероятность перехода из состояния i в состояние j и не зависит от предшествующих и последующих состояний системы, кроме состояний i и j. Вероятность перехода из состояния (n – k) к состоянию (m – k) есть λn–k*∆t для k = 0,1,2…, где λ — интенсивность проявления ошибок.

Надежность ПО в данной модели определяется выражением

     (34)

 

Модели роста  надежности

Модели роста надежности (Software reliability growth models) – прогнозные модели, в которых предполагается, что в процессе тестирования надежность увеличивается

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

Исходные данными для моделей  роста надежности:

  • Количество отказов на этапах тестирования
  • Времена между отдельными отказами

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

  • при устранении ошибок новые ошибки не вносятся и надежность программы постоянно увеличивается
  • интенсивность проявления ошибок не изменяется между исправлениями ошибок и является функцией от числа оставшихся ошибок

,

Рисунок 1 – График модели роста надёжности

где R(t) – вероятность отсутствия отказов на интервале времени [0,t]

 

Модель Вейбулла

Одна из используемых динамических моделей

    (35)

Прогноз числа обнаруживаемых ошибок в 8 проектах с открытым кодом, корреляция 0.1-0.8 показан на рисунке 2.

Рисунок  2 – Прогноз числа  обнаружения ошибок

 

 

Модель Шнейдевинда

Эта модель основана на подходе, что  чем позже встречаются ошибки, тем большее значение они имеют  для процесса предсказания ошибок в  программе.  Предположим, что есть m интервалов тестирования, и пускай на i-том интервале обнаружено ошибок. Тогда возможно три различных подхода:

  1. Использовать данные об ошибках на всех интервалах;
  2. Не рассматривать данные об ошибках, обнаруженных на первых (s-1) интервалах, и использовать только данные с s-того по  m-тый;
  3. Использовать суммарное количество ошибок, обнаруженных с первого по  (s-1)-ый интервал, т.е. , и отдельные ошибки с s-того по m-тый интервалы. 

Подход 1 предлагается использовать в тех случаях, когда  для предсказания будущего состояния ПО необходимы данные со всех интервалов тестирования. Подход 2 – когда есть причины полагать, что произошел некий перелом в процессе обнаружения ошибок, и только данные последних m – (s-1) интервалов имеет смысл учитывать в прогнозах на будущее. И наконец, подход 3 является компромиссом между первыми двумя подходами.

Модель основана на следующих предположениях:

  1. Количество ошибок на интервале тестирования не зависит от количества ошибок на остальных интервалах;
  2. Количество обнаруженных ошибок убывает от одного интервала к другому;
  3. Все интервалы тестирования имеют одинаковую длину;
  4. Интенсивность обнаружения ошибок пропорциональна количеству ошибок, содержащихся в программе в текущий момент времени.

 

1.2 Статические модели надежности

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

 

Модель Миллса

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

Тестируя программу в течение  некоторого времени, собирают статистику об ошибках. В момент оценки надежности по протоколу искусственных ошибок все ошибки делятся на собственные  и искусственные. Соотношение

      (36)

дает возможность оценить N — первоначальное число ошибок в программе. В данном соотношении, которое называется формулой Миллса, S — количество искусственно внесенных ошибок, п — число найденных собственных ошибок, V — число обнаруженных к моменту оценки искусственных ошибок.

Вторая часть модели связана  с проверкой гипотезы от N. Предположим, что в программе имеется К собственных ошибок, и внесем в нее еще S ошибок. В процессе тестирования были обнаружены все S внесенных ошибок и п собственных ошибок.

Например, если в программу внесено 20 ошибок и к некоторому моменту  тестирования обнаружено 15 собственных  и 5 внесенных ошибок, значение N можно оценить в 60. В действительности N можно оценивать после обнаружения каждой ошибки; Миллс предлагает во время всего периода тестирования отмечать на графике число найденных ошибок и текущие оценки для N.

Тогда по формуле Миллса мы предполагаем, что первоначально в программе  было N = п ошибок. Вероятность, с которой можно высказать такое предположение, возможно рассчитать по следующему соотношению:

     (37)

Таким образом, величина С является мерой доверия к модели и показывает вероятность того, насколько правильно найдено значение N. Эти два связанных между собой по смыслу соотношения образуют полезную модель ошибок: первое предсказывает возможное число первоначально имевшихся в программе ошибок, а второе используется для установления доверительного уровня прогноза.

Пример: если мы утверждаем что в  программе нет ошибок, вносим 10 ошибок, то при условии, что обнаруживались только внесенные ошибки, уровень доверия к прогнозу равен 0.91.

 

Модели Липова

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

  1. Все ошибки равновероятны и независимы друг от друга.
  2. Все ошибки считаются одинаково серьезными.
  3. Интенсивность обнаружения ошибок постоянна на всем интервале тестирования.
  4. На i-том интервале тестирования обнаруживается  fi ошибок, но только ni из них исправляется.

Последнее предположение значительно отличает данную модель от всех моделей, рассмотренных ранее. Таким образом, функция риска определяется следующим выражением:

     (38)

где  - общее количество ошибок, исправленных к моменту времени  ti-1,  а ti - это время окончания i-го интервала тестирования (измеренное обычным способом или таймером процессора). Еще одно отличие данной модели от модели Джелинского-Моранды в том, что интервалы ti фиксированные, а не произвольные.

Вторая модель Липова (обобщение модели Шика-Уолвертона) основана на следующих предположениях. Интенсивность обнаружения ошибок пропорциональна текущему количеству ошибок в ПО и общему времени, затраченному на его тестирование, включая также «среднее» время поиска ошибки, обнаруженной на интервале тестирования. С учетом этих предположений, функция риска задается следующим выражением:

                        (39)

где Fi-1  - общее количество ошибок, исправленных к моменту времени ti-1. Формула (39) отличается от первой модели Липова вторым множителем - ,  отражающем изменение интервала тестирования.

 

Простая интуитивная  модель

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

Получается, что первая группа обнаружила N1 ошибок, вторая — N2. а N12 — это ошибки, обнаруженные обеими группами.

Если обозначить через N неизвестное количество ошибок, присутствовавших в программе до начала тестирования, то можно эффективность тестирования каждой из групп определить как

E1 = N1 / N;   E2 = N2 / N      (40)

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

E1 = N1 / N = N12 / N     (41)

Из формулы (40) N2= E2N, подставив в (41), получим:

E1 = N12 / E2*N = N1*N2 / N12    (42)

 

Модель Коркорэна

 Модель Коркорэна относится к статическим моделям надежности ПС, так как в ней не используются параметры времени тестирования и учитывается только результат N испытаний, в которых выявлено N1 ошибок i-го типа. Модель использует изменяющиеся вероятности отказов для различных типов ошибок.

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

    (43)

где N0 — число безотказных выполнений программы; N — общее число прогонов; К — априори известное число типов.


ai, если Ni > 0

Yi =

0, если Ni = 0,

 

где ai — вероятность выявления при тестировании ошибки i-го типа.

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

Например, предположим, что две  группы нашли по 20 и 30 ошибок соответственно, и, сравнивая их, мы замечаем, что  восемь ошибок из них — общие. Имеем Е1 = 0,27, Е2=0,4, что дает оценку N=74 и примерно 32 необнаруженные ошибки (74–20–30+8).

 

Модель Нельсона

Данная модель предложена Нельсоном. В основе модели лежит представление программы в виде некоторой функции F( Ei ), где Ei – набор значений данных, необходимых для выполнения прогона программы:

E = {Ei | i = 1,2,...,N},     (44)

где E – множество всех значений наборов входных данных; N – число возможных наборов входных данных Ei.

Выполнение программы (прогон программы) приводит к получению для каждого Ei определенного значения функции F( Ei ) . Наличие дефектов в программе приводит к тому, что ей на самом деле соответствует функция F′, отличная от заданной функции F. Для некоторого Ei отклонение F′ от F находится в некоторых допустимых пределах ∆i, т.е. для получение приемлемого результата необходимо следующее условие:

| F' ( Ei )- F( Ei ) | ≤ ∆I     (45)

Множество наборов входных данных Ei , неудовлетворяющие этому условию, т.е.

| F' ( Ei ) - F( Ei ) |> ∆i ,     (46)

образуют подмножество Ee множества E. Все такие случаи называются рабочими отказами.

Вероятность Q того, что прогон программы приведет к рабочему отказу, равна вероятности, что набор входных данных Ei , использованный в данном прогоне, принадлежит множеству Ee :

Q=ne / N      (47)

где N – число возможных наборов значений входных данных; ne – число различных наборов значений входных данных, содержащихся в Ee .

Вероятность того, что прогон программы  на наборе входных данных Ei случайно выбранном из Е среди равновероятных приведёт к получению приемлемого результата

P = 1 -Q = 1 – ne / N      (48)

В процессе функционирования выбор  входных данных из E обычно осуществляется не с одинаковыми вероятностями, а диктуется определенными условиями работы. Существует вероятность pi выбора входных данных Ei . Множество вероятностей pi называется функциональным разрезом.

Вероятность того, что прогон программы  на входных данных Ei , выбранных в соответствии с распределением вероятностей pi , закончится:

  1. отказом:

     (49)

где:


1, если прогон программы  на наборе Ei закончится рабочим отказом,

Информация о работе Общая характеристика моделей надежности программных средств