函数度量 | ||
|
圈复杂度 |
判定的数量加1,阈值为10 |
goto语句数量 |
goto语句增加代码的复杂性 | |
可维护代码行数 |
函数内部的代码总行数,包括空行和注释行; | |
控制结构中的最大嵌套层次 |
代码中最大的控制嵌套数 | |
函数参数个数 |
函数声明的形参个数 | |
静态路径数统计 |
函数中非循环执行路径的数目 | |
函数调用数 |
函数调用其它函数的个数 | |
可执行行数 |
函数中代码行的统计,注释、花括号和声明标记都不作为代码标记 | |
文件度量 | ||
|
代码注释率 |
该度量定义为注释内的可见字符数被注释外的可见字符数除,忽略注释的定界符。字符 |
Halstead相异操作数个数 |
文件中使用的相异操作数的数量。相异操作数定义为唯一的标识符及其文字的每次出 | |
Halstead相异操作符个数 |
该度量覆盖了源代码中不是由用户给出的任意标记,如关键字、操作符、标点符号等。 | |
预处理代码总行数 |
该度量计算翻译单元在预处理之后的总行数。经过预处理的文件反应了头文件的预处 | |
记号出现总次数 |
该度量是源文件中非相异标记的标记总数。 | |
未预处理的源文件总行数 |
预处理之前的源文件总行数。 | |
标识符数量 |
相异标识符总数 | |
字符总数 |
该度量统计文件中的字符总数。这里只计算可见的字符,除了字符串或字符数组。因为 | |
代码字节总数 |
该度量统计文件中的代码字符总数。这里只计算可见的字符,除了字符串或字符数组。 | |
注释字符总数 |
该度量统计文件中可见的注释字符总数。注释的分隔符不计算在内。 | |
类度量 | ||
|
对象间的耦合 |
统计由一个类访问的其他类方法(成员函数)或对象的数量。这里只考虑那些不在继承 |
继承的最深层次 |
该度量代表着从最远的基类派生到本类的派生数量。数量大预示本类要依靠积累的功 | |
类方法的内部缺乏度 |
类中的方法要划分到不同的集合中,它们分别访问独立的成员对象。该度量就是这种集 | |
类中可得到的方法数 |
即在类中声明的方法数量。它不包含声明在基类中的方法。含有许多方法的类难以理解。 | |
直接子对象的数量 |
计算当本类作为直接基类时的子类的数量。该值越高,说明类的功能依赖越严重,以及 | |
直接父对象的数量 |
计算类继承的数量。对根类来说,其值为 0;对只有一层继承关系的派生类,其值为 1。 | |
类的响应 |
衡量类对函数的直接调用。STRFC 定义为类中不同方法的数目加上在这些方法的定义中调用到的其他函数的数目。这是 Chidamber & Kermerer 定义的度量之一。 | |
每类加权方法数 |
该度量是类中所有方法的圈复杂度的总和。圈复杂度衡量了每个函数的测试需求,与此 |