- 1、本文档共77页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第七章:实现
通常把编码和测试统称为实现。 所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。虽然,程序的质量主要取决于软件设计的质量,但是,所选用的程序设计语言的特点及编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。 软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审。 无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。经验表明在软件生命周期的每个阶段的审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。 测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。 软件测试在软件生命周期中横跨两个阶段:编码阶段(单元测试)和测试阶段(综合测试)。 软件测试工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的3 — 5倍)。 通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。 在对测试结果进行收集和评价的时候,软件所达到的可靠性也开始明朗了。 防不胜防的软件错误 —— 例1:1963年, 美国, 飞往火星的火箭爆炸, 损失$ 10 million. 原因: FORTRAN循环 DO 5 I = 1, 3 误写为 DO 5 I = 1.3 7.1 编码 编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。 1、选择程序设计语言 总的说来,高级语言明显优于汇编语言,因此,除了在很特殊的应用领域(例如,对程序执行时间和使用的空间都有很严格限制的情况;需要产生任意的甚至非法的指令序列;体系结构特殊的微处理机,以致在这类机器上通常不能实现高级语言编译程序),或者大型系统中执行时间非常关键的(或直接依赖于硬件的)一小部分代码需要用汇编语言书写之外,其他程序应该一律用高级语言书写。 7.1 编码 1、选择程序设计语言 理论标准: 为了使程序容易测试和维护以减少软件的总成本,所选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的高级语言应该有良好的独立编译机制。 实用标准: (1)系统用户的要求。 (2)可以使用的编译程序。 (3)可以得到的软件工具。 (4)工程规模。 (5)程序员的知识。 (6)软件可移植性要求。 (7)软件的应用领域。 7.1 编码 2、编码风格 (1)程序内部的文档 所谓程序内部的文档包括恰当的标识符、适当的注解和程序的视觉组织等等。 (2)数据说明 数据说明的次序应该标准化。如当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。 (3)语句构造:每个语句都应该简单而直接。 不要为了节省空间而把多个语句写在同一行; 尽量避免复杂的条件测试; 尽量减少对“非”条件的测试; 避免大量使用循环嵌套和条件嵌套; 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。 7.1 编码 2、编码风格 (4)输入输出 对所有输入数据都进行检验; 检查输入项重要组合的合法性; 保持输入格式简单; 使用数据结束标记,不要要求用户指定数据的数目; 明确提示交互式输入的请求,详细说明可用的选择或边界数值; 当程序设计语言对格式有严格要求时,应保持输入格式一致; 设计良好的输出报表; 给所有输出数据加标志。 7.1 编码 2、编码风格 (5)效率 效率主要指处理机时间和存储器容量两个方面。首先,效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。其次,效率是靠好设计来提高的。第三,程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率。 程序运行时间: 写程序之前先简化算术的和逻辑的表达式; 仔细研究嵌套的循环,以确定是否有语句可以从内层往外移; 尽量避免使用多维数组; 尽量避免使用指针和复杂的表; 使用执行时间短的算术运算; 不要混合使用不同的数据类型; 尽量使用整数运算和布尔表达式。 在效率是决定性因素的应用领域,尽量使用有良好优化特性的编译程序,以自动生成高效目标代码。 7.1 编码 2、编码风格 (5)效率 存储器效率: 输入输出的效率: 所有输入输出都应该有缓冲,以减少用于通信的额外开销; 对二级存储器(如磁盘)应选用最简单的访问方法; 二
文档评论(0)