Метрика Джилба оценки сложности 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Метрика Джилба оценки сложности



 

Одной из наиболее простых, но достаточно эффективных оценок сложности программ является метрика Т. Джилба, в которой логическая сложность программы определяется как насыщенность программы выражениями типа IF – THEN – ELSE. При этом вводятся две характеристики CL – абсолютная сложность программы, характеризующаяся количеством операторов условия;

CL = Nу, (2)

где Nу- число операторов условия типа IF – THEN – ELSE

и cl – относительная сложность программы, характеризующаяся количеством операторов условия, т.е. cl определяется как отношение cl к общему числу операторов.

, (3)

 

где N – общее количество операторов

 

Метрика «граничных значений» оценки сложности

 

Введем несколько дополнительных понятий, связанных с графом программы.

G = (V, E) – ориентированный граф программы с единственной начальной и единственной конечной вершинами.

В этом графе число входящих в вершину дуг называется отрицательной степенью вершины, а число исходящих из вершины дуг называется положительной степенью вершины.

Тогда набор вершин графа можно разбить на 2 группы:

1. Принимающие вершины – те, у которых положительная степень ≤ 1;

2. Вершины отбора – вершины,, у которой положительная степень ≥ 2.

Для получения оценки необходимо разбить исходный граф G на макс. число подграфов G’, удовлетворяющим следующим условиям:

- Вход в подграф осуществляется через вершину отбора.

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

Замечание: вершина отбора, соединённая с собой дугой в виде петли, образует подграф (см.рис.3, табл.1).

Число вершин, образующих такой подграф, равно скорректированной сложности вершины отбора (табл.2). Каждая принимающая вершина имеет скорректированную сложность равную 1, кроме конечной вершины, скорректированная сложность которой равна 0.

 

Скорректированные сложности всех вершин графа G суммируются, образуя абсолютную граничную сложность. После этого определяется относительная граничная сложность программы:

, (4)
где S0 – относительная граничная сложность программы; Sа – абсолютная граничная сложность программы; v – общее число вершин графа программы.

Таким образом, относительная граничная сложность программы равна S0 = 1-(11/25)=0,56.

Описание алгоритма

 

1. Находим первую от начала вершину отбора, назовём её А.

2. Идём по одной из ветвей разветвления А до следующей вершины В (не включая её). Это подграф G1’.

3. Проходя далее из вершины отбора В по одной из ветвей до следующей вершины отбора С (не включая её) образуем подграф G2’ и т.д.

4. Из той вершины отбора, из которой организован какой-либо подграф, идём по другой ветви разветвления и организуем очередной подграф Gk.

5. Скорректированная сложность принимающей вершины = 1.

6. Скорректированная сложность вершины отбора равняется числу вершин в подграфе G1’ + число вершин в подграфе G’2 и т.д., столько слагаемых, сколько выходов из этой вершины отбора.

7. Сумма скорректированных сложностей всех скорректированных сложностей графа G даёт абсолютную сложность программы Sa.

8. Расчет относительной сложности.

Таблица 1

Подграфы программы

 

Характеристики подграфов программы Вершина отбора
A b b c d
Вершины перехода b, c b, d b e, f g, h
Скорректированная сложность вершины графа          
Вершины подграфа b, c,d e, f,g h, i, j b b e, f g, h
Нижняя граница подграфа K d b i j

 

Таблица 2



Поделиться:


Последнее изменение этой страницы: 2016-12-28; просмотров: 1879; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.70.131 (0.005 с.)