- •Введение
- •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. Математические модели оперативного контроля и восстановления функционирования комплекса программ
- •Библиографический список
- •Усенко Ольга Александровна Модели и методы оценки надежности программного обеспечения информационных систем
II. Модели и методы оценки надежности по
2.1. Особенности моделей оценки надежности по
Аналитические модели надежности дают возможность исследовать закономерности проявления ошибок в программах, а также прогнозировать надежность программ при разработке и эксплуатации.все модели имеют следующие особенности:
1) они строятся на предположении, что проявление ошибки является случайным событием и поэтому имеет вероятностный характер, и достоверность прогнозов зависит от точности исходных данных и глубины прогнозирования по времени. Такие модели предназначены для оценки показателей надежности программ и программных комплексов в процессе тестирования: количества ошибок, оставшихся невыявленными; времени, необходимого для выявления очередной ошибки в процессе эксплуатации программы; времени, необходимого для выявления всех ошибок с заданной вероятностью и т.д.
2) принимается во внимание тот факт, что точное определение полного количества ошибок в программе прямыми методами измерения невозможно. Это значительно повышает сложность и уменьшает точность расчетов надежности в большинстве рассматриваемых ниже моделей.
3) малый объем выборок реального количества обнаруженных ошибок и большой разброс времени обнаружения последовательных ошибок при завершении отладки не позволяют построить высокоточные математические модели. Поэтому целесообразно применять простейшие модели, точность которых близка к точности, обусловленной исходными данными.
При построении моделей используют следующие характеристики надежности программного обеспечения:
Функция надежности:
– вероятность того, что ошибки программы
не проявятся на интервале [0, t],
то есть время безотказной работы больше,
чем t.
Функция
ненадежности:
– вероятность того, что в течение t
произойдет отказ программы, как результат
проявления ошибки в программе.
Интенсивность
отказов:
– условная плотность вероятности
времени до возникновения отказа программы
при условии, что до момента времени t
отказа не было.
Средняя наработка
на отказ Т ПО
.
В программах отсутствуют компоненты, которые разрушаются физически и требуют для восстановления замены и ремонта. Поэтому время восстановления не зависит от объема технологических работ, ремонтных бригад, от их занятости, от наличия инструмента, комплектующих изделий и других факторов.
Основными типами моделей надежности программных средств являются:
- модели, основанные на предположении о дискретном изменении характеристик надежностей программ в момент устранения ошибок;
- модели, основанные на экспоненциальном характере изменения числа ошибок в зависимости от времени тестирования и функционирования программы.
2.2. Марковская модель для системы готовности и надежности
Рассмотрим
систему, начинающую работу в момент
времени t
= 0. Надежность системы R(t)
определяется
вероятностью отсутствия сбоя в интервале
(0, t):
.
Под готовностью
системы к моменту времени t
понимается вероятность
того, что система находится в рабочем
состоянии во время t:
A(t) = P. (1)
Введем
показатель степени риска
,
тогда надежность системы
может быть определена как
. (2)
а
значение времени сбоя tсб
можно вычислить как
.
Расчетные зависимости для случая постоянного показателя степени риска z(t) = принимают вид:
,
,
(3)
Пусть в начальный период (t = 0) система содержит неизвестное число (п) ошибок. Ряд состояний системы {п, п –1, п – 2, ...} соответствует процессам обнаружения ошибок. По аналогии для случая устранения ошибок введем состояния системы {т, т –1, т – 2, ...}. Система находится в состоянии (п – k), если ошибка (k – 1) уже исправлена, а ошибка k еще не обнаружена. В то же время система будет находиться в состоянии (т – k) после того, как ошибка k обнаружена, но еще не исправлена. Общая схема модели с указанием вероятностей перехода между состояниями показана на рис. 4 [11].
Рис. 4. Модель многих состояний для оценки характеристик ПО
Таким образом, любое состояние модели определяется рядом переходных вероятностей {Pij}, где Pij означает вероятность перехода из состояния i в состояние j и не зависит от предшествующих и последующих состояний системы, кроме состояний i и j. Вероятность перехода из состояния (n – k) к состоянию (m – k ) есть n–kt, для k = 0, 1, 2,… Аналогично этому вероятность перехода из состояния (m – k) к состоянию (n – k – 1) есть m–kt, для k = 0, 1, 2,….
Интенсивности перехода j и j зависят от текущего состояния системы. Для системы ПО ЭВМ j означает интенсивность возникновения (проявления), а j – интенсивность устранения ошибок. Следовательно, полная матрица переходных вероятностей системы может быть представлена следующим образом:
Готовность системы во время t определяется на основе (1) и является результатом сложения всех вероятностей состояния занятости:
.
(k)
может зависеть от оперативного времени
между состояниями
системы (n – k)
и (m – k),
и Rk()
будет представлена семейством кривых
,
где (k,
x)
получена заменой z(x)
(k,
x)
в уравнении (2).
Если и являются постоянными, то система дифференциальных уравнений, описывающая граф состояний системы на рис. 4, имеет вид:
(4)
Начальные условия
(5)
Система уравнений (4) при начальных условиях (5) может быть решена применением преобразований Лапласа:
,
при k
= 0, 1, 2,…,
где постоянные {ckj} и {dkj} принимают значения:
Аналогично можно показать, что
,
k = 0, 1, 2,…,
где
Применение точного
решения предопределяет серьезное
ограничение постоянства
и .
Рассмотрим общий случай, в котором
и
являются некоторыми функциями настоящего
числа ошибок, имеющихся в системе ПО:
В этом случае система уравнений примет вид:
(6)
Начальные условия для (6) аналогично имеют вид (5). Приближенное решение системы уравнений, полученное методом итераций Эйлера, имеет вид:
Пусть = 1, определим А(t) и B(t) как следующие приближения к истинной системе готовности и неготовности соответственно:
,
Если kmax выбрано достаточно большим, то получим
.
Рис. 5 показывает вариацию вероятностей верхнего состояния занятости Pn–k(t) для некоторых выбранных значений k. Согласованность между точным и приближенным решениями настолько велика, что на рис. 5 приведено только одно семейство кривых. Вариация времен А(t) и (t) показана на рис. 6, значение k принято равным 10.
Рис. 5. Вероятность состояния Рис. 6. Готовность А(t) и готов-
занятости ность + неготовность (t)
Модель позволяет предсказать характеристики системы во время моделированием до того, как программа будет осуществлена, или после ее осуществления. В этом случае величина t может включать как время моделирования, так и время испытания. Эта модель была разработана с целью получения критических характеристик надежности ПО (числа исправляемых ошибок, для оценки готовности А(t) и надежности R(t)).
