Перечень метрик
№ п.п. |
Категория |
Название |
№ мет-рики |
Код |
Описание |
|
Метрики управления потоком (Control Flow Metric) |
|
|
|
|
|
Percent Modules with Exceptions |
5 |
PME |
Процент модулей с исключениями |
|
|
Average Exceptions per Modules |
6 |
AVGEM |
Средний процент исключений в модуле |
|
|
Total Modules |
8 |
TM |
Общее число функций (модулей) компонента |
|
|
Total LOC |
9 |
TLOC |
Общее число непустых строк, включая строки комментария и заголовки. Включает строки комментария и строки заголовков во всех модулях |
|
|
Max LOC |
10 |
MLOC |
Максимальное число непустых строк в любом модуле |
|
|
Ave LOC |
11 |
AVLOC |
Среднее число непустых строк в модуле |
|
|
Total NCSS |
12 |
TNCSS |
Общее число исходных конструкций. Не включает пустые строки, строки комментария или заголовочные строки во всех модулях |
|
|
Max NCSS |
13 |
MNCSS |
Максимальное число некомментированных исходных конструкций в любом модуле |
|
|
Ave NCSS
|
14 |
AVNCSS |
Среднее число исходных конструкций в модуле |
|
|
Total V(G) |
15 |
TVG |
Общая цикломатическая сложность во всех модулях. V(G) вычисляется путем подсчета числа ключевых слов ветвления в каждом модуле |
|
|
Max V(G)
|
16 |
MVG |
Максимальная цикломатическая сложность в модуле |
|
|
Ave V(G) |
17 |
AVVG |
Средняя цикломатическая сложность модулей в компоненте |
|
|
Total Hal's V |
18 |
THV |
Общий объем по Хальстеду, вычисленный для модулей Volume = (общее число операторов + общее число операндов) / log2 (число уникальных операторов + число уникальных операндов) |
|
|
Max Hal's V |
19 |
MHV |
Максимальный объем V для модуля по Хальстеду |
|
|
Ave Hal's V |
20 |
AVHV |
Средний объем V модулей в компоненте системе по Хальстеду |
|
|
Total Hal's E |
21 |
THE |
Общие усилия по Хальстеду для компонента. Effort = объем / 2 \ число уникальных операндов / число уникальных операторов / общее число операндов |
|
|
Max Hal's E |
22 |
MHE |
Максимальное значение усилий по Хальстеду, вычисленное для модуля |
|
|
Ave Hal's E |
23 |
AVHE |
Среднее значение усилий по Хальстеду для модулей в компоненте |
|
|
Max Fan-out |
24 |
MFO |
Максимальное число вызовов других функций, вычисленное в модуле |
|
|
Max Fan-in
|
25 |
MFI |
Максимальное число вызовов данного модуля, вычисленное для компонента |
|
|
Ave Fan-in
|
26 |
AVFI |
Общее число вызовов других функций, деленное на число модулей в компоненте |
|
|
Max Nesting |
27 |
MN |
Наивысший уровень структурной вложенности, вычисленный в компоненте через подсчет ( ``{`` ) |
|
|
Ave Nesting
|
28 |
AVN |
Средний максимум структурной вложенности модулей в компоненте |
|
|
Max Recursive Calls |
29 |
MRC |
Максимальное число рекурсивных вызовов в модуле |
|
|
Number of Recursive Modules |
30 |
NRM |
Общее число модулей компонента, содержащих рекурсивные вызовы |
|
|
Метрики потока данных (Data Flow Metrics) |
Total Vars
|
32 |
TV |
Общее число переменных во всех модулях |
|
Total Local
|
33 |
TL |
Общее число локальных переменных во всех модулях |
|
|
Total Global
|
34 |
TG |
Общее число глобальных переменных. Данное число не включает препроцессорных директив, таких как #define MAX 10+} |
|
|
Total Unused
|
35 |
TU |
Общее число переменных, объявленных, но не использованных во всех модулях |
|
|
Ave. Number of Arguments |
36 |
AVNA |
Среднее число аргументов (или параметров), использованных во всех модулях |
|
|
Tot Init Vars |
37 |
TIV |
Общий процент всех переменных, инициализированных перед использованием |
|
|
Total Number of External Files |
38 |
TNEF |
Общее число файловых переменных в каждом модуле |
|
|
Ave. Number of I/O Calls per Module |
39 |
AVNIOC |
Среднее число вызовов ввода-вывода, использованных в каждом модуле |
|
|
Ave. Variable Span per Module |
40 |
AVVSM |
Среднее число строк между первым и последним использованием каждой переменной в модуле |
|
|
Max. Variable Span per Module |
41 |
MVSM |
Максимальное число строк между первым и последним использованием каждой переменной в модуле |
|
|
Total Percent Well-Declared Variables |
42 |
TPWDV |
Процент всех переменных в программе, объявленных непосредственно перед использованием. |
|
|
Number of Preprocessor Directives |
43 |
NPD |
Число препроцессорных директив, найденных в компоненте |
|
|
Типографические метрики (Typographic Metrics)
|
Modules with Headers
|
45 |
MH |
Процент модулей, имеющих комментированные заголовки (комментарии в начале модуля) |
|
Modules with Comments |
46 |
MC |
Процент модулей, имеющих комментарии между заголовком и концом |
|
|
Percent Modules with Horizontal Spacing |
47 |
PMHS |
Процент модулей, которые имеют встроенные горизонтальные отступы (два и более пробелов или табуляции). Отличается от абзацев |
|
|
Percent Modules with Vertical Spacing |
48 |
PMVS |
Процент модулей, имеющих вертикальные отступы (пустые строки) |
|
|
Percent Modules with Indentation |
49 |
PMI |
Процент модулей со структурированным расположением текста (ведущие пробелы на строке) |
|
|
Ave. Percent Uncrowded Statements within a Module |
50 |
AVPUS |
Сумма чисел неуплотненных конструкций (не более одной конструкции на строку) для каждого модуля, деленная на число модулей |
|
|
Ave. Percent Comments within a Module |
51 |
APCM |
Средний процент комментированных строк для всех модулей |
|
|
Ave. Percent Meaningful Vars within a Module |
52 |
APMV |
Средний процент переменных, имеющих осмысленное имя (имя длиной более 4 символов) |