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

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

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

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

Содержание

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

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

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

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

yi=  0, если прогон программы на наборе Ei заканчивается получением       приемлемого значения функции

 

  1. правильным выполнением единичного прогона программы:

     (50)

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

P( n ) = ( 1 - Q )n     (51).

На практике выбор входных данных для каждого прогона нельзя считать независимым. Поэтому функциональный разрез должен быть переопределён в терминах вероятностей Pji выбора набора входных данных Ei при j-ом прогоне из некоторой последовательности прогонов.

Вероятность того, что j-ый прогон закончится отказом:

     (52)

где i – вероятность выбора i-ого набора данных; j – номер прогона программы.

Надежность P(n) программы равна вероятности безотказной работы n прогонов:

   (53)

 

Модель последовательности испытаний Бернулли

Пространство элементарных событий в классической модели последовательности испытаний Бернулли содержит 2n точек, где n — число испытаний (в данном случае под испытанием подразумевается запуск программы). Каждый запуск программы имеет два исхода: правильный и неправильный. Обозначим вероятность неправильного исхода р, а вероятность правильного — (1 – p). Вероятность того, что из n запусков k приведут к неправильному результату, выражается формулой биномиального распределения:

B(p,n,k) = C (n,k) *pk*(1 - p)n-k ,    (54)

где C (n,k) -  число сочетаний. Вероятность p априори известна, но по результатам запусков известны n и k. Величина B как функции p имеет максимум при p = k / n

В качестве меры надежности программы  принимается величина

R = 1 – k / n = (n-k) / n      (55)

 

 

Экспоненциальная  модель

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

P(t) = =e –λt,      (56)

где λ – параметр модели.

Функция плотности:

    (57)

Интенсивность отказов:

    (58)

Экспоненциальную  модель надежности иллюстрирует рисунок 1.

Рисунок 1. Экспоненциальная модель надежности

Из практики эксплуатации радиоэлектронных приборов график типичной зависимости интенсивности отказов от t имеет вид, представленный на рисунке 2.

На рисунке 2 через I  обозначен период приработки, II – период эксплуатации,  III – период интенсивности старения.

Рисунок 2. Зависимость интенсивности отказов от времени t

 

Таким образом, экспоненциальная модель может быть использована в случае, когда

λ(t) = const.

     (59)

 

Модель Пуассона

С экспоненциальной моделью тесно связана модель Пуассона, позволяющая выразить вероятность P(t,k) того, что на заднем интервале времени (0, t) произойдет ровно k отказов, если время между отказами распределено по экспоненциальному закону с параметром λ :

    (60)

где mt = λt; Dt = λt; σ = √D

Равенство математического ожидания и дисперсии используется для  проверки степени соответствия исследуемого распределения с распределением Пуассона.

Модель Пуассона основана на представлении  о потоке случайных событий, называемых пуассоновским, если выполнены условия:

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

 

Модели, основанные на методе "посева" и разметки ошибок, и модели на основе учета структуры входных данных

Методы оценки надежности программ, основанные на моделях "посева" и  разметки ошибок,  рассмотрены на примере трех моделей: Милза, Бейзина  и простой эвристической модели. Согласно методике, предложенной Милзом, программа изначально “засевается” известным количеством некоторых ошибок - M. Главное предположение  модели в том, что "засеянные" ошибки распределены таким же образом, как и естественные ошибки программы, и, следовательно, вероятность обнаружения для "засеянной" ошибки такая же, как и для естественной. После этого начинается процесс тестирования ПО. Пусть во время тестирования было обнаружено (m+v) ошибок, из которых m ошибок было искусственно "засеяно", а v ошибок содержалось в ПО изначально. Тогда, согласно методу максимального правдоподобия, начальное количество ошибок в программе можно оценить следующим образом: .

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

Теперь рассмотрим модель Бейзина. Пусть программный продукт содержит Nk команд. Из этих Nk команд произвольно выбираются n команд, и в каждую из этих n команд заносится ошибка. После этого для тестирования случайным образом выбирается r команд. Если в процессе тестирования было случайным образом обнаружено  m “засеянных” и v естественных ошибок, это означает, что, согласно методу максимального правдоподобия, начальное количество ошибок в программе можно оценить следующим образом:

   где скобками ][ обозначена целая часть числа.   (63)

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

Теперь рассмотрим простую эвристическую  модель. Эта модель была предложена Б. Руднером. Она позволяет избавиться от главного недостатка модели Милза. Здесь тестирование производится параллельно, двумя независимыми группами разработчиков ПО.

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

      (64)

 

Модели, основанные на использовании  структуры входных данных

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

Модель Нельсона. Применение последовательного анализа  Вальда для снижения количества прогонов программы.

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

Если рассмотреть также и  случай различных вероятностей для каждого набора данных, то оценка (65.1) изменится следующим образом.

     (65.1)

     (65.2)

что позволяет записать следующее выражение для вероятности успешного прогона:

                                                        (66)

Тогда вероятность успешного выполнения m прогонов, при условии, что  набор  входных данных для каждого прогона  выбирается независимо и в соответствии с распределением, заданным формулой (66), будет равна:

                                                     (67)

Модель (67) позволяет дать следующее определение надежности ПО: надежность ПО – это вероятность его m безотказных прогонов.

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

Принимая во внимание эти обстоятельства, необходимо переопределить распределение (66) в терминах вероятностей pij выбора набора данных Ei для j-того прогона программы из некоторой последовательности прогонов. Тогда вероятность отказа на j-том прогоне будет

      (68)

Соответственно, вероятность безотказного выполнения m прогонов можно оценить следующим выражением:

     (69)

Это выражение можно записать в  виде 

и если Qi<<1, тогда

Обозначим - время выполнения j-того прогона программы, и - суммарное время, потраченное на выполнение j прогонов, и будем использовать следующее выражение для функции риска

      (70)

тогда мы имеем

    (71)

Если  , то сумма превращается в интеграл, и формула (71) превращается в фундаментальное отношение (72):

    (72)

основного правила надежности.

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

 

Модель, разработанная  специалистами компании IBM.

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

В течение сопровождения в ПО вносится значительное количество новых ошибок в каждой новой версии, вместе с доработками, изменениями и исправлениями, что требует исправлений также и в следующей версии. Разработчики известной компании IBM попытались предсказать количество подобных исправлений от версии к версии, основываясь на большом количестве экспериментальных данных, собранных в ходе сопровождения операционной системы OS/360. Модель, предложенная специалистами  IBM, основана на наблюдении за ходом разработки этого программного продукта, и на гипотезе о статистической стабильности зависимости между параметрами, характеризующими различные версии системы. В качестве основной единицы измерения сложности ПО был выбран программный модуль. Были стандартизованы правила создания модулей.

Объем i-той версии выражается количеством модулей Mi, входящих в данную версию. При выпуске i –той версии системы изменялся параметра  СИМi (количества старых исправляемых модулей), и добавление некоторого числа новых модулей НМi , так что .

При доработке i-й версии (в период подготовки (i+1)-й) происходит дальнейшая коррекция модулей. Эти исправленный модули делятся на две группы: первая группа характеризуется параметром MИMi – многократно изменяемые модули (10 или более исправлений на модуль), и вторая группа – ИMi, модули с числом исправлений меньше 10. Эта классификация необходима для упрощения вычислений, а также из-за того факта, что небольшое число исправлений характерно для большинства модулей.

Также необходимо отметить, что группа ИM не требуют особых средств отладки, в то время как группа MИM может потребовать некоторых дополнительных усилий при отладке. 

В ходе анализа истории сопровождения  OS/360  фирмы IBM было установлено, что  существует значительная зависимость  между параметрами, характеризующими масштабы изменений и (соответственно) уровень содержания ошибок (в группах ИM и MCM), и параметрами, характеризующими сложность и объем следующей версии (СИМ, НМ).  В применении к  OS/VS1 это соотношение выглядело следующим образом.

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