Сложность вычислительных маршрутов оценивается формулой m – кол-во маршрутов исполнения программы. li – число данных обрабатываемых в i-ом маршруте vi – число значений обрабатываемых данных j –го типа
Сложность маршрутов принятия логических решений оценивается формулой pi – число ветвлений или число проверяемых условий в i-ом маршруте. |
|
22.Характеристика оценки качества программ на основе метрик свойств |
|
|
|
Первый критерий минимальный набор маршрутов, проходящих через каждый оператор ветвления и по каждой дуге. m1: 1–2–3–4–5–6–7–8–9–2–3–7–8–9–10; p1 = 6; В перечне участков маршрутов номера вершин ветвления выделены полужирным шрифтом с подчеркиванием. Т о, в соответствии с первым критерием оценки алгоритмической сложности необходимое количество маршрутов равно -, количество вершин ветвления в маршрутах определяет уровень сложности: S1 = p1 + p2 = 6 + 7 = 13. Второй критерий Z = nв + 1, где nв – число вершин ветвления. Т о, общее число циклических и ациклических участков равно -. Выделим маршруты на заданном графе: - ациклические маршруты: - циклические маршруты: Метрика структурной сложности определяется по следующему соотношению: S2 = p1 + p2 + p3 + p4 + p5 Матрица смежности Матрица достижимости Выделенные диагональные элементы матрицы определяют номера вершин, которые входят в состав циклических маршрутов. Третий критерий выделить все реально возможные маршруты управления: S3 = p1 + p2 + p3 +… Вывод: Исходя из полученных результатов расчета метрик структурной сложности по первому (S1 = 8), второму (S2 = 17) и третьему (S3 = 42) критериям выделения маршрутов можно сделать вывод, что программа, характеризуемая заданным графом управления, имеет невысокую алгоритмическую сложность, так как количество используемых в тексте операторов условий 5, для проверки которых необходимо проверить от 5 до 42 тестовых вариантов исходных данных. Маккейб Z = m – n + 2, где m – количество дуг управляющего графа, построенного на основе алгоритма программы, n – количество вершин графа. Т о, в соответствии со значением цикломатического числа (Z = 5) в полученном графе управления программой можно выделить пять независимых контуров, которые определяют пять управляющих маршрутов, ведущих из начальной вершины в конечную. Значение цикломатического числа для полученного графа (Z = 5) не превышает значения 10, что говорит о незначительной сложности алгоритма решения задачи расчета значений функции. |
• f1 – количество внешних вводов (ввод значений переменных, строки …(Parse, ReadLine) • f2 – количество внешних выводов(вывод диалоговых сообщений(write) вывод результатов на экран строки(print); • f3 – количество внешних запросов (диалоговых вводов-выводов) равно нулю, так как отсутствуют обращения к внутренним и внешним логическим файлам; • f4 – количество локальных внутренних логических файлов равно нулю, так как в решении такие файлы отсутствуют; • f5 – количество внешних интерфейсных файлов равно нулю, так как в решении такие файлы отсутствуют. Исходные данные для расчета количества функциональных указателей сведем в таблицу Для внешних вводов, выводов и запросов обращение к 1– 4 элементам данных представляет собой низкий уровень сложности, обращение к 5–19 элементам данных – средний уровень сложности, обращение к более 19 элементам – высокий уровень сложности. Для внутренних и внешних файлов обращение к 1–19 элементам соответствует низкому уровню сложности, к 20–50 соответствует среднему уровню сложности и к более 50 – высокому уровню сложности. В соответствии с уровнем сложности значение характеристики умножается на коэффициент сложности. При внешних вводах решения программы осуществляется обращение к одному элементу данных, что соответствует низкому уровню сложности. При внешних выводах также осуществляется обращение к одному элементу данных. Внешние запросы, внутренние и внешние файлы отсутствуют. Определение уровня сязности: Метод Main осуществляет решение поставленной задачи. Модуль реализует не единственную прикладную функцию. Действия внутри модуля связаны. Порядок действия внутри модуля важен – тип связности – коммуникационный, сила связности – 7. Таким образом, в решении преобладают модули с силой связности 7 и 10, что говорит о достаточно высоком качестве программы, легкой ее тестируемости. Определение сцепления модулей: Метод sum является вызываемым, и его входными параметрами являются простые и стуктурные данные (массивы). Таким образом, рассматриваемый модуль имеет сцепление по образцу (сила сцепления 3). Метод sort является вызывающим и одновременнно вызываемым. Поскольку уровень сцепления вызывающего метода выше, то мы не рассматриваем этот метод как вызываемый. Метод sort осуществляет вызов метода change с передачей ему списка параметров, влияющих на работу метода. Таким образом, метод sort имеет сцепление по управлению (сила сцепления 4). |
Бесприоритетного обслуживания Таким образом, через три единицы времени в очереди на обслуживание оказывается два запроса: третий (ожидавший одну единицу времени) и четвертый. Первым будет обслужен третий, как поступивший раньше. Запрос D будет ожидать три единицы времени, поэтому общее ожидание рассматриваемого набора запросов составит 4 минуты. Суммарное и среднее выполнение всех запросов |
С относительными приоритетами В момент поступления первого запроса (А) он является в системе единственным и поэтому сразу попадает в стадию исполнения. После завершения его исполнения в очереди присутствует два запроса: второй (В) и третий (С). В первую очередь выполняется запрос С, поскольку его приоритет равен 2, и это значение выше, чем у запроса В, имеющего приоритет 3. После его выполнения поступает четвертый запрос 5 (D) с наивысшим приоритетом (его значение равно 1), и он выполняется первым из трех, находящихся в данный момент в очереди. Затем выполняется второй запрос (В) и, наконец, пятый (Е). Таким образом, в ожидании в рамках всего процесса окажутся два запроса – В и Е, каждый из которых потребует 7 минут ожидания. |
абсолютными приоритетами Если бы не требовалось прерывать обработку текущего запроса, процесс обработки всех запросов за- вершился бы в конце 8-й минуты. Однако в модели обслуживания с абсолютными приоритетами происходит прерывание текущей обра- ботки и переключение на обслуживание иного запроса в случае появления запроса с более высоким прио- ритетом. |
|