Скачиваний:
174
Добавлен:
02.05.2014
Размер:
215.55 Кб
Скачать
    1. Описание модели Нельсона

      1. Обоснование выбора модели Нельсона

Модель Нельсона была разработана с учетом основных свойств машинных программ и использует методы теории вероятностей лишь в тех случаях, когда невозможно получение полной информации о том или ином факторе, например при ответе на вопрос, какой набор входных данных следует взять при следующем прогоне программы. Все приближения, принятые модели, четко определены, и известны границы их применимости. Поскольку в основу модели Нельсона положены свойства программного обеспечения, она допускает развитие за счет более детального описания других аспектов надежности. Некоторые из полученных обобщений модели [ТЛН] могут рассматриваться в контексте исследования проблемы безопасности программ и рассматриваются ниже. Вследствие отмеченных особенностей модели ее можно рассматривать в целом как математическую теорию надежности программного обеспечения, а не как простую модель надежности.

      1. Общее описание модели

Описание метода Нельсона приведем в соответствии с работой [ТЛН]. Для описания введем сначала следующие обозначения.

Совокупность действий, включающая ввод Ei, выполнение программыП, которое заканчивается получением результатаF'(Ei) называется прогоном программыП. Необходимо также отметить, что значения входных переменных, образующиеEi, не должны все одновременно подаваться на вход программП. Таким образом, вероятностьPтого, что прогон программы приведет к обнаружению дефекта, равна вероятности того, что набор данныхEi, используемый в данном прогоне, принадлежит множествуEe. Если обозначить черезneчисло различных наборов значений входных данных, содержащихся вEe, тоP=ne/N- есть вероятность того, что прогон программы на наборе входных данныхEi, случайно выбранном изEсреди равновероятных, закончится обнаружением дефекта. При этомR=1-P- есть вероятность того, что прогон программыПна наборе входных данныхEi, случайно выбранном изEсреди априорно равновероятных, приведет к получению приемлемого результата.

Однако в процесс функционирования программы выбор входных данных из Eобычно осуществляется не с одинаковыми априорными вероятностями, а диктуется определенными условиями работы. Эти условия характеризуются некоторым распределением вероятностейpi, того, что будет выбран набор входных данныхEi. РаспределениеPможет быть определено черезpiс помощью величиныyi, которая принимает значение 0, если прогон программы на набореEiзаканчивается вычислением приемлемого значения функции, и значением 1, если этот прогон заканчивается обнаружением дефекта. Поэтому- есть вероятность того, что прогон программы на наборе входных данныхEi, выбранных случайно с распределением вероятностейpi, закончится обнаружением дефекта. При этомR=1-Pесть вероятность того, что прогон программыПна наборе входных данныхEi, выбранных случайно с распределением вероятностейpi, приведет к получению приемлемого результата.

Так как R- вероятность того, что единичный прогон программы не закончится отказом на наборе входных данных, выбранных в соответствии с распределениемрi, то вероятность успешного выполненияп прогонов этой программы при независимом для каждого прогона выборе входных данных в соответствии с распределениемРбудет равнаR(п)=R=(1-Р)n.

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

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

С учетом введенного определения функциональный разрез должен быть переопределен в терминах вероятностей pjiвыбораEi в качестве входных данных приj-том прогоне из некоторой последовательности прогонов. Тогда вероятность того, чтоj-тый прогон закончится отказом, может быть записана в видеPi=.

Надежность R(п) программыПравна вероятности того, что в последовательности изп прогонов ни один из них не закончится отказом:

R(n)=(1-Pi)(1-P2)...(1-Pn)=

Эта формула может быть представлена в виде .

Некоторые из свойств функции R(n) могут стать более зримыми при следующих допущениях:

для Pj<<1

,

если Pj=Pдля всехj, то

R(n)=.

С помощью соответствующих замен переменных и подстановок можно выразить функцию R(n) через время функционированияt. Обозначим черезtjвремя выполненияj-того прогона, через- суммарное время выполнения первыхjпрогонов программыnпримем, что .Тогда .

Если величина tj стремится к нулю с ростомn, то сумма в показателе экспоненты становится интегралом и формула для надежности программного обеспечения принимает вид

Эта формула хорошо известна в теории надежности технических устройств. В случаеPj<<1 функцияh(tj) может быть интерпретирована как функция интенсивности отказов, которая, будучи умноженной наtj, дает условную вероятность появления отказов и интервале (tj,tj+tj) при отсутствии отказов до моментаtj.

Соседние файлы в папке Казарин О.В. Теория и практика защиты программ