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

2.6 Расчет сложности по Холстеду

Основу метрики Холстеда составляют четыре измеряемые характеристики программы:

η1 – число уникальных, различных операторов программы, включая символы-разделители, знаки операций, имена процедур и функций (словарь операций).

η2 – число уникальных, различных операндов программы (словарь операндов).

N1 – общее количество операторов в программе.

N2 – общее количество операндов в программе.

Опираясь на эти характеристики, получаемые непосредственно при анализе исходных текстов программ, рассчитываются следующие оценки:

словарь программы: η = η1 + η2

длину программы: N = N1+N2

объем программы: V = Nlog2 η

Для начала расчетов необходимо составить словарь операторов и операндов:

словарь операторов

операторы

число операторов

=

23

<=

3

>=

1

<

1

>

3

*

8

+

3

&&

1

;

33

if

7

goto

12

cin

1

cout

6

getch

1

main

1

()

9

{}

1

η1 = 17

N1 = 114

словарь операндов

операнды

число операндов

a

9

b

6

c

3

d

6

e

3

f

3

g

3

h

3

m

3

j

3

k

3

l

3

M2

2

M3

2

M4

2

M5

2

M6

2

M7

2

M8

2

M9

2

M10

3

M11

2

M12

2

int

2

η2 = 24

N2= 73

словарь программы: η = 17+24= 41

длина программы: N = 114+73= 187

объем программы: V = 1001,9

2.7 Вывод о качестве программы

Выводы: во второй части расчетно-графической работы написана программа, соответствующая модульной структуре, построенной в первой части. Подтверждает это граф вызовов, матрица вызовов и достижимости, тестируемость. По тексту программы выполнен её статический анализ. Иерархическая сложность характеризует среднюю ширину уровня в графе вызовов, т.е. количество проектных решений, принимаемых на отдельном шаге разработки программы, будет равно 3. Структурная сложность позволяет сопоставить количество ребер в графе вызовов модулей и количество вершин. Результат сопоставления составляет 1,083. Таким образом, составляемые величины равны (13/12), что позволяет сделать вывод о достаточной простоте модульной структуры программы. Исходя из расчетов недоступными модулями можно признать М5, М6, M8, M9, М12. Значение коэффициента доступности для указанных модулей составляет 1/6. Наивысший коэффициент доступности равный 1 имеет модуль М1. В соответствии с этим при отладке программных модулей большая трудность может возникнуть в модулях М5, М6, M8, M9, М12. Наиболее простой и быстрой будет отладка модуля М1. Сложность по Маккейбу показывает количество тестовых прогонов программы, необходимых для исчерпывающего тестирования по каждому пути. Таким образом, количество тестовых прогонов будет равно 9. Исходя из сложности по Холстеду можно сделать вывод, что в программе содержатся 41 уникальных операторов и операндов, их общее число равно 187, а объем программы составляет 1001,9.