Смекни!
smekni.com

Критерии качества програмного обеспечения (стр. 5 из 17)

Метрики

Таблица 1

Название модели

Формула, обозначение

1

2

МЕТРИКИ СЛОЖНОСТИ

Метрики Холстеда
- длина программы;
- объем программы
- оценка ее реализации;
- трудность ее понимания;
- трудоемкость кодирования;
- уровень языка выражения;
- информационное содержание;
- оптимальная модульность;
N = n1 log1 n1 + n2 log2 n2
V = N log2 n
L*= (2 n2 )/ (n1 N2)
Ec = V/ L*
D = (n1N2) (2n2) = 1/ L*
λ * = V/ D2 = V/ L* 2
I = V / D
M = n2*/6
Метрики Джилба
- количество операторов цикла;
L1oop

Продолжение таблицы 1

1

2

- количество операторов условия;
- число модулей или подсистем; - отношение числа связей между модулями к числу модулей;
- отношение числа ненормальных выходов из множества операторов к общему числу операторов;
L IF
L mod f = N4SV / L mod

f * = N*SV / L
Метрики Мак-Кейба- цикломатическое число;
- цикломатическая сложность;
λ (G) = m - n + p
ν (G) = λ (G) +1 = m - n + 2
Метрика Чепена
- мера трудности понимания программ на основе входных и выходных данных;
H = 0.5T+P+2M+3C
Метрика Шнадевида
- число путей в управляющем графе
S = Σ Pi Ci
Метрика Майерса
- интервальная мера;
[ν 1 ¸ ν 2]
Метрика Хансена
- пара (цикломатическое число, число операторов)
{ ν , N}
Метрика Чена
- топологическая мера Чена;
M(G) = (ν (G), N, Q0)
Метрика Вудворда
- узловая мера (число узлов передач управления);
Y x
Метрика Кулика - нормальное число (число Norm (P)

Продолжение таблицы 1

1

2

простейших циклов в нормальной схеме программы);
Метрика Хура
- цикломатическое число сети Петри, отражающей управляющую структуру программы;
l (G*р)
Метрики Витворфа, Зулевского
-мера сложности потока управления
-мера сложности потока данных;
g (Р)
W (Р)
Метрика Петерсона
- число многовходовых циклов;
Nm 1 0 0 p
Метрики Харрисона, Мэйджела
- функциональное число (сумма приведенных сложностей всех вершин управляющего графа);
- функциональное отношение (отношение числа вершин графа к функциональному числу);
- регулярные выражения (число операндов, операторов и скобок в регулярном выражении управляющего графа программы);
f1 = S c 1 f* = N c1 / f1

p(G) = N + L + Sk
Метрика Пивоварского
- модифицированная цикломатическая мера сложности;
N(G) = n*(G) + S Pi
Метрика Пратта
- тестирующая мера;
Test (Pr)

Продолжение таблицы 1

1

2

Метрика Кантоне
- характеристические числа полиномов, описывающих
PCN*
управляющий граф программы;
Метрика Мак-Клура
- мера сложности, основанная на числе возможных путей выполнения программы, числе управляющих конструкций и переменных;
C(V) = D(V) ´ J(V) / N
Метрика Кафура
- мера на основе концепции информационных потоков;
I(G)
Метрика Схуттса, Моханти
- энтропийные меры;
e (G)
Метрика Коллофело
- мера логической стабильности программ;
h (G)
Метрика Зольновского, Симмонса, Тейера
Взвешенная сумма различных индикаторов:
- (структура, взаимодействие, объем, данные);
- (сложность интерфейса, вычислительная сложность, сложность ввода/вывода, читабельность);
å (a , b , g , n ) å (c , C , u , p )

Продолжение таблицы 1

1

2

Метрика Берлингера
- информационная мера;
I(R) = m (F* (R) ´ F-(R))2
Метрика Шумана - сложность с позиции статистической теории языка; X (Y)
Метрика Янгера
- логическая сложность с учетом истории вычислений;
Сложность проектирования
Насыщенность комментариями
Число внешних обращений
Число операторов
L ( w )

Cc = å log2 (i + 1) [å n Cxy (n)]
X = K/C
Ci
L1

ПРОГНОЗ МОДЕЛИ

Модели Холстеда
- прогноз системных ресурсов;
- прогноз числа ошибок.
Модель фирмы IBM
Модель общей сложности
Модели связности
Сплайн-модель
P=3/8 (Ra - 1) ´ 2Ra
B = Nlog2 n / 3000
B = 23M1 + M1 0
B = 21.1 + 0.1 V + COMP (S)
Pij = 0.15 (Si + Sj) + 0.7 Cij
Pij = ½ å l i (D Zij2 + D Nij2 ) ln (D Zij2 + D Nij2 ) + a + b Zi + g N1

ОЦЕНОЧНЫЕ МОДЕЛИ

Джелински - Моранды R(t) = e - (Т - 1 + 1) Ft
Вейса-Байеса R1(t) = ò òe-l - (i-1) F)t Y(l, F/t1, ..., ti-1) dl dФ
Шика-Волвертона R1(t) = e - F( N - 1 + 1) ti2 / 2
Литтлвуда R1 (t) = (b+t/b+t +t)- F(N - i + 1) a
Нельсона Rj (t) = exp { åln (1 - Pj)}
Халецкого Rj (t) = Pµ- a(1- g nj ) / nj

Окончание таблицы 1

1

2

Модель отлаженности Rj (t) =Pµ- r fj (t, l ,p)
Мозаичная модель Rj (t) = 1 - b( a - wj - 1)

В таблице 1 представлены разнообразные метрики сложности ПО для различных форм их представления, модели прогнозирующие ход развития процессов разработки ПО и вероятностные модели по оценке надежности.

Общим, инвариантно присущим любому ПО (и связанной с его корректностью), является его структура. Важно связать это обстоятельство с определенным значением структурной сложности в совокупности мер сложности ПО. И более того, при анализе структурной сложности целесообразно ограничиться только ее топологическими мерами, т.е. мерами, в основе которых лежат топологические характеристики граф-модели программы. Эти меры удовлетворяют подавляющему большинству требований, предъявляемых к показателям: общность применимости, адекватность рассматриваемому свойству, существенность оценки, состоятельность, количественное выражение, воспроизводимость измерений, малая трудоемкость вычислений, возможность автоматизации оценивания.

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

Первой топологической мерой сложности является цикломатическая мера Мак-Кейба. В ее основе лежит идея оценки сложности ПО по числу базисных путей в ее управляющем графе, т.е. таких путей, компонуя которые можно получить всевозможные пути из входа графа в выходы. Цикломатическое число l(G) орграфа G с n-вершинами, m-дугами и p-компонентами связности есть величина l(G) = m - n + p. Практически цикломатическая сложность ПО равна числу предикатов плюс единица, что позволяет вычислять ее без построения управляющего графа простым подсчетом предикатов. Данная мера отражает психологическую сложность ПО.

Дж. Майерс предложил в качестве меры сложности интервал [n 1 ¸ n 2], где n 1- цикломатическая мера, а n 2 - число отдельных условий плюс единица. При этом, оператор DO считается за одно условие, а CASE c n - исходами за n-1- условий. Введенная мера получила название интервальной мерой.

У. Хансену принадлежит идея брать в качестве меры сложности ПО пару (цикломатической число, число операторов). Известна топологическая мера Z(G), чувствительная к структурированности ПО. При этом, она Z(G) = V(G) (равна цикломатической сложности) для структурированных программ и Z(G) > V(G) для неструктурированных. К вариантам цикломатической меры сложности относят также меру М(G) = (V(G),C,Q), где С - количество условий, необходимых для покрытия управляющего графа минимальным числом маршрутов, а Q - степень связности структуры графа программы и ее протяженность.

К мерам сложности, учитывающим вложенность управляющих конструкций, относят тестирующую меру М и меру Харрисона-Мейджела, учитывающих уровень вложенности и протяженности ПО, меру Пивоварского - цикломатическую сложность и глубину вложенности, и меру Мак-Клура - сложность схемы разбиения ПО на модули с учетом вложенности модулей и их внутренней сложности.

Функциональная мера сложности Харрисона-Мейджела предусматривает приписывание каждой вершине графа своей собственной сложности (первичной) и разбиение графа на сферы влияния предикатных вершин. Сложность сферы называют приведенной и слагают ее из первичных сложностей вершин, входящих в сферу ее влияния, плюс первичную сложность самой предикатной вершины. Первичные сложности вычисляются всеми возможными способами. Отсюда функциональная мера сложности ПО есть сумма приведенных сложностей всех вершин управляющего графа.