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