Санкт-Петербургский государственный электротехнический университет
Кафедра МОЭВМ
Отчет по лабораторной работе №4.
Оценка параметров надежности программ
по временным моделям обнаружения ошибок.
Выполнил:
Студент гр.3351
Сергеев М.В.
Санкт-Петербург
2007г.
-
Постановка задачи
Выполнить исследование показателей надежности программ, характеризуемых моделью обнаружения ошибок Джелинского-Моранды, для различных законов распределения времен обнаружения отказов и различного числа используемых для анализа данных.
Для проведения исследования требуется:
Сгенерировать массивы данных { ti }, где ti – момент обнаружения i–ой ошибки ( i=[1,30], также смотри примечание в п.3), в соответствии с:
А) равномерным законом распределения в интервале [0,20]; при этом cреднее время появления ошибки будет mравн = 10, СКО sравн = 20/(2*sqrt(3)) = 5.8 .
Б) экспоненциальным законом распределения
W(y) = b*exp(-b*y), y>=0, c параметром b=0.1
и соответственно mэксп=sэксп= 1/b=10.
Значения случайной величины Y с экспоненциальным законом распределения с параметром «b» можно получить по значениям случайной величины t, равномерно распределенной в интервале [0,1], по формуле [1]: Y = -ln(t) / b
В) релеевским законом распределения
W(y) = (y/c^2)*exp(-y^2/(2*c^2)), y>=0, c параметром c=8.0 и соответственно mрел = c*sqrt(/2), sрел= c*sqrt(2-/2).
Значения случайной величины Y с релеевским законом распределения с параметром «с» можно получить по значениям случайной величины t, равномерно распределенной в интервале [0,1], по формуле [1]: Y = с * sqrt(-2*ln(t)).
Каждый из 3-х массивов {ti} упорядочить по возрастанию и затем вычислить по ним массивы значений интервалов Xi между соседними ошибками
Для каждого из 3-х массивов {Xi} оценить значение первоначального числа ошибок в программе B. При этом для каждого закона использовать 100%, 80% и 60% входных данных (то есть в массивах {Хi} использовать n = 30, 24 и 18 элементов). Примечание: для каждого значения n следует генерировать и сортировать новые массивы.
Если B>n, оценить значения средних времен Xj , j=n+1,n+2…, n+k до обнаружения k<= 5 следующих ошибок и общее время на выполнение тестирования.
Сравнить и объяснить результаты, полученные для различных законов распределения времени между соседними отказами и различного числа используемых для анализа данных.
-
Равномерный закон распределения
-
100% входных данных(n=30)
-
i |
T[i] |
i |
T[i] |
i |
T[i] |
1 |
0,6600 |
11 |
7,1600 |
21 |
13,9000 |
2 |
1,2600 |
12 |
8,4400 |
22 |
14,5400 |
3 |
2,1000 |
13 |
8,6400 |
23 |
14,6000 |
4 |
2,3200 |
14 |
8,6400 |
24 |
15,3600 |
5 |
2,5400 |
15 |
8,8400 |
25 |
15,5800 |
6 |
2,7400 |
16 |
9,0600 |
26 |
15,5800 |
7 |
2,9400 |
17 |
9,4800 |
27 |
15,8000 |
8 |
4,8600 |
18 |
11,6000 |
28 |
16,0000 |
9 |
5,7000 |
19 |
11,6200 |
29 |
18,9600 |
10 |
6,7600 |
20 |
12,4400 |
30 |
19,8000 |
n=30 = 15,5000 = 20,4400
Условие сходимости A> выполнено: 20,44>15,5
Рассмотрим функции и
m |
fn(m) |
g n(m,A) |
|fn(m)-g n(m,A)| |
31 |
3,9950 |
2,8420 |
1,15329740 |
32 |
3,0270 |
2,5960 |
0,43143811 |
33 |
2,5580 |
2,3890 |
0,16940839 |
34 |
2,2550 |
2,2130 |
0,04260213 |
35 |
2,0350 |
2,0610 |
0,02597349 |
36 |
1,8630 |
1,9280 |
0,06493198 |
Минимум разности при m = 35
Первоначальное число ошибок B=m-1=34
= 0.00715772
Среднее время обнаружения (n+1)-ой ошибки ^
^Xn+1=1/(0.00715772*(34-30))=34,93 дней
аналогично для (n+2) и т.д.:
m |
^Xi (дней) |
31 |
34,9300 |
32 |
46,5700 |
33 |
69,8500 |
34 |
139,7000 |
Время до завершения тестирования: ttst=^Xi= 291,05
Общее время тестирования:tcom=X[i]+ ^Xi=578.95579 дней
-
80% входных данных(n=24)
i |
T[i] |
i |
T[i] |
i |
T[i] |
1 |
0,6200 |
9 |
9,6800 |
17 |
14,9200 |
2 |
1,4000 |
10 |
11,1600 |
18 |
15,0600 |
3 |
3,0400 |
11 |
11,4800 |
19 |
15,8400 |
4 |
3,5000 |
12 |
12,2200 |
20 |
16,0600 |
5 |
5,3000 |
13 |
12,2600 |
21 |
17,3400 |
6 |
5,6800 |
14 |
12,5000 |
22 |
17,4800 |
7 |
7,1000 |
15 |
13,2800 |
23 |
17,8000 |
8 |
8,7400 |
16 |
14,0600 |
24 |
19,6000 |
n=24 = 12,5000
X[i]=T[i]-T[i-1] X[i]= 266,1000 iX[i]= 4212,0000
= 15,8300
Условие сходимости A> выполнено: 15,8300>12,5000
Рассмотрим функции и
m |
fn(m) |
g n(m,A) |
|fn(m)-g n(m,A)| |
25 |
3.7760 |
2.6170 |
1.15913510 |
26 |
2.8160 |
2.3600 |
0.45640712 |
27 |
2.3540 |
2.1480 |
0.20608171 |
28 |
2.0580 |
1.9720 |
0.08629209 |
29 |
1.8440 |
1.8220 |
0.02171160 |
30 |
1.6780 |
1.6940 |
0.01522818 |
31 |
1.5450 |
1.5820 |
0.03693400 |
Минимум разности при m = 30
Первоначальное число ошибок B=m-1=29
= 0.00636385
Среднее время обнаружения (n+1)-ой ошибки ^
^Xn+1=1/(0.00636385*(29-24))=31,43 дня
аналогично для (n+2) и т.д.:
m |
^Xi (дней) |
25 |
31.4300 |
26 |
39.2800 |
27 |
52.3800 |
28 |
78.5700 |
29 |
157.1000 |
Время до завершения тестирования: ttst=^Xi= 358,76
Общее время тестирования:tcom=X[i]+ ^Xi=624,88625 дней
-
60% входных данных(n=18)
i |
T[i] |
i |
T[i] |
i |
T[i] |
1 |
0,2000 |
7 |
6,8400 |
13 |
12,0800 |
2 |
1,2400 |
8 |
7,1000 |
14 |
12,5400 |
3 |
1,4000 |
9 |
8,6400 |
15 |
14,9800 |
4 |
3,0400 |
10 |
8,9000 |
16 |
17,2400 |
5 |
4,6800 |
11 |
10,2800 |
17 |
17,4000 |
6 |
4,8400 |
12 |
11,0800 |
18 |
19,6600 |
n=18 = 9,5000
X[i]=T[i]-T[i-1] X[i]= 162.1000 iX[i]= 2072.0000
= 12.7800
Условие сходимости A> выполнено: 12.7800>9,5000
Рассмотрим функции и
m |
fn(m) |
g n(m,A) |
|fn(m)-g n(m,A)| |
19 |
3.4950 |
2.8930 |
0.60227642 |
20 |
2.5480 |
2.4920 |
0.05545088 |
21 |
2.0980 |
2.1890 |
0.09143494 |
Минимум разности при m = 20
Первоначальное число ошибок B=m-1=19
= 0.01537121
Среднее время обнаружения (n+1)-ой ошибки ^
^Xn+1=1/(0.01537121*(19-18))=65,06 дня
m |
^Xi (дней) |
19 |
65.0600 |
Время до завершения тестирования: ttst=^Xi= 65,06
Общее время тестирования:tcom=X[i]+ ^Xi=227,2дней