环数是什么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 17:44:13
环数是什么?

环数是什么?
环数是什么?

环数是什么?
目前已提出的各种复杂性度量算法中,在软件工程界运用得比较多的是McCabe的环计数和Halstead的软件科学度量法,我们称其为McCabe度量法和Halstead度量法.下面我们将连同最古老的代码行数度量法一起分别对它们进行简单介绍.
代码行数度量法 代码行数度量法以程序的总代码行数作为程序复杂性的度量值.这种度量方法有一个重要的隐含假定是:书写错误和语法错误在全部错误中占主导地位.然而,由于这类错误严格来讲是私有的,不应把它们计入错误总数之中,在这种情况下,这种度量方法的前提就不存在.因而,代码行数度量法是一种很粗糙的方法,在实际应用中很少使用.
McCabe度量法 McCabe度量法以程序流程图的分析为基础,通过计算强连通的程序图中线性无关有向环的个数,建立复杂性的度量.其计算公式为:V(G)=m-n+p,其中V(G)是强连通有向图G中的环数;m是G中的弧数;n是G中的节点数;p是G中分离部分的数目.
对于一个正常的程序来说,程序图总是连通的,即p=1.为了使之强连通,我们可以从出口点到入口点画一条虚弧.实际上,我们常常采用另一种计算方法来获得McCabe度量值,即对于单入口单出口模块(通常都属这种情况),我们只需计算程序中判断语句个数加1即可得V(G)值.McCabe度量法实质上是对程序控制流复杂性的度量,它并不考虑数据流,因而其科学性和严密性具有一定的局限性.