Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра метрологии и стандартизации
Лабораторная работа №1
по курсу: "Метрология, стандартизация и сертификации в
информационных технологиях"
на тему: "Метрики сложности потока управления программ"
Вариант 3
Выполнил: студент группы 622403 Гончаров М.В.
Проверил: Трус В.В.
Минск, 2017
Задание:
Для заданного варианта индивидуального задания разработать детализированную схему алгоритма, представленную в соответствии с положениями ГОСТ 19.701–90. По полученному алгоритму рассчитать метрики сложности потока управления программ (метрики Маккейба, Джилба, макси- мальный уровень вложенности условного оператора и оператора цикла, метри- ку граничных значений). В алгоритме предусмотреть вывод на экран всех вход- ных и выходных данных.
Вариант 3:
Ввести массив А (5, 7). Найти сумму элементов каждой строки, максимальную и минимальную из этих сумм. Вывести массив, полученные суммы, номера строк, где находятся максимальная и минимальная суммы.
Блок-схема алгоритма
Описание блок-схемы алгоритма:
Начало
Присваивание переменной mysum значения 0.
Создание пустого списка a.
Создание пустого списка b.
Присваивание переменной i значение 0.
Условный оператор if с условием i<5.
Добавление в конец списка пустого списка.
Присваивание переменной j значения 0.
Условный оператор if с условием j<7.
Ввод значения переменной x с клавиатуры.
Заполнение списка b значениями переменной mysum.
Добавление в конец списка a[i] значение переменной х.
Прибавление к сумме элемента вложенного списка a[i].
Вывод значения переменной Sum.
Вывод минимальной суммы элементов строки и номера строки, в которой они находятся.
Вывод максимальной суммы элементов строки и номера строки, в которой они находятся.
Присваивание переменной k значения 0.
Условный оператор if с условием k<5.
Вывод строки.
Переход на новую строку.
Конец.
Метрики сложности потока управления программ
Метрика Маккейба для разработанного алгоритма и определение базисных независимых путей.
Данная метрика определяется по формуле:
Z(G)= e - v + 2p,
13 QUOTE 1415 где e – число дуг ориентированного графа 13 QUOTE 1415;
v– число вершин;
p– число компонентов связности графа.
Для заданного алгоритма: e=23, v=21, p=1.
Цикломатическое число Маккейба равно Z(G)=23-21+2*1=4.
Метрика Маккейба определяет минимальное количество тестовых прогонов программы, необходимых для тестирования всех ее ветвей. Таким образом, в схеме алгоритма можно выделить 3 базовые независимые пути, называемые также линейно независимыми контурами.
Таким образом, для тестирования совокупности базисных независимых путей исследуемой программы необходимо выполнить минимально четыре тестовых прогона.
1-й путь: 1-2-3-4-5-6(да)-7-8-9(да)-10-11-12-13-9(нет)-11-6(нет)-14-15-16-17-18(да)-19-20-18(нет)-21
2-й путь: 1-2-3-4-5-6(да)-7-8-9(нет)-11-6(нет)-14-15-16-17-18(нет)-21
3-й путь: 1-2-3-4-5-6(да)-7-8-9(да)-10-12-13-9(нет)-11-6(нет)-14-15-16-17-18(да)-19-20-18(нет)-21
4-й путь: 1-2-3-4-5-6(да)-7-8-9(да)-10-12-13-9(нет)-11-6(нет)-14-15-16-17-18(нет)-21
Метрика Джилба.
Количество условных операторов в схеме алгоритма (абсолютная сложность программы) CL=313 QUOTE 1415.
Насыщенность программы условными операторами, характеризующая относительную сложность программы cl=CL/(v-2)=3/19=0,159.
Максимальный уровень вложенности условного и циклического оператора оператора CLI=1.
Метрика граничных значений.
Абсолютная граничная сложность программы Sa определяется как сумма скорректированных сложностей всех вершин графа G. Относительная граничная сложность программы So определяется по формуле:
13 EMBED Equation.3 1415,
где So – относительная граничная сложность программы; Sa абсолютная граничная сложность программы; v – общее число вершин графа программы.
Свойства подграфов программы.
Свойства подграфов
программы
Номер вершины выбора
6
9
17
Номера вершин перехода
7, 14
10, 11
18, 21
Скорректированная сложность вершины выбора
9
6
4
Номера вершин подграфа
7 , 8, 9, 10, 11, 12, 13, 6, 14
10, 12, 13, 9, 11, 6, 14
19, 20, 18, 21
Номер нижней границы подграфа
14
6
21
Скорректированные сложности вершин графа программы.
№
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Сл.
1
1
1
1
1
9
1
1
6
1
1
1
1
1
1
1
4
1
1
1
0
Таким образом, абсолютная граничная сложность Sa13 QUOTE 1415=36.
Относительная граничная сложность данной программы равна
13 QUOTE 14So=1-((v-1)/Sa)= 1-(20/36)=0,444.15
Метрики сложности потока управления программ:
Число Маккейба 13 QUOTE 1415
4
Абсолютная сложность программы (метрика Джилба) 13 QUOTE 1415
3
Относительная сложность программы (метрика Джилба) 13 QUOTE 1415
0,159
Максимальный уровень вложенности условного оператора (метрика Джилба) 13 QUOTE 1415
1
Абсолютная граничная сложность Sa
36
Относительная граничная сложность So
0,444
Untitled DiagramRoot Entry
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра метрологии и стандартизации
Лабораторная работа №1
по курсу: "Метрология, стандартизация и сертификации в
информационных технологиях"
на тему: "Метрики сложности потока управления программ"
Вариант 3
Выполнил: студент группы 622403 Гончаров М.В.
Проверил: Трус В.В.
Минск, 2017
Задание:
Для заданного варианта индивидуального задания разработать детализированную схему алгоритма, представленную в соответствии с положениями ГОСТ 19.701–90. По полученному алгоритму рассчитать метрики сложности потока управления программ (метрики Маккейба, Джилба, макси- мальный уровень вложенности условного оператора и оператора цикла, метри- ку граничных значений). В алгоритме предусмотреть вывод на экран всех вход- ных и выходных данных.
Вариант 3:
Ввести массив А (5, 7). Найти сумму элементов каждой строки, максимальную и минимальную из этих сумм. Вывести массив, полученные суммы, номера строк, где находятся максимальная и минимальная суммы.
Блок-схема алгоритма
Описание блок-схемы алгоритма:
Начало
Присваивание переменной mysum значения 0.
Создание пустого списка a.
Создание пустого списка b.
Присваивание переменной i значение 0.
Условный оператор if с условием i<5.
Добавление в конец списка пустого списка.
Присваивание переменной j значения 0.
Условный оператор if с условием j<7.
Ввод значения переменной x с клавиатуры.
Заполнение списка b значениями переменной mysum.
Добавление в конец списка a[i] значение переменной х.
Прибавление к сумме элемента вложенного списка a[i].
Вывод значения переменной Sum.
Вывод минимальной суммы элементов строки и номера строки, в которой они находятся.
Вывод максимальной суммы элементов строки и номера строки, в которой они находятся.
Присваивание переменной k значения 0.
Условный оператор if с условием k<5.
Вывод строки.
Переход на новую строку.
Конец.
Метрики сложности потока управления программ
Метрика Маккейба для разработанного алгоритма и определение базисных независимых путей.
Данная метрика определяется по формуле:
Z(G)= e - v + 2p,
13 QUOTE 1415 где e – число дуг ориентированного графа 13 QUOTE 1415;
v– число вершин;
p– число компонентов связности графа.
Для заданного алгоритма: e=23, v=21, p=1.
Цикломатическое число Маккейба равно Z(G)=23-21+2*1=4.
Метрика Маккейба определяет минимальное количество тестовых прогонов программы, необходимых для тестирования всех ее ветвей. Таким образом, в схеме алгоритма можно выделить 3 базовые независимые пути, называемые также линейно независимыми контурами.
Таким образом, для тестирования совокупности базисных независимых путей исследуемой программы необходимо выполнить минимально четыре тестовых прогона.
1-й путь: 1-2-3-4-5-6(да)-7-8-9(да)-10-11-12-13-9(нет)-11-6(нет)-14-15-16-17-18(да)-19-20-18(нет)-21
2-й путь: 1-2-3-4-5-6(да)-7-8-9(нет)-11-6(нет)-14-15-16-17-18(нет)-21
3-й путь: 1-2-3-4-5-6(да)-7-8-9(да)-10-12-13-9(нет)-11-6(нет)-14-15-16-17-18(да)-19-20-18(нет)-21
4-й путь: 1-2-3-4-5-6(да)-7-8-9(да)-10-12-13-9(нет)-11-6(нет)-14-15-16-17-18(нет)-21
Метрика Джилба.
Количество условных операторов в схеме алгоритма (абсолютная сложность программы) CL=313 QUOTE 1415.
Насыщенность программы условными операторами, характеризующая относительную сложность программы cl=CL/(v-2)=3/19=0,159.
Максимальный уровень вложенности условного и циклического оператора оператора CLI=1.
Метрика граничных значений.
Абсолютная граничная сложность программы Sa определяется как сумма скорректированных сложностей всех вершин графа G. Относительная граничная сложность программы So определяется по формуле:
13 EMBED Equation.3 1415,
где So – относительная граничная сложность программы; Sa абсолютная граничная сложность программы; v – общее число вершин графа программы.
Свойства подграфов программы.
Свойства подграфов
программы
Номер вершины выбора
6
9
17
Номера вершин перехода
7, 14
10, 11
18, 21
Скорректированная сложность вершины выбора
9
6
4
Номера вершин подграфа
7 , 8, 9, 10, 11, 12, 13, 6, 14
10, 12, 13, 9, 11, 6, 14
19, 20, 18, 21
Номер нижней границы подграфа
14
6
21
Скорректированные сложности вершин графа программы.
№
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Сл.
1
1
1
1
1
9
1
1
6
1
1
1
1
1
1
1
4
1
1
1
0
Таким образом, абсолютная граничная сложность Sa13 QUOTE 1415=36.
Относительная граничная сложность данной программы равна
13 QUOTE 14So=1-((v-1)/Sa)= 1-(20/36)=0,444.15
Метрики сложности потока управления программ:
Число Маккейба 13 QUOTE 1415
4
Абсолютная сложность программы (метрика Джилба) 13 QUOTE 1415
3
Относительная сложность программы (метрика Джилба) 13 QUOTE 1415
0,159
Максимальный уровень вложенности условного оператора (метрика Джилба) 13 QUOTE 1415
1
Абсолютная граничная сложность Sa
36
Относительная граничная сложность So
0,444
Untitled DiagramRoot Entry