0
软件复杂性
软件度量的一个重要分支就是软件复杂性。软件复杂性从某些方面反映了软件的可维护性、可靠性等质量要素。软件复杂性度量的要素很多,主要有以下几种:
- 规模:即总共的指令数,或者源程序数目
- 难度:通常由程序中出现的操作数的数目所决定的量来表示
- 结构:通常用与程序结构相关的度量来表示
- 智能度:即算法的难易程度
度量方法
代码行度量方法
度量程序的复杂性,最简单的方法就是统计程序的源代码行数,并以源代码行数作为程序复杂性的度量。例如,每行代码的出错率为1%,则是指每100行源程序中可能有一个错误。但是这只是考虑了程序的可执行部分,没有包括承租中的说明部分。 Lipow和其他研究者得出一个结论:对于少于100个语句的小程序,源代码行数与出错率是线性相关的;随着程序的增大,出错率以非线性的方式增长。因此,代码行度量法只是一个简单的、较为粗糙的方法。
McCade度量法
McCade度量法是一种举出程序控制流的复杂度度量方法。McCade复杂性度量又称环路度量,它认为程序的复杂性很大程度上取决于控制的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。这种方法以图论作为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。 程序图是退化的程序流程图,把程序流程图中每个处理符号都退化成一个节点,原来连接不同处理符号的流线变成连接不同节点的有向弧,得到的有向图就叫做程序图。
收藏