Модели надежности программных комплексов
Для прогнозирования надёжности используемого программного комплекса могут применяться различные модели надёжности. В моделях надёжности программного комплекса используется информация о числе ошибок, вызывающих отказы, устранённые в процессе разработки программного комплекса. На основе такой информации определяются параметры модели, которая может затем использоваться для прогнозирования ожидаемого числа ошибок (отказов программного комплекса) или некоторого другого показателя надёжности. Показателем надёжности программного комплекса может служить вероятность отсутствия обнаружения программных ошибок в течение определённого промежутка времени при эксплуатации программы в расчётном режиме в информационной системе.
Одна из моделей основана на следующих допущениях:
- общее число команд в программе на машинном языке постоянно;
- в начале компоновочных испытаний число ошибок равно некоторой постоянной величине, и по мере исправления ошибок их становится меньше. В ходе испытаний программы новые ошибки не вносятся;
- ошибки изначально различимы, по суммарному числу исправленных ошибок можно судить об оставшихся;
- интенсивность отказов программы пропорциональна числу остаточных ошибок.
На основе этих допущений получаем:
, (5.1)
где t – продолжительность отладки программы, отсчитываемая от момента начала компоновки системы программного обеспечения;
– число остаточных ошибок в момент времени t, отнесённое к общему числу команд I;
– отношение числа ошибок E0, имеющихся в программе в момент t = 0, к общему числу команд на машинном языке I, т. е. ;
– суммарное число ошибок, исправленных к моменту времени t, отнесённое к общему числу команд I.
Используя последнее допущение, имеем:
, (5.2)
где t –время работы системы;
– интенсивность отказов в течение интервалов времени t;
Ks – коэффициент пропорциональности,
Определив с помощью формулы (5.2) интенсивность отказов программы (частоту появления ошибок), найдём выражение для вероятности безошибочной работы:
. (5.3)
Поскольку в данной модели частота появления ошибок считается независящей от времени t, она принимается постоянной и, следовательно, среднее время безошибочной работы программы равно:
. (5.4)
Для оценки параметров модели подставим соотношение (5.1) в формулу (5.4), получим следующие выражение для среднего времени безошибочной работы:
. (5.5)
Выражение (5.5) содержит два неизвестных параметра – Кs и Ео, которые можно оценить, используя метод согласования моментов. Рассматривая два периода откладки программы t1 и t2, такие, что t1 < t2, получаем:
, (5.6)
, (5.7)
где t1 и t2 – продолжительность работы системы;
m1 и m2 – число ошибок в программном обеспечении, обнаруженных соответственно в периодах t1 и t2.
Из отношений (5.6) и (5.7) следует, что
, (5.8)
где ,
T0i – среднее время безошибочной работы, соответствующее периоду откладки программы и определяемое как T0i = ti / mi.
Заменяя отношение на T1 в формуле (5.6), найдем Ks:
. (5.9)
Другим методом оценивания параметров E0 и Ks является использование оценок максимального правдоподобия.
Вторая модель, как и первая, основана на допущении об экспоненциальном распределении вероятности безошибочной работы программного комплекса.
Предполагается, что частота появления ошибок пропорциональна числу остаточных ошибок, т. е.
, (5.10)
где – коэффициент пропорциональности;
t – интервал времени между i-й и (i-1)-й обнаруженными ошибками.
С помощью формулы (5.10) можно найти вероятность безошибочной работы:
, (5.11)
и среднее время безошибочной работы:
. (5.12)
Третья модель основана на допущении о том, что частота появления ошибок пропорциональна числу остаточных ошибок и времени отладки программы, т. е.
, (5.13)
где t1 –промежуток времени между(i-1)-й и i-й ошибками.
Вероятность безошибочной работы равна:
. (5.14)
Среднее время безошибочной работы определяется по формуле:
. (5.15)
Существуют доводы как за, так и против принятия допущения о том, что частота появления ошибок пропорциональна времени отладки программы.
Истинную ценность той или иной модели можно измерить по её прогнозирующей способности. В большинстве случаев, обсуждение относительной ценности моделей обычно основывается на интуиции и проверке логической непротиворечивости. Тот факт, что число попыток экспериментально проверить эти модели невелико, объясняется отсутствием необходимых данных об ошибках в программах или противоречивостью имеющихся данных.
Из всех рассмотренных моделей, наилучшие прогнозы остаточных ошибок для крупномасштабных разработок программ или проектов с продолжительным периодом отладки даёт третья модель.
Следует иметь в виду, что, хотя это сравнительное исследование позволило получить некоторые полезные результаты, необходимы новые исследования такого рода.