Черников / Домашние задания / ДЗ-2 / Username_2
.docxПрактическое занятие
Оценка структурной и временной сложности программ
Для управляющего графа (Папка «Варианты» – файл «Граф» по выданному варианту):
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;
Матрица смежности.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Матрица достижимости
Выделенные диагональные элементы матрицы определяют номера вершин, которые входят в состав циклических маршрутов |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Оценим алгоритмическую сложность программы на основе метрики Маккейба.
В соответствии с теорией Маккейба сложность алгоритма оценивается величиной цикломатического числа, которая определяется по следующему соотношению:
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 тестовых вариантов исходных данных.