本文挡描述的是Logiscope——Audit中函数作用域常用度量元的具体含义。
对每个度量元的解释分为以下几部分:
首先是该度量元的原文名称,后面是该度量元的代号,跟在后面的是Audit质量模型为该度量元设的参考值(用中括号括起。当然,对于这个范围值,我们可以对它进行修改),再往下就是对该度量元含义的具体解释。
2函数度量元下面分别介绍函数作用域中各个度量元的具体含义。注意,下面讨论的所有问题都是站在一个函数的角度上的,这一点对于我们理解这些度量元很重要。
2.1 "Cyclomatic Number" : ct_vg [ 1 , 10 ]度量元名称:函数的圈复杂度。
解释说明:
函数圈复杂度的计算方法为:将函数流程图中各节点(开始和结束结点除外)的引出边的数量减去一后的值相加,最后再在这个和的基础上加一。可见,当一个函数中条件判断的地方越多时,它的ct_vg就会越大。
如果该值过大,会增大函数的复杂性,影响我们对函数的理解。
2.2 "Number of Branches" : ct_bran [ 0 , 0 ]度量元名称:函数中非结构化语句的数量。
解释说明:
非结构化语句包括:goto语句、在循环中使用的break、continue语句。
该度量元是为了使程序编写符合结构化的要求。
2.3 "Number of Declared Variables" : dc_lvars [ 0 , 5 ]度量元的名称:函数中定义的变量的数量。
解释说明:
在函数体内部定义的变量的数量。函数中局部变量定义的过多,会增大代码的复杂性,影响对函数的理解。
2.4 "Number of parameters" : ic_param [ 0 , 5 ]度量元的名称:函数参数的数量。
解释说明:
函数的参数过多,会使函数易于受外部(其他部分的代码)变化的影响,从而影响维护工作。
函数的参数过多也会增大测试的工作量。
2.5 "Number of Direct Calls" : dc_calls [ 0 , 5 ]度量元的名称:函数中调用其它函数的数量。
解释说明:
在函数体中调用其它函数的数量,对同一函数的多次调用计为一次。
该值过大,首先是会使函数易于受外部(其他部分的代码)变化的影响,从而增加维护工作的工作量。
其次,该值过大,也会增加阅读程序的人在理解程序上的困难。
2.6 "Number of Exits" : ct_exit [ 0 , 1]度量元的名称:函数出口的数量。
解释说明:
也就是函数体中退出点的数量。
在一个函数中存在一个以上的出口会增加函数出错的可能性,建议单出口。
2.7 "Number of Distinct Uses of External Attributes" : ic_varpe [ 0 , 2 ]度量元的名称:函数中使用其它类的数据成员的数量。
解释说明:
所谓函数中使用的其它类的数据成员的数量,也就是在函数体中对外部类(与该函数所属的类不是同一个类)的数据成员的使用数量,对同一数据成员的多次使用计为一次。
这个度量元的用意也很好理解,就是为了尽量减少函数与其它类的耦合关系。
2.8 "Number of paths" : ct_path [ 1 , 60 ]度量元的名称:函数中执行路径的数量。
解释说明:
函数中执行路径过多,会极大的增大测试的工作量。