2013-6软件工程(3h).ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、结构化程序设计SP SP的思想最早是由著名计算机科学家E.W.Dijkstra提出的。 1966年Bohm和Jacopin证明了只用三种基本结构就能实现任何一个入口,一个出口的程序; 1977年IBM公司的Mills又进一步提出:“程序应该只有一个入口和一个出口。 在长期程序设计的实践中,SP方法不断得以完善,使之成为开发传统应用领域应用系统的主要方法之一。 6.2.2.模块独立性评价 系统设计的质量主要反映在模块的独立性上。 评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。 要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。 耦合和内聚是一个问题的两个方面,耦合程度弱的模块,其内聚程度一定高。 一、耦合 模块之间的耦合反映了模块的独立性,为使系统简单而易理解,应减少模块之间的耦合程度。 影响模块之间耦合的主要因素有两个:一是模块之间的连接形式,二是模块接口的复杂性。 模块耦合的程度 按照耦合程度从弱到强,可以将模块的耦合分为以下五级。参考 P344 ①数据耦合(用参数耦合) ②同构耦合(用相同数据结构) ③控制耦合(一个模块控制另一个模块) ④公用耦合 (多模块涉及相同数据区) ⑤内容耦合 (涉及另一个模块内部情况) 二、内聚 内聚是对一个模块内部元素之间功能上相互联系强度的测量。 一个模块的内聚度越高,与其他模块之间的耦合程度也就越弱。 内聚度分类 内聚度从高到低可分为以下7类。参考P344 ①功能内聚 ②序列内聚 ③通信内聚 ④过程内聚 ⑤时间内聚 ⑥逻辑内聚 ⑦偶然内聚 6.3软件测试概述 6.3.1 测试 测试的重要性 软件测试的重要性及其与可靠性的密切联系怎样强调也不过分。这是一个典型事例:在美国的一次飞往火星的火箭发射中,因控制程序中的一个循环语句“DO 5 I=1,3”被误认为是赋值语句“DO 5 I=1.3”,一点之差,使火箭发生爆炸,损失一千万美元。 目的 发现软件中隐藏的各种差错。要纠正一种错误的看法:认为“测试是为了说明程序没有问题”。恰恰相反,没有找出错误的测试被认为是失败的测试;而”成功的测试是能够发现隐藏的差错的测试“。 如果为了证实程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案; 如果为了发现程序中的错误而进行测试,就会力求设计最能暴露错误的测试方案。 结论: 因此,由程序设计者本人进行测试是不明智的。 通常,测试分两个阶段;程序模块编好后,程序员本人对该程序进行必要的测试,称为“单元测试”,在整个系统都完成后,由专职测试人员对整个系统进行的测试称为“系统综合测试”。 一、测试心理学分析 二、测试用例 测试用的数据就是测试用例。 测试的关键问题是如何设计测试用例; 测试的基本原则: 1)在执行程序前应该对期望的结果有明确的描述,测试后应对输出进行仔细的检查。 2)不仅要选择合理的输入数据作为测试用例,还应选用不合理的输入数据作为测试用例。 3)除了检查程序是否做了应做的工作之外,还应检查程序是否做了不应做的事。 4)应该长期保留所有的测试用例,直到该系统被废弃不用为止。 白箱法 黑箱法 三、测试的方法 白箱法 按程序的内部逻辑结构进行测试,为了衡量测试的覆盖程度,建立下列标准(从低到高): 语句覆盖:每个语句都至少执行一次 分支覆盖:对判别语句的每个分支至少要经过一次 条件覆盖:每个条件可能的值至少出现一次,及条件表达式中各个条件取两个不同的值 组合条件覆盖:使每个判定中的条件的各种组合都出现一次 举例 有一要测试的程序如下:     sub (a ,b,x) float a,b,x; { float y; if(a1 b=0) y=x/a; if(a=2||x>1)    x=x+1;  } 结束 程序逻辑结构图 开始 a1b=0? a=2||x1? y=x/a x=x+1 A B C D E 1.语句覆盖 执行程序中的每个语句。为使程序中的每个语句都至少执行一次,只需设计一个通过路径ACE的输入数据即可。选择输入数据为:    a=2,b=0,x=3  就可达到“语句覆盖”的标准。 2.分支覆盖 对判别语句的每个分支至少要经过一次,为达到”分支覆盖“的标准,则要经过路径:ACD和ABE,为此,选用输入数据为:   a=3,b=0,x=0,走ACD路径   a=2,b=1,x=3,走ABE路径 分支覆盖比语句覆盖严格。但还比较弱,例如,ABD路径就没走到。若把“X1”错写成“X1”,还是检查不

文档评论(0)

cai + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档