Главная страница  Анализ эмпирических данных 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 [ 71 ] 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

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

Однако в процессе реального функционирования программы выбор входных данных из Е обычно осуществляется не с одинаковыми априорными вероятностями, а диктуется определенными условиями работы. Эти условия могут быть охарактеризованы некоторым распределением вероятностей р/, того, что будет сделан выбор именно входных данных Еь Множество вероятностей pi называется функциональным разрезом.

Распределение Р может быть определено через pi с помощью динамической переменной yi, которая принимает значение О, если прогон программы на наборе Е,- заканчивается вычислением приемлемого значения функции, и значение 1, если этот прогон заканчивается рабочим отказом. Тогда

р = Z Pihi

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

есть вероятность того, что прогон программы с выходными данными Е/, выбранными в соответствии с распределением вероятностей р,-, приведет к правильному, выполнению программы.

Так как R - вероятность того, что единичный про* гон программы не закончится отказом на наборе входных данных, выбранных в соответствии с распределением pi, то вероятность успешного выполнения п прогонов этой программы при независимом для каждого прогона выборе входных данных в соответствии с распределением Р будет равна

R( ) = R = (1 -Р) .

Таким образом, можно дать следующее математик ческое определение надежности машинной програм-



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

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

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

i = I

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

R( ) = (l-P,)(l p,) ... (I pj = f[(l p).

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

Е In(-Py)

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

если Р/ Р для всех /, то

С помощью соответствующих замен переменных и подстановок можно выразить функцию R(и), через



Тогда ,

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

R (О = ехр

- h (s)ds

Эта формула хорошо известна в теории надежности технических устройств. В случае Р/ <С 1 функция h{ti) может быть интерпретирована как функция интенсивности отказов, которая, будучи умноженной на Atj, дает условную вероятность появления отказов в интервале (ti, t; -f- Atj) при отсутствии отказов до момента tj.

Оценка надежности программного обеспечения.

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

где Пе - число наборов входных данных, при которых произошли рабочие отказы.

Если выборка включает п наборов входных данных из Е и осуществляется в соответствии с распределением вероятностей pi, то расчетное значение R будет представлять собой несмещенную оценку надежности R в том смысле, что для pi < I ожидаемое

время функционирования t. Обозначим через At.- время выполнения /-го прогона программы, через /у =

= S i - суммарное время выполнения первых / про* гонов программы и примем, что



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 [ 71 ] 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.