Скачиваний:
34
Добавлен:
26.12.2017
Размер:
715.09 Кб
Скачать

1.6 Скриншоты работы программы

При а=5 конечное значение 300, выполенение действий завершилось на модуле 10

При а=500 конечное значение 2080, выполенение действий завершилось на модуле 7, результат вывел модуль 10

Часть 2

2.1 Построение матрицы вызовов и достижимости

 

вызываемые программные модули

М1

М2

М3

М4

М5

М6

М7

М8

М9

М10

М11

М12

M1

 

+

+

+

M2

 

 

 

 

+

+

 

 

 

 

 

 

M3

 

 

 

 

 

 

+

 

 

 

M4

 

 

 

 

 

 

 

+

+

 

 

M5

 

 

 

 

 

 

 

 

 

+

 

 

M6

 

 

 

 

 

 

 

 

 

 

+

 

M7

 

 

 

 

 

 

 

 

 

 

+

 

M8

 

 

 

 

 

 

 

 

 

+

 

 

M9

 

 

 

 

 

 

 

 

 

 

 

+

M10

 

 

 

 

 

 

 

 

 

 

 

 

M11

 

 

 

 

 

 

 

 

 

 

 

 

M12

 

 

 

 

 

 

 

 

 

 

 

 

2.2 Построение графа вызовов

2.3 Определение количественных характеристик программы

Расчет иерархической сложности:

Иерархическая сложность графа рассчитывается по следующей формуле:

I=N/L,

где N – количество вершин в графе вызовов модулей;

L – количество уровней.

I = 12/4 = 3

Расчет структурной сложности:

Структурная сложность графа рассчитывается по следующей формуле:

S=D/N,

где D – количество ребер (стрелок) в графе вызовов модулей;

N – количество вершин.

S= 13/12 = 1,083

2.4 Расчет сложности по Маккейбу

Для вычисления цикломатического числа Маккейба Z(G) применяется формула:

Z(G) = e-v+2p

где e – число дуг (стрелок) ориентированного графа G; v – число вершин (модулей); 2p – число компонентов связности графа.

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

Для начала расчетов необходимо преобразовать граф в сильносвязанный, добавив дуги от М10, М11, М8, М12 к М1, поскольку данные модули не имеют обратной связи с М1:

Z(G) = 13-12+2*4=9

2.5 Расчет тестируемости

Оценка тестируемости ПС– (T) может быть проведена с использованием формул:

Nв

Т=[(1/Nв) · (∑1/Pi)]-1 ,

i=1

где NВ – количество путей вызовов в графе вызовов модулей;

Pi – тестируемость i-го пути вызовов.

k

Pi=[∑1/A( Mj )]-1,

j=1

где k – количество модулей в пути вызовов;

А (Мj) – доступность модуля Мj, принадлежащего пути Рi,.

n

А (Мj)=∑ А (Мx)/ C (Мx),

x=1

где А (Мx) – доступность x-го модуля, вызывающего Мj;

C (Мx) – количество всех модулей, которые вызывает Мx;

n – количество модулей, которые вызывают Mj;

А (М)=1, если модуль М является самым верхним (головным) модулем.

Расчет доступности:

A (M1) = 1 (главный модуль);

Модули 2-4 вызываются только модулем 1 и имеют одинаковое число входящих вызовов. Следовательно, коэффициенты их доступности равны.

A (M2) = A (M3) = A(M4)= 1/3

А(М7)= А(М10)= А(М11) = 1/3

Модули 5, 6, 8, 9 вызываются модулями (2 и 4) с равными коэффициентами доступности и имеют одинаковое число входящих вызовов. Следовательно, коэффициенты их доступности равны.

A(M5)= A(M6)= A(M8) = A(M9) = 1/6

А(М12)= 1/6

Расчет тестируемости i-го пути вызова

P1: (1:1+1:(1/3)+1:(1/6)+1:(1/3))-1 =1/13

P2: (1:1+1:(1/3)+1:(1/6)+1:(1/3))-1 =1/13

P3: (1:1+1:(1/3)+1:(1/3)+1:(1/3))-1 =1/10

P4: (1:1+1:(1/3)+1:(1/3)+1:(1/3))-1 =1/10

P5: (1:1+1:(1/3)+1:(1/6)+1:(1/3))-1 =1/13

P6: (1:1+1:(1/3)+1:(1/6))-1 =1/10

Расчет оценки тестируемости

Т = [1/6 * (13 + 13+ 10 + 10 + 13 + 10 )]-1 = 0,09