- •Обзорная лекция
- •Санкт-Петербург
- •1. Введение
- •2. Основные показатели надежности по
- •3. Модели, основанные на использовании функции риска
- •3.1. Модель Джелинского-Моранды.
- •3.2 Простая экспоненциальная модель.
- •3.3. Модель Шика-Уолвертона.
- •3.4. Модели Липова.
- •3.5. Геометрические модели.
- •3.6. Модель Шнейдевинда.
- •4. Модели, основанные на методе "посева" и разметки ошибок
- •5. Модели, основанные на использовании структуры входных данных
- •5.1. Модель Нельсона. Применение последовательного анализа Вальда для снижения количества прогонов программы.
- •5.2. Модель, разработанная специалистами компании ibm.
- •6. Повышение надежности программного обеспечения.
Министерство образования РФ
СПб Государственный электротехнический университет "ЛЭТИ"
Кафедра МО ЭВМ
Обзорная лекция
по дисциплине “Метрология программного обеспечения”
на тему
"Математические модели и методы повышения надежности ПО"
Доцент каф. МОЭВМ Кирьянчиков Владимир Андреевич
Санкт-Петербург
2001
1. Введение
Степень надежности ПО может быть оценена при помощи некоторых метрик. Модели надежности ПО служат для предсказания значений этих метрик, и кроме того, они позволяют оценить надежность на различных этапах тестирования программного продукта. Например, в том случае, если к некоторому моменту тестирования количество обнаруженных и исправленных ошибок уже достаточно велико, это может создать впечатление, что тестирование продукта близится к завершению, то есть ошибок в программе осталось немного. Однако, это может совершенно не соответствовать действительности, и как раз использование моделей надежности программ может помочь прояснить подобную ситуацию.
2. Основные показатели надежности по
Пусть P(t) - вероятность того, что ни одной ошибки не будет обнаружено на временном интервале [0,t]. Тогда вероятность хотя бы одного отказа за этот период будет Q(t) = 1 – P(t), и плотность вероятности отказов можно записать как
Рассмотрим функцию риска R(t), как условную плотность вероятности отказа программы в момент времени t, при условии, что до этого момента отказов не было:
(2.1)
Функция
риска имеет размерность [1/время].
Из выражения (2.1), ясно, что
,
и, следовательно,
или
(2.2)
Равенство (2.2) является одним из самых важных в теории надежности. Различные виды поведения функции риска во времени порождают различные модели надежности ПО. Интенсивность обнаружения ошибок (функция риска), вместе с вероятностью безотказной работы программы и количеством оставшихся в программе ошибок, являются важнейшими показателями надежности программ.
Прогон
программы – это набор действий, включающий
в себя: ввод в программу одной из возможных
комбинаций Ei
пространства входных данных E (
);
выполнение программы, которое заканчивается
либо получением результата F(Ei),
либо отказом.
Для
некоторых наборов входных данных Ei,
отклонение полученного на выходе
результата (F’(Ei))
от требуемого результата F(Ei)
находится в пределах допустимого
отклонения
,
то есть выполняется следующее неравенство:
а
для всех остальных Ei
из подмножества
,
выполнение программы не дает приемлемого
результата, то есть
Случаи, описанные неравенством (2.4), называются отказами программы.
Рассмотрим
бинарную переменную
:
Тогда статистическая оценка вероятности отказа программы в течении m прогонов будет равна:
