Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
72
Добавлен:
15.04.2018
Размер:
265.45 Кб
Скачать

Практическое занятие

Оценка структурной и временной сложности программ

Для управляющего графа (Папка «Варианты» – файл «Граф» по выданному варианту):

1. Проанализировать структуру графа и, если возможно, упростить его, сформировав упрощенную версию графа в формате Visio.

2. Определить необходимые маршруты тестирования по критериям 1, 2 и 3.

3. Сформировать матрицы смежности и достижимости.

4. Оценить структурную сложность программ, обладающих такими управляющими графами, по методике Маккейба.

5. Сделать выводы о структурной сложности программы по заданному графу.

Упростим граф (убираем выделенные вершины)

Тонированные вершины – ветвления.

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

m1: 1-2-3-6-3-6-11-8-7-8-13-14;

p1 = 7;

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

графа, представленного на рис. , что соответствует требованиям первого критерия. В перечне участков маршрутов номера вершин

ветвления выделены полужирным шрифтом с подчеркиванием. Таким образом, в соответствии с первым критерием оценки алгоритмической

сложности необходимое количество маршрутов равно 1, количество вершин ветвления в маршрутах определяет уровень сложности:

S1=p1=7.

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

Число вершин ветвления в составленном графе составляет 4,

отсюда

Z = nв + 1 = 4 + 1 = 5.

Таким образом, общее число циклических и ациклических

участков равно 5. Выделим маршруты на заданном графе:

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

m1: 1-2-7-8-13-14; p1 = 3;

m2: 1-2-3-6-11-9-13-14; p2 = 3;

m3: 1-2-3-6-11-13-14; p3 = 3;

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

m4: 8-7; p4 = 1;

m5: 3-6; p5 = 1’

Тестирование программы по указанным маршрутам позволит проверить все операторы ветвления программы. Метрика структурной сложности определяется по следующему

соотношению:

S2 = p1+p2+ p3+p4+ p5= 3+3+3+1+1 = 11;

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

m1: 1-2-7-8-13-14; p1= 2;

m2: 1-2-3-6-11-8-13-14; p2= 4;

m3: 1-2-3-6-11-13-14; p3= 3;

m4: 1-2-3-6-11-8-7-8-13-14; p4= 5;

m5: 1-2-3-6-3-6-11-8-13-14; p5= 5;

m6: 1-2-3-6-3-6-11-13-14; p6= 4;

m7: 1-2-3-6-3-6-11-8-7-8-13-14; p7 = 6;

m8: 1-2-7-8-7-8-13-14; p8= 3;

S3 = p1+p2+ p3+p4+ p5+p6+ p7+p8 = 2+4+3+5+5+4+6+3 = 32;

Матрица смежности.

1

2

3

6

7

8

11

13

14

1

2

1

3

1

1

6

1

7

1

1

8

1

1

11

1

13

1

1

14

1


Матрица достижимости

1

2

3

6

7

8

11

13

14

1

2

1

3

1

1

1

1

6

1

1

1

1

7

1

1

1

1

1

1

1

8

1

1

1

1

1

1

1

11

1

1

1

1

13

1

1

1

1

1

1

1

14

1

1

1

1

1

1

1

1


Выделенные диагональные элементы матрицы определяют номера

вершин, которые входят в состав циклических маршрутов

Оценим алгоритмическую сложность программы на основе метрики Маккейба.

В соответствии с теорией Маккейба сложность алгоритма оценивается величиной цикломатического числа, которая определяется по следующему соотношению:

Z = m – n + 2, где m – количество дуг управляющего графа, построенного на основе алгоритма программы, n – количество вершин графа. В соответствии с полученным управляющим графом m = 12, n = 9, тогда цикломатическое число равно:

Z = m – n + 2 = 12 – 9 + 2 = 5.

По Маккейбу: в соответствии со значением цикломатического числа (Z = 5) в полученном графе управления программой можно выделить пять независимых контуров, которые определяют пять управляющих маршрутов, ведущих из начальной вершины в конечную. Значение цикломатического числа для полученного графа (Z = 5) не превышает значения 10, что говорит о незначительной сложности алгоритма решения задачи расчета значений функции.

Вывод

Исходя из полученных результатов расчета метрик структурной сложности по первому (S1 = 7), второму (S2 = 11) и третьему (S3 = 32) критериям выделения маршрутов можно сделать вывод, что программа, характеризуемая заданным графом управления, имеет невысокую алгоритмическую сложность, так как количество используемых в тексте операторов условий 5, для проверки которых необходимо проверить от 5 до 32 тестовых вариантов исходных данных.

Соседние файлы в папке ДЗ-2