Метрика Джилба оценки сложности
Одной из наиболее простых, но достаточно эффективных оценок сложности программ является метрика Т. Джилба, в которой логическая сложность программы определяется как насыщенность программы выражениями типа IF – THEN – ELSE. При этом вводятся две характеристики CL – абсолютная сложность программы, характеризующаяся количеством операторов условия; CL = Nу, (2) где Nу- число операторов условия типа IF – THEN – ELSE и cl – относительная сложность программы, характеризующаяся количеством операторов условия, т.е. cl определяется как отношение cl к общему числу операторов. , (3)
где N – общее количество операторов
4. Метрика «граничных значений» оценки сложности
Введем несколько дополнительных понятий, связанных с графом программы. G = (V, E) – ориентированный граф программы с единственной начальной и единственной конечной вершинами. В этом графе число входящих в вершину дуг называется отрицательной степенью вершины, а число исходящих из вершины дуг называется положительной степенью вершины. Тогда набор вершин графа можно разбить на 2 группы: 1. Принимающие вершины – те, у которых положительная степень ≤ 1; 2. Вершины отбора – вершины,, у которой положительная степень ≥ 2. Для получения оценки необходимо разбить исходный граф G на макс. число подграфов G’, удовлетворяющим следующим условиям: - Вход в подграф осуществляется через вершину отбора. - Каждый подграф включает вершину, называемую в дальнейшем «нижняя граница подграфа», в которую можно попасть из любой другой вершины подграфа. Замечание: вершина отбора, соединённая с собой дугой в виде петли, образует подграф (см.рис.3, табл.1). Число вершин, образующих такой подграф, равно скорректированной сложности вершины отбора (табл.2). Каждая принимающая вершина имеет скорректированную сложность равную 1, кроме конечной вершины, скорректированная сложность которой равна 0.
Скорректированные сложности всех вершин графа G суммируются, образуя абсолютную граничную сложность. После этого определяется относительная граничная сложность программы: , (4) Таким образом, относительная граничная сложность программы равна S0 = 1-(11/25)=0, 56.
|