您当前的位置: 首页 > 

哆啦A梦_i

暂无认证

  • 3浏览

    0关注

    629博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

P12- 软件复杂性 之度量、程序图、强连通图、McCabe度量法

哆啦A梦_i 发布时间:2022-05-15 02:19:33 ,浏览量:3

【软考-软件设计师-历年真题-2013年上半年上午基础知识】

软件的复杂性主要体现在程序的复杂性。(30)是度量软件复杂性的一个主要参数。若采用McCabe度量法计算环路复杂性,则对于下图所示的程序图,其环路复杂度为(31)。

 (30)A.代码行数 B.常量的数量 C.变量的数量    D.调用的库函数的数量

(31)A.2         B.3         C.4            D.5

【答案】A  C

【解析】本题考查软件复杂性方面的基础知识。

软件复杂性度量是软件度量的一个重要分支。对于软件复杂性度量的主要参数有:

•规模,即总共的指令数,或源程序行数。

•难度,通常由程序中出现的操作数的数目所决定的量来表示。

•结构,通常用与程序结构有关的度量来表示。

•智能度,即算法的难易程度。

软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。

McCabe度量法是一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称为环路度量,它认为程序的复杂性很大程度上取决于控制的复杂性。

单一的顺序程序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。

这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。

程序图是退化的程序流程图,也就是说,把程序流程图中每个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同点的有向弧,这样得到的有向图就叫做程序图。

程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作以及分支和循环的具体条件。

根据图论,在一个强连通的有向图G中,环的个数V(G)由以下公式给出:

V(G) = m - n + 2p

其中,V(G)是有向图G中的环路数,m是图G中弧的个数,n是图G中的结点数, P是G中的强连通分量个数。

在一个程序中,从程序图的入口点总能到达图中的任何一个结点,因此,程序总是连通的,但不是强连通的。为了使程序图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图,这样就可以使用上式计算环路复杂性了。

对于题目中的程序图,其中结点数n = 9,弧数m=ll, p=l,则有:

V(G) = m-n+2p =11-9+2 = 4

即McCabe环路复杂的度量值为4。

关注
打赏
1556978864
查看更多评论
立即登录/注册

微信扫码登录

0.0519s