程序复杂性度量技术分析
2011-06-14孔庆玲胡志军
无线电工程 2011年2期
孔庆玲,胡志军,刘 英,冯 阳
(中国电子科技集团公司第五十四研究所,河北石家庄050081)
0 引言
软件越复杂,一方面在开发和维护过程中所消耗的资源也越多,所以软件的复杂性可以作为软件所需资源投入量的一个间接度量;另一方面在设计中引入错误的可能性也越大,这是一种合乎逻辑的推理,也是一个为实验验证的事实。尽管软件复杂性与软件中的错误数未必呈现出简单的正比关系,但是存在这种正相趋势是肯定无疑的。软件不可靠的根本原因是软件中存在错误,所以软件复杂性可以作为软件可靠性的一种间接度量。复杂性度量是软件开发过程中有应用前景的一个度量。借助这个度量,设计人员在接受设计任务之初,可以从已有的性质相似的程序中获得经验数据,对现在所面临问题的复杂程度做出判断,借助于复杂性度量还可以对若干设计方案的困难程度加以比较。
1 技术分析
目前比较流行的有3种程序复杂性度量方法:Halstead、McCabe和 Thayer。Halstead使用统计的方法研究程序的复杂性,按照程序中的运算符和操作数的总数对程序的复杂性加以度量。McCabe以程序逻辑流程图的分析为基础,建立复杂性的度量。Thayer按程序的逻辑关系、接口、运算特征和输入/输出的特点来度量程序的复杂性。下面就这3种复杂性度量技术分别进行分析。
1.1 Halstead复杂性度量技术
Halstead认为程序的复杂性可以用程序的运算符总数与操作数总数之和来反映,这个总数和称为Halstead程序长度。……
登录APP查看全文
