Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
печатать мавлют / Василенко Макаров.pdf
Скачиваний:
84
Добавлен:
18.03.2015
Размер:
273 Кб
Скачать

2004 ВЕСТНИК НОВГОРОДСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА №28

УДК 681.3.068

Н.В.Василенко, В.А.Макаров

МОДЕЛИ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

14 of the most famous models of software safety evaluation are reviewed. According to the review, there is no absolutely safe programme, as the absolutely safety degree can′t be theoretically proved and therefore it can not be achieved.

1.Введение

Вмеждународном стандарте ISO 9126:1991 [1] надежность выделена как одна из основных характеристик качества программного обеспечения (ПО). Стандартный словарь терминов программного инжиниринга [2] определяет надежность программного обеспечения как способность системы или компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени.

Сама проблема надежности программного обеспечения имеет, по крайней мере, два

аспекта: обеспечение и оценка (измерение) надежности [3]. Практически вся имеющаяся литература посвящена первому аспекту, а вопрос оценки надежности компьютерных программ недостаточно проработан. Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.

Модели надежности программных средств подразделяются на аналитические и эмпирические [4]. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования. Эмпирические модели базируются на анализе структурных особенностей программ.

Аналитические модели представлены двумя группами: динамические и статические. В динамических моделях поведение ПО (появление отказов) рассматривается во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени (модели с непрерывным временем). Может фиксироваться только число отказов за произвольный интервал времени. В этом случае поведение ПО может быть представлено только в дискретных точках (модели с дискретным временем).

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

2. Аналитические динамические модели 2.1. Модель Шумана

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

126

2004 ВЕСТНИК НОВГОРОДСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА №28

программе постоянно и в процессе тестирования может уменьшаться по мере того, как ошибки выявляются и исправляются (новые ошибки не вносятся).

Базовые понятия модели заимствованы из теории надежности аппаратных средств [5]. R(t) — функция надежности — вероятность того, что ни одна ошибка не появится на

интервале от 0 до t.

F(t) — функцияотказов— вероятностьтого, чтоошибкапоявитсянаинтервалеот0 доt.

F(t) = 1– R(t)

f(t) — плотность вероятности для F(t), f (t) = dFdt(t) = − dRd(tt) .

z(t) — функция риска — условная вероятность того, что ошибка появится на интервале от 0 до t + t, при условии, что до t ошибок не было. Если Т — время появления ошибки, то

z(t) t = P{t <T < t + t

 

T > t} =

P(t <T < t + t)

=

F(t + t) F(t)

.

 

 

 

 

 

 

 

 

 

 

 

 

P(T < t)

 

R(t)

Поделив обе части на t и устремив t к 0, переходим к пределу

z(t) =

f (t)

= −

1

 

dR(t)

.

 

 

 

 

R(t)

 

 

 

 

 

 

 

R(t)

 

dt

 

 

 

Решая это дифференциальное уравнение относительно R(t) при начальном условии R(0) = 1, получим

 

t

 

R(t) = exp z(x)dx

.

 

0

 

tср — среднее время между отказами, tcp = R(t)dt.

0

В рассматриваемой модели автор предполагает, что значение функции z(t) пропорционально числу ошибок, оставшихся в ПО после израсходованного на тестирование вре-

мени τ: z(t) = C εr (τ), где С — некоторая константа; t — время работы ПО без отказа; εr (τ) — удельное число ошибок на одну машинную команду, оставшихся в системе после

времени тестирования τ:

εr (τ) =

ET

εc (τ), где ЕT — число ошибок до начала тестирова-

 

 

 

IT

ния; IT — общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования; εc (τ) — удельное количество обнаруженных ошибок на одну машин-

ную команду в течение времени τ. Тогда

 

 

 

 

 

 

 

E

T

 

 

 

 

R(t, τ) = exp C

 

 

 

εc (τ)

t ,

(1)

 

IT

 

 

 

 

 

 

 

 

 

 

 

tcp

=

 

 

 

1

 

 

.

 

(2)

 

E

T

 

 

 

 

 

 

 

 

 

C

 

 

 

εc (τ)

 

 

 

 

 

IT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из величин, входящих в формулы (1) и (2), неизвестны начальное значение ошибок в ПО (ET) и коэффициент пропорциональности С. Для их определения прибегают к следующим рассуждениям. В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона. Полагая, что интенсивность появления ошибок постоянна и равна λ, а Ai — количество ошибок на i-м прогоне, можно вычислить

tcp =

τ

 

.

(3)

k

 

 

Ai

 

i =1

127

2004 ВЕСТНИК НОВГОРОДСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА №28

Имея данные для двух различных моментов тестирования τa и τb, которые выбираются произвольно с учетом требования εcb) > εca), можно сопоставить уравнения (2) и (3) при τa и τb и получить следующие выражения:

ET

=

IT τa εc a ) λτb εc b ))

, C =

 

λτa

,

λτa

λτb

ET

εc a )

 

 

 

IT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с помощью которых рассчитывается надежность программы по формуле (1).

2.2. Модель Ла Падула

По этой модели выполнение последовательности тестов производится в m этапов. Каждый этап заканчивается внесением изменений (исправлений) в ПО. Возрастающая функция надежности базируется на числе ошибок, обнаруженных в ходе каждого тестового прогона.

Надежность ПО в течение i-го этапа

R(t) = R() Аi , i =1,2...,

где А — параметр роста; R() = lim R(i) — предельная надежность ПО. Эти неизвестные

i→∞

величины автор предлагает вычислить, решив следующие уравнения:

 

m

S

i

m

i

 

 

 

A

 

 

 

 

 

 

 

 

 

R() +

 

 

 

i

 

= 0,

 

 

 

Si

 

 

 

 

i

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

S

i

m

i

 

 

 

A

 

 

1

 

 

 

 

 

 

R() +

 

 

i

 

 

 

 

 

= 0,

 

 

 

Si

 

 

i

 

i=1

 

 

 

 

 

 

 

 

 

 

 

i

 

где Si — число тестов на i-м этапе; mi — число отказов во время i-го этапа; i = 1,2,… m. Определяемый по этой модели показатель есть надежность ПО на i-м этапе:

R(t) = R() Ai , i = m +1, m + 2,...

2.3. Модель Джелинского — Моранды

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

Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемо-

го от момента выявления (i – 1)-й ошибки, имеет вид

 

P(ti ) = λi exp(λi ti ),

(4)

где λi — интенсивность отказов, которая пропорциональна числу еще не выявленных ошибок в программе:

λi = C (N i +1),

(5)

где N — число ошибок, первоначально присутствующих в программе; С — коэффициент пропорциональности.

Наиболее вероятные значения величин N и C определяются на основе данных, полученных при тестировании. Для этого фиксируют время выполнения программы до оче-

редного отказа t1,t2,t3,…,tk. Значения N и C можно получить, решив систему уравнений

k

 

 

 

К

 

(N i +1)1 =

 

 

,

 

 

 

N +1Q K

i=1

 

128

2004 ВЕСТНИК НОВГОРОДСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА №28

 

 

 

 

 

 

 

 

 

 

 

K

 

 

 

 

 

 

C =

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

А(

 

+1Q K )

 

 

 

 

 

 

N

 

В

 

k

 

k

 

 

 

 

 

 

 

где Q =

; A =

ti ; B =

i ti .

 

 

 

 

АК

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

i=1

 

 

 

 

 

 

 

Чтобы получить числовые значения λi, нужно подставить вместо N и С их возможные

значения N и C . Рассчитав К значений по формуле (5) и подставив их в выражение (4), можно определить вероятность безотказной работы на различных временных интервалах.

2.4. Модель Шика — Волвертона

Это модификация модели Джелинского — Моранды для случая возникновения на рассматриваемом интервале более одной ошибки. При этом считается, что исправление ошибок производится лишь после истечения интервала времени, на котором они возникли. В основе модели Шика — Волвертона лежит предположение, согласно которому частота ошибок пропорциональна не только количеству ошибок в программах, но и времени тестирования, т.е. вероятность обнаружения ошибок с течением времени возрастает. Интенсивность обнаружения ошибок λi предполагается постоянной в течение интервала времени ti и пропорциональна числу ошибок, оставшихся в программе по истечении (i – 1)-го интервала; но она пропорциональна также и суммарному времени, уже затраченному на тестирование:

λi = C(N ni1)(Ti1 +ti / 2),

где С — коэффициент пропорциональности; N — число ошибок, первоначально присутствующих в программе; ni–1 — число ошибок, оставшихся в программе по истечении (i – 1)-го интервала; Ti–1 — суммарное время, затраченное на тестирование в течение (i – 1) этапов; ti — среднее время выполнения программы в текущем интервале.

Остальные расчеты аналогичны расчетам модели Джелинского — Моранды.

2.5. Модель Муса

Модель предполагает, что в процессе тестирования фиксируется время выполнения программы до очередного отказа. Но считается, что не всякая ошибка ПО может вызвать отказ, поэтому допускается обнаружение более одной ошибки при выполнении программы до возникновения очередного отказа.

Считается, что на протяжении всего жизненного цикла ПО может произойти М0 отказов и при этом будут выявлены все N0 ошибки, которые присутствовали в ПО до начала тестирования. Общее число отказов М0 связано с первоначальным числом ошибок N0 соотношением N0 = B M 0 , где В — коэффициент уменьшения числа ошибок. После тестиро-

вания, за время которого зафиксировано m отказов и выявлено n ошибок, можно определить коэффициент B: B = n / m.

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

2.6. Модель переходных вероятностей

Процесс тестирования ПО рассматривается как марковский процесс.

Пусть в начальный момент тестирования (t = 0) в ПО было n ошибок. Предполагается, что в процессе тестирования выявляется по одной ошибке. Тогда последовательность состояний системы {n, n – 1, n – 2, n – 3,…} соответствует периодам времени, когда предыдущая ошибка уже исправлена, а новая еще не обнаружена. Последовательность состояний {m, m – 1, m – 2, m – 3,…} соответствует периодам времени, когда ошибки исправляются.

Любое состояние модели определяется рядом переходных вероятностей (Pij), где Pij означает вероятность перехода из состояния i в состояние j и не зависит от предшествую-

129

Соседние файлы в папке печатать мавлют