Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метрология

.docx
Скачиваний:
12
Добавлен:
02.04.2015
Размер:
329.7 Кб
Скачать

Цель работы: Изучение метрик оценки качества программного обеспечения.

Функция на языке MATLAB

Входные параметры:

n-длинна формируемого массива случайных чисел

nac-начало диапазона случайных чисел

kon-конец диапазона случайных чисел

k_med-количество элементов массива для подсчёта медианы

function [X] = RandomSumMediana(n,nac,kon,k_med)

if(n>0 & nac<kon & k_med>0)

for i=1:n

A(i)= round(nac + (kon-nac)*rand);

B(i)= round(nac + (kon-nac)*rand);

end

k=n;

for i=1:n

if(A(i)<0 & B(k)<0)

AB(i)=A(i)*B(k);

else

AB(i)=A(i)+B(k);

end

k=k-1;

end

j=0;

x_k=0;

for i=1:n

j=j+1;

BUF(j)=AB(i);

if(j==k_med | i==n )

x_k=x_k+1;

X(x_k)=median(BUF);

clear BUF;

j=0;

end

end

else

error('Параметры заданы неверно');

end

end

Рисунок 1. Результаты работы профилировщика

Рисунок 2. Результаты работы профилировщика – строки кода, на выполнение которых затрачено наибольшее время выполнения, а так же покрытие программы

Рисунок 3. Результаты работы профилировщика – строки кода, на выполнение которых затрачено наибольшее время выполнения

Блок-схема алгоритма:

Граф потока данных и линейно-независимые маршруты прохождения программы:

Таблица – перечень операторов и операндов, использующихся в программе

Оператор

Операнд

Количество

1

=

 

16

2

+

 

5

3

-

 

3

4

:

 

3

5

;

 

15

6

for

 

3

7

<

 

3

8

>

 

2

9

()

 

22

10

round

 

2

11

rand

 

2

12

median

 

1

13

*

 

3

14

clear

 

1

15

error

 

1

16

if

 

3

17

&

 

3

18

|

 

1

19

==

 

2

20

'

 

1

21

 

n

5

22

 

nac

3

23

 

kon

3

24

 

k_med

1

25

 

A

3

26

 

B

3

27

 

k

5

28

 

AB

3

29

 

BUF

3

30

 

i

12

31

 

j

5

32

 

x_k

4

33

 

X

1

34

 

0

3

Оценивание структурной сложности программного модуля по метрике Маккейба:

Для определения цикломатического числа Z исходного графа программы используется полное количество его вершин n, количество связывающих его дуг Y и число связных компонент Q:

Z = Y - n + Q

Z = 25 – 19 + 1 = 7

Оценивание логической сложности программного модуля по метрике Джилба:

В приведенной программе 3 условные конструкции типа IF-THEN-ELSE, это число характеризует абсолютную сложность CL программы по метрике Джилба. Общее число операторов в программе составляет 92 оператора, относительная сложность программы равна cl = CL / 92 = 3 / 92 = 0.033.

Оценивание сложности программного модуля по метрике Холстеда:

n1 = 20 (число уникальных операторов программы, включая символы-разделители,

имена процедур и знаки операций - словарь операторов);

n2 = 14 (число уникальных операндов программы - словарь операндов);

N1 = 92 (общее число операторов в программе);

N2 = 54 (общее число операндов в программе);

1) полный словарь n = n1 + n2 = 20 + 14 = 34 определяет, что для описания данного алгоритма на данном языке программирования требуется 34 операторов и операндов;

2) поскольку в данном примере представлена программа небольшого объема, длина программы определяется прямым подсчетом, косвенная оценка не производится. При определении полной длины программы Nс = N1 + N2 = 92 + 54 = 146 показана связь между длиной программы и размером словаря, то есть из словаря n, который составляет 34 операндов и операторов составлена программа, полная длина N которой составляет 146 операндов и операторов;

3) объем текста программы V = Nc*log2n = 146*log234 = 743 бита

4) поскольку обычно потенциальный объем неизвестен, для определения качества программирования производится косвенная оценка L = 2*n2 / n1*N2 = 2*14/20*54 = 0,026. Так как L = 0,026 < 1, уровень качества программы достаточно высокий, так как общее количество операндов N2 достаточно близко к минимально необходимому объему словаря n2;

5) уровень языка программирования = L^2*V = 0,5 низкий (по сравнению с уровнем языка программирования Ассемблер, для которого λ = 0,88);

6) оценка интеллектуальных усилий на создание программы объемом V = 724 бита E=V/L=28659 характеризует среднее количество различаемых элементов, которые составляют программу и которые необходимо разработать;

7) трудоемкость разработки программы может быть определена по формуле:

Nc^2 * log2n) / 4S,

где S – интенсивность анализа и принятия решения по каждой компоненте, 5 < S < 20. Пусть S = 10, тогда 146^2 * log232) / 4*10 = 817 секунд.

1