Оценка структурной сложности трех критериев и метрики Маккейба 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оценка структурной сложности трех критериев и метрики Маккейба



Исходный граф

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

Рис. 2 Управляющий граф разработанной программы

 

Найдем цикломатическое число:

Z = m – n +2 = 28 – 22 + 2 = 8,

Где m – количество дуг, а n – количество вершин.

Модифицированный граф

Как видно, некоторые из вершин можно убрать, так как они образуют линейную последовательность операторов:

Рис. 3 Модифицированный управляющий граф разработанной программы

 

Цикломатическое число осталось таким же:

Z = m – n +2 = 22 – 16 + 2 = 8,

Первый критерий

Определяем минимальный набор маршрутов, проходящих через каждый оператор ветвления и по каждой дуге:

M1: 1- 2 - 3 - 4 - 6 -7- 4 - 6 -9- 10 -13- 4 - 6 -9- 10 - 11 -12-9- 10 - 11 -13- 4 - 2 - 3 - 14 - 16 -20- 14 - 16 -19- 14 - 2 -22; p1=22

Вычислим уровень сложности:

S1= p 1 = 22

Второй критерий

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

Общее число проверок = Z = 8 Таким образом, общее число циклических и ациклических участков в графе равно 8.

 

Циклические участки:

M1: 2 - 3 - 4; p1=3

M2: 2 - 3 - 14; p2=3

M3: 4 - 6 -7; p3=2

M4: 4 - 6 -9- 10 - 11 -13; p4 =4

M5: 9- 10 - 11 -13; p5 =2

M6: 14 - 16 -20; p6=2

M7: 14 - 16 -19; p7=2

Ациклические маршруты:

M8: 1- 2 -22; p8=1

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

S2 = p1+p2+p3+p4+p5+p6+p7+p8 = 3+3+2+4+2+2+2+1 = 19


Третий критерий

Так как циклы, идущие от вершин 4 и 14 независимы друг от друга (2 подзадачи в программе), то в третьем критерии можно рассматривать комбинации всех маршрутов внутри этих независимых циклов:

M1: 1- 2 -22; p1=2

M2: 1- 2 - 3 - 4 - 6 -9- 10 - 11 -13- 4 - 2 -22; p2=8

M3: 1- 2 - 3 - 4 - 6 -7- 2 -22; p3=5

M4: 1- 2 - 3 - 4 - 6 -9- 10 -13- 4 - 2 -22; p4=7

M5: 1- 2 - 3 - 4 - 6 -9- 10 - 11 -12-9- 10 - 11 -13- 4 - 2 -22; p5=10

M6: 1- 2 - 3 - 4 - 6 -9- 10 - 11 -12-9- 10 -13- 4 - 2 -22; p6=9

M7: 1- 2 - 3 - 14 - 16 -20- 14 - 2 -22; p7=6

M8: 1- 2 - 3 - 14 - 16 -19- 14 - 2 -22; p8=6

M9: 1- 2 - 3 - 14 - 16 -20- 14 - 16 -19- 14 - 2 -22; p9=8

M10: 1- 2 - 3 - 4 - 6 -7-9- 10 - 11 -13- 4 - 2 -22; p10=8

M11: 1- 2 - 3 - 4 - 6 -7- 4 - 6 -9- 10 -13- 4 - 2 -22; p11=9

M12: 1- 2 - 3 - 4 - 6 -7- 4 - 6 -9- 10 - 11 -12-9- 10 - 11 -13- 2 -22; p12=11

M13: 1- 2 - 3 - 4 - 6 -7- 4 - 6 -9- 10 - 11 -12-9- 10 -13- 2 -22; p13=10

M14: 1- 2 - 3 - 4 - 2 -22; p14=4

M15: 1- 2 - 3 - 14 - 2 -22-9-5-9- 11 - 2 - 14; p15=7

M16: 1- 2 - 3 - 4 - 2 - 3 - 14 - 2 -22; p16=7

Посчитаем третий критерий:

S3= 2+2+5+7+10+9+6+6+8+8+9+11+10+4+7+7 = 111

Таблица 16 Матрица смежности управляющего графа

                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 

Таблица 17 Матрица достижимости управляющего графа

                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 
                                 

Алгоритмическая сложность на основе метрики Маккейба

На основе цикломатического числа полученного графа (Z = m –n + 2 =8) можно утверждать, что в данном графе управления можно выделить 8 независимых контуров, ведущих из начальной вершины в конечную.

Z < 10, следовательно, можно говорить о незначительной сложности алгоритма. А это значит, что исходная программа не обладает излишней сложностью, и нет необходимости разбивать ее более сложные составные части.

Вывод

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

 


Оценка характеристик программы на основе модели функциональных указателей



Поделиться:


Последнее изменение этой страницы: 2017-01-24; просмотров: 1477; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.109.5 (0.009 с.)