第6节软件工程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 湖南科技大学 计算机学院 戴祖雄 * (11)totalsum:=0 (12)pointer:=1 (13)pointer:=pointer+ 1 I(1)文件结束 I(2)字符串结束 S(3)字符是空格 sum是保存空格个数的变量,totalsum是保存空格总数的变量,而pointer是用来指示当前分析的字符在字符串中的位置的变量。 * 湖南科技大学 计算机学院 戴祖雄 * 图6.14 把操作和条件分配到程序结构图的适当位置 * 湖南科技大学 计算机学院 戴祖雄 * 最后一步是用伪码表示程序处理过程。Jackson使用的伪码和Jackson图之间存在简单的对应关系,从图6.14很容易得出下面的伪码: 统计空格seq 打开文件 读入字符串 totalsum :=0 程序体iter until文件结束 处理字符串seq … * 湖南科技大学 计算机学院 戴祖雄 * 6.5 程序复杂程度的定量度量 定量度量程序复杂程度的方法的价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量,定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。 使用得比较广泛的有McCabe方法和Halstead方法。 * 湖南科技大学 计算机学院 戴祖雄 * 6.5.1 McCabe方法 1.流图 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。 * 湖南科技大学 计算机学院 戴祖雄 * 圆表示结点,一个圆代表一条或多条语句 程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成流图中的一个结点。 箭头线表示控制流, 称为边 它和程序流程图中的箭头线类似。在流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句)。 区域--由边和结点围成的面积,当计算区域数时应该包括图外部未被围起来的那个区域。 * 湖南科技大学 计算机学院 戴祖雄 * * 湖南科技大学 计算机学院 戴祖雄 * 图6.16 由PDL翻译成的流图 * 湖南科技大学 计算机学院 戴祖雄 * * 湖南科技大学 计算机学院 戴祖雄 * 2.计算环形复杂度的方法 环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。 (1)流图中的区域数等于环形复杂度。 (2)流图G的环形复杂度V(G) =E-N+2,其中,E是流图中边的条数,N是结点数。 (3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。 * 湖南科技大学 计算机学院 戴祖雄 * 3.环形复杂度的用途 程序的环形复杂度取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。当程序内分支数或循环个数增加时,环形复杂度也随之增加。 McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。 模块规模以V(G)≤10为宜。 * 湖南科技大学 计算机学院 戴祖雄 * 6.5.2 Halstead方法 Halstead方法是根据程序中运算符和操作数的总数来度量程序的复杂程度。 令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为: N = N1+N2 详细设计完成之后,可以知道程序中使用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2。Halstead给出预测程序长度的公式如下: H=n1log2n1+n2log2n2 * 湖南科技大学 计算机学院 戴祖雄 * 多次验证都表明,预测的长度H与实际长度N非常接近。 Halstead还给出了预测程序中包含错误的个数的公式如下: E=N log2(n1+n2)/3000 有人曾对从300条到12000条语句范围内的程序核实了上述公式,发现预测的错误数与实际错误数相比误差在8%之内。 * 湖南科技大学 计算机学院 戴祖雄 * 6.6 小结 详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的“蓝图”。

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档