文章目录
Halstead复杂度
Halstead复杂度度量是软件复杂性的难度度量元,用于在程序产生或设计完成之后估算软件的复杂性。Halstead复杂度度量基于程序中的操作符和操作数的数量,对操作符和操作数的不同选取将得到不同的结果。常见的操作符和操作数如下
- 操作符:保留字、函数调用、运算符
- 操作数:常数、常量、变量
需要注意的是,声明变量的数据类型保留字可以不计入操作符数量。根据编程规范的不同,在一条声明语句中既可以只声明一个变量,也可以声明多个变量,因此如果计入操作符数量,不同的编程规范可能导致差别较大的结果。
Halstead复杂度有11个常用的度量指标。设 n 1 n_1 n1表示程序中不同的操作符个数, N 1 N_1 N1表示程序中出现的操作符总数, n 2 n_2 n2表示程序中不同的操作数个数, N 2 N_2 N2表示程序中出现的操作数总数, S S S表示程序中的语句数,Halstead复杂度的所有指标都可以用 n 1 , N 1 , n 2 , N 2 , S n_1, N_1, n_2, N_2, S n1,N1,n2,N2,S来计算。Halstead度量指标如下
- 程序词汇表长度 Program Vocabulary: n = n 1 + n 2 n = n_1 + n_2 n=n1