工作笔记 代码指标

2019-01-21  本文已影响0人  昭阳的母上大人

软件的显著的特征是无形、很难测量。软件行业逐渐总结出好的软件的一些原则(如:简单/封装,高内聚,底耦合等),基于这些原则,业内制定了一些软件代码指标

在汽车行业,HIS制定的HIS Source Code Metrix在汽车ECU软件中应用的比较广泛,本文对其进行介绍:

注:HIS (“Herstellerinitiative Software“) 是由德国OEM代表(Audi, BMW, Daimler, Porsche and Volkswagen)组成,用于定义在汽车行业的软件相关的标准,该组织在2016年解散

1. Comment Density “COMF“:  > 0.2

代码中的注释密度,注释密度可以提高代码的可读性

2. Number of paths “PATH“: 1 ~ 80

是指函数内的路径(PATH)的总和

如下代码的路径总和为8

if ()

    {  }    // block 1, paths = 1

else

    {  }    // block 2  paths = 1

// block 3 paths = block 1 + block 2 = 2

switch

{  case 1: break;

    case 2: break;

    case 3: break;

    default: break;

}           

// block 4 paths = 4

// paths = block 3 * block 4 = 2 * 4 = 8

3. Number of Go to Statements “GOTO“: 0

是指函数内的goto语句的个数

4. Cyclomatic Complexity“v(G)“ : 1 ~ 10

函数的圈复杂度

5. Number of Calling Functions “CALLING“: 0 ~ 5

有多少个函数调用本函数?

6. Number of called Functions “CALLS“: 0 ~ 7

函数调用了多少其它函数?

7. Number of Function Parameters „PARAM“: 0 ~ 5

函数的参数个数

8. Number of Instructions per function „STMT“: 1 ~ 50

函数内包含的源代码行数

9. Number of call Levels „LEVEL“ : 0 ~ 4

函数内的嵌套层次

如下的嵌套层次为2

    if ()

    {

        if ()

            { }

        else

            {}

    } else

    { }

10. Number of return points „RETURN“: 0 ~ 1

函数只能有一个出口(return)

11. Number of recursions „ap_cg_cycle“ : 0

不允许有递归

如上的指标要求是比较严格的,很多企业都是基于该指标制定了企业标准,企业标准中的指标要求一般都会比如上的指标要求要略宽松些,例如某国际知名的Tier1的要求如下:

工作笔记 代码指标
上一篇下一篇

猜你喜欢

热点阅读