Таким образом, можно дать следующее
будет равна 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. Обозначим через Dtj
время выполнения j-того прогона, через
- суммарное время выполнения первых j прогонов программы n примем, что
. Тогда
.
Если величина Dtj
стремится к нулю с ростом n, то сумма в показателе экспоненты становится интегралом и формула для надежности программного обеспечения принимает вид
Эта формула хорошо известна в теории надежности технических устройств. В
случае Pj<<1 функция h(tj)
может быть интерпретирована как функция интенсивности отказов, которая, будучи умноженной на Dtj,
дает условную вероятность появления отказов и интервале (tj,tj+Dtj) при отсутствии отказов до момента tj.
Содержание Назад Вперед