前面我们给出了Coverity和QAC两款工具给出的静态属性度量指标列表,今天我们看看国产工具能够给出度量指标的工具,这就是北大库博,他们支持超过30种度量指标。也是包括了函数、类、文件三个维度的度量。针对C、C++、Java语言检测时,会让用户选择是否进行度量指标检测。
大家看看这些指标,有些是不是很熟悉,有些可能还不太熟悉,没有关系,如果你需要这么一款工具,可以联系我。
指标名称 | 解释 |
goto语句数目-文件 | goto语句数目-文件(该文件中使用的goto数目总和。 |
代码总行数 | 代码总行数(代码行数 |
函数扇入 | 函数扇入(调用该函数的函数个数总和 |
函数扇出 | 函数扇出(该函数调用的函数个数总和) |
函数行数 | 函数行数(函数行数),一般不超过200行(Coverity); |
可执行代码注释率 | 可执行代码注释率(可执行代码注释率 |
可执行代码行数 | 可执行代码行数(可执行代码行数 |
圈复杂度-函数 | 圈复杂度-函数(函数内分支节点数目+1;一般不超过15(Coverity); |
圈复杂度-模块 | 复杂度-模块(该文件中所有函数的圈复杂度总和) |
基本圈复杂度-函数 | 基本圈复杂度-函数(圈复杂度图中的非结构化部分简化成点的和+1) |
基本圈复杂度-模块 | 基本圈复杂度-模块(圈复杂度图中的非结构化部分简化成点的和+1) |
头部注释行数 | 头部注释行数(头部注释数量) |
循环嵌套深度-函数 | 循环嵌套深度-函数(函数内使用的最大循环嵌套深度),一般不超过7层(Cobot); |
循环数目-函数 | 循环数目-函数(该函数内使用的循环for、while、do while数目总和) |
注释率-函数 | 注释率-函数(函数注释率,函数注释行数/函数代码行数(包括函数对应的声明注释)) |
注释率-文件 | 注释率-文件(代码注释率,文件注释行数/文件代码行数) |
注释行数 | 注释行数(注释行数) |
相异操作数总数 | 相异操作数总数(相异操作数数目) |
空注释行数 | 空注释行数(空注释行数) |
空行数 | 空行数(空行数) |
数据变量度量集,数据变量-文件 |
|
数据变量度量集,数据变量-函数 |
|
类的属性隐藏因子 |
|
类的覆盖度 |
|
类加权方法-类 |
|
类的凝聚度 |
|
继承树深度 | 从节点到树根的最大长度(DIT),一般阈值5或6 |
平均类方法数-文件 |
|
类的方法隐藏因子 |
|
累的方法继承因子 |
|
平均方法复杂度 |
|
实际使用方法与可能使用方法比 |
|
类耦合度/对象间耦合(CBO) | 计算类型或方法包含的唯一类型引用的个数来衡量类耦合。一般阈值9 |