软件复杂性分析

1,目的:更好地对软件开发过程进行控制;

               提高软件的可靠性和可维护性;

               降低由复杂性引发软件错误的可能性;

               确保软件产品的质量;

               减少由软件设计方法和技巧使用不当而带来的复杂性。

2,产生原因(共6条):需求复杂、应用要求高;开发环境复杂;软件应用框架、结构及模型复杂;软件开发过程复杂;涉及人的智力和管理复杂;项目设计与验证复杂

3,模块复杂性:模块复杂性度量主要用来对模块中的数据流和控制流结构(或模块信息流结构)和模块之间互连的复杂程度等进行度量和评价。

        模块内部结构复杂性:主要有以上两种方法,McCabe度量和Halstead度量。

        模块接口复杂性:常用模块的扇入/扇出数量或信息的扇入/扇出数量来度量。

4,复杂性控制:模块复杂性控制、模块结构复杂性控制和软件总体复杂性控制。

5,规模度量元:规模度量元Line Count复杂度;难度度量元Halstead复杂度;结构度量元McCabe复杂度

         Halstead复杂度基本思想:根据程序中可执行代码行的操作符和操作数的数量计算程序复杂性。

        McCabe复杂度基本思想:程序的复杂性很大程度上取决于程序控制流的复杂性,单一的程序顺序结构最简单,循环和选择所构成的环路越多,程序就越复杂。

        McCabe复杂度计算方法:V=E-N+2P(E表示控制流图中边的数量;N表示控制流图中节点数;P表示连接组件数目,P1)V=判定节点数+1V=区域数。

       McCabe圈复杂度的应用(3点):指出在实际测试中检测的最少基本路径的数目;McCabe圈复杂度反映模块复杂性、软件缺陷数和发现它们并改正它们所需的时间之间的关系;V(G)可用做最大模块复杂性的定量指标,大量研究表明,V(G)10是最大上限,超过这个值会使测试变得更复杂,软件错误率增加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值