Лабораторная работа №4
.docМинистерство образования и науки РФ
Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
Кафедра МО ЭВМ
Дисциплина: метрология программного обеспечения.
Отчет по лабораторной работе № 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
X[i]=T[i]-T[i-1]
X[i]= 287,9000
iX[i]= 5886,0000
= 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 дней
1.2.расчет при 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 дней
1.3.расчет при 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дней
2.Экспоненциальный закон распределения
2.1.расчет при 100% входных данных(n=30)
i |
T[i] |
i |
T[i] |
i |
T[i] |
1 |
0,1400 |
11 |
6,1000 |
21 |
13,9000 |
2 |
0,1800 |
12 |
7,0000 |
22 |
14,0000 |
3 |
0,4000 |
13 |
7,1600 |
23 |
14,6800 |
4 |
1,5000 |
14 |
8,3000 |
24 |
15,0400 |
5 |
1,7600 |
15 |
8,5200 |
25 |
16,0400 |
6 |
2,8000 |
16 |
9,1800 |
26 |
16,6200 |
7 |
4,3200 |
17 |
10,5600 |
27 |
16,7200 |
8 |
4,4400 |
18 |
11,1200 |
28 |
18,3600 |
9 |
4,9600 |
19 |
11,6000 |
29 |
18,8600 |
10 |
5,6200 |
20 |
11,8600 |
30 |
19,4000 |
n=30
= 15,5000
X[i]=T[i]-T[i-1]
X[i]= 281,1000
iX[i]= 5898,0000
= 20,9800
Условие сходимости A> выполнено: 20,9800>15,5000
Рассмотрим функции и
m |
fn(m) |
g n(m,A) |
|fn(m)-g n(m,A)| |
31 |
3.9950 |
2,9940 |
1,00097220 |
32 |
3,0270 |
2,7220 |
0,30491969 |
33 |
2,5580 |
2,4960 |
0,06265286 |
34 |
2,2550 |
2,3040 |
0,04868434 |
35 |
2,0350 |
2,1400 |
0,10492515 |
Минимум разности при m = 34
Первоначальное число ошибок B=m-1=33
= 0,00819574
Среднее время обнаружения (n+1)-ой ошибки ^
^Xn+1=1/(0,00819574*(33-30))= 40,6715дня
m |
^Xi (дней) |
31 |
40,6700 |
32 |
61,0100 |
33 |
122,0000 |
Время до завершения тестирования: ttst=^Xi= 223,68
Общее время тестирования:tcom=X[i]+ ^Xi=504,8000 дней
2.2.расчет при 80% входных данных(n=24)
i |
T[i] |
i |
T[i] |
i |
T[i] |
1 |
0,1207 |
9 |
3,7830 |
17 |
9,9700 |
2 |
0,1613 |
10 |
5,5860 |
18 |
10,6700 |
3 |
0,5446 |
11 |
5,7630 |
19 |
11,4300 |
4 |
0,7580 |
12 |
5,8880 |
20 |
16,1400 |
5 |
0,8013 |
13 |
5,9970 |
21 |
16,2500 |
6 |
2,5750 |
14 |
6,8720 |
22 |
18,0800 |
7 |
2,9440 |
15 |
6,9920 |
23 |
18,4500 |
8 |
3,0790 |
16 |
8,1640 |
24 |
19,7300 |
n=24
= 12,5000
X[i]=T[i]-T[i-1]
X[i]= 180,7000
iX[i]= 3242,0000
= 17,9400
Условие сходимости A> выполнено: 17,9400>12,5000
m |
fn(m) |
g n(m,A) |
|fn(m)-g n(m,A)| |
25 |
3.7760 |
3,3970 |
0,37859477 |
26 |
2,8160 |
2,9760 |
0,16012097 |
27 |
2,3540 |
2,6480 |
0,29332976 |
Минимум разности при m = 26
Первоначальное число ошибок B=m-1=25
= 0,01646543
Среднее время обнаружения (n+1)-ой ошибки ^
^Xn+1=1/(0,01646543*(25-24))= 60,7333 дня
аналогично для (n+2) и т.д.:
m |
^Xi (дней) |
25 |
60,7300 |
Время до завершения тестирования: ttst=^Xi= 60,73
Общее время тестирования:tcom=X[i]+ ^Xi=241,5000дней
2.3.расчет при 60% входных данных(n=18)
i |
T[i] |
i |
T[i] |
i |
T[i] |
1 |
0,4500 |
7 |
4,2310 |
13 |
8,9160 |
2 |
0,7150 |
8 |
4,7640 |
14 |
11,3300 |
3 |
1,0760 |
9 |
6,3490 |
15 |
16,1900 |
4 |
1,4620 |
10 |
7,5500 |
16 |
17,6000 |
5 |
3,3830 |
11 |
8,0740 |
17 |
19,5200 |
6 |
3,7400 |
12 |
8,8670 |
18 |
19,8100 |