- •Введение
- •I. Основные понятия теории надежности программного обеспечения
- •1.1. Программное обеспечение как сложный объект
- •1.2. Жизненный цикл программных средств
- •1.3. Отказы пс
- •II. Модели и методы оценки надежности по
- •2.1. Особенности моделей оценки надежности по
- •2.2. Марковская модель для системы готовности и надежности
- •2.4. Модель надежности программы с дискретным увеличением времени наработки на отказ
- •2.3. Модели надежности программы с дискретно понижающейся частотой (интенсивностью) проявления ошибок
- •2.5. Экспоненциальная модель надежности программ
- •2.6. Экспоненциальная модель Шумана
- •2.7. Экспоненциальная модель Джелинского-Моранды.
- •2.8. Геометрическая модель Моранды
- •2.9. Модель Шика-Волвертона
- •2.10. Обобщение моделей Джелинского-Моранды и Шика-Волвертона
- •2.11. Модель надежности на основе распределения Вейбулла
- •2.12. Модель последовательности испытаний Бернулли
- •2.13. Оценка надежности программ по числу прогонов (модель Нельсона)
- •2.14. Структурная модель роста надежности (модель Иыуду)
- •III. Способы повышения надежности по
- •3.1. Виды избыточности в программах
- •3.2. Методы введения структурной избыточности в программы
- •3.3. Математические модели оперативного контроля и восстановления функционирования комплекса программ
- •Библиографический список
- •Усенко Ольга Александровна Модели и методы оценки надежности программного обеспечения информационных систем
2.5. Экспоненциальная модель надежности программ
Данная модель основана на следующих предположениях:
1. Число ошибок в программе имеет экспоненциальный характер изменения во времени.
2. Типы исполняемых в программе команд перемешаны, и время работы между ошибками определяется средним временем выполнения команды на данной ЭВМ и средним числом команд, исполняемых между ошибками. Это означает, что интенсивность проявления ошибок зависит от среднего быстродействия ЭВМ и практически не зависит от распределения типов команд на маршрутах обработки данных между ошибками.
3. Потенциальное множество тестов при отладке должно покрывать все множество реальных исходных данных при нормальном функционировании комплекса программ. Тогда распределение проявления ошибок во времени можно считать равномерным и не зависящим от внешних факторов.
4. Ошибка, являющаяся причиной искажения результатов, фиксируется и исправляется после завершения тестирования либо вообще не обнаруживается.
Из этих свойств следует, при нормальных условиях эксплуатации количество ошибок, проявляющихся в некотором интервале времени, имеет пуассоновское распределение, а временной интервал между ошибками распределен по экспоненциальному закону, параметр которого изменяется после обнаружения и устранения ошибки. При стационарных условиях тестирования или эксплуатации интенсивность обнаружения и устранения ошибок убывает в зависимости от времени. Количество обнаруживаемых и исправляемых ошибок в единицу времени пропорционально их общему количеству в программе на данном интервале времени. Отличие данной модели от предыдущих состоит в том, что интенсивность отказов предполагается описывать непрерывной функцией. Это упрощает математическое описание модели, а модель приобретает дополнительную гибкость.
Предположим, что в начале отладки КП при = 0 в нем содержалось N первичных ошибок. После отладки в течение времени осталось n0() первичных ошибок и устранено n() ошибок. Тогда
n0() = N – n(). (8)
Предположение о
сильной корреляции между значениями
п0 и dn/d
проверено анализом реальных
характеристик процесса обнаружения
ошибок и установлено, что
.
Предположим, что в процессе корректировки программы новые ошибки не вводятся, интенсивность обнаружения отказов пропорциональна числу оставшихся ошибок:
, (9)
где коэффициент К учитывает масштаб времени, используемый для описания процесса обнаружения ошибок, быстродействие ЭВМ и другие параметры. Решая совместно (8) и (9), получим уравнение,
. (10)
Так как выше предполагалось, что в начале отладки при = 0 отсутствуют обнаруженные ошибки и ни одна из ошибок не была исправлена, то решение уравнения (10) имеет вид
n()=N[1 – exp(–K)].
Количество
оставшихся первичных ошибок в комплексе
программ пропорционально интенсивности
их обнаружения dn/d
с точностью до
коэффициента К:
,
а среднее время наработки на отказ
равно
.
Если
учесть, что до начала отладки в КП
содержалось N
первичных ошибок, и этому соответствовала
наработка
,
то функцию наработки на отказ от
длительности проверок можно представить
в следующем виде:
, (11)
откуда видно, что среднее время наработки на отказ увеличивается по мере выявления и исправления ошибок.
Если известны все моменты обнаружения ошибок ti и каждый раз в эти моменты обнаруживается и достоверно устраняется одна первичная ошибка, то, используя метод максимального правдоподобия, получим уравнения для определения значения начального количества первичных ошибок N и выражение для расчета коэффициента пропорциональности
,
.
Число ошибок n, которое должно быть обнаружено и исправлено для того, чтобы добиться увеличения среднего времени наработки на отказ от Т1 до Т2 можно определить по формуле
.
Затраты времени Т на проведение отладки, которые позволяют устранить n ошибок и соответственно повысить наработку на отказ от значения Т1 до Т2, могут быть оценены по формуле
.
Вероятности ошибки в программе р0 и соответствующие ей наработки на обнаруживаемую ошибку Т в зависимости от длительности функционирования программ для экспоненциальной модели представлены на рис. 8. Принято, что в начале отладки при = 0 в сложном комплексе программ (105…106 команд) содержится 1% ошибок (р0 = 10-2) и за = 1000 ч вероятность ошибки в каждой команде снижается на три порядка до р0 = 10-5. В первую половину (500 часов) длительности отладки выявляется основная масса ошибок (97%), а за вторую половину – только 3%. При этом за первый интервал достигается наработка на проявление ошибок только 4,7 ч, а к концу второго интервала наработка достигает 144 ч.
Рис. 8. Зависимость вероятности ошибки в ПО р0 и наработки на обнаруживаемую ошибку Т от длительности функционирования ПО
В более общем случае, когда в процессе корректировки могут появляться новые ошибки, введем В – коэффициент уменьшения ошибок, определяемый как отношение интенсивности уменьшения ошибок к интенсивности их проявления, то есть к интенсивности отказов. Пусть n – число обнаруженных отказов, а N0 – число отказов, которые должны бы произойти, чтобы можно было выявить и устранить m соответствующих ошибок, то есть
.
Тогда
и для среднего времени наработки на
отказ перед тестированием справедливо
.
В результате
,
откуда определяют вероятность безотказной
работы ПО:
,
где Т0 – наработка между отказами перед началом отладки или эксплуатации; Е0 – начальное число ошибок; С – коэффициент пропорциональности.
Коэффициент В определяется, исходя из статистических данных и можно считать, что для ПО общего назначения В [0,91; 0,95], а N и N0 можно рассчитать среднюю интенсивность ошибок (число ошибок на одну команду) в начале различных фаз тестирования, например, для программ, написанных на языке Ассемблер, число ошибок на 1000 команд варьируется от 4 до 8.
Данная модель может применяться для определения времени испытания программ с целью достижения заданного уровня надежности, а также для оценки числа оставшихся в программе ошибок.
