欢迎来到天天文库
浏览记录
ID:50348616
大小:803.50 KB
页数:101页
时间:2020-03-08
《软件工程 教学课件 作者 张海藩 第五章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第5章结构化实现通常把编码和测试统称为实现。所谓编码就是把软件设计翻译成计算机可以理解的形式——用某种程序设计语言书写的程序。作为软件工程过程的一个阶段,编码是设计的自然结果,因此,程序的质量主要取决于软件设计的质量。但是,所选用的程序设计语言的特点和编码风格也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。退出无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。在开发大型软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺
2、,因此,在软件生命周期的每个阶段都不可避免地会产生差错。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正差错;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。软件测试在软
3、件生命周期中横跨两个阶段。通常在编写出每个模块之后就对它做必要的测试(称为单元测试),模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一个阶段。在这个阶段结束之后,对软件系统还应该进行各种综合测试,这是软件生命周期中的另一个独立的阶段,通常由专门的测试人员承担这项工作。大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以上,在极端情况,测试那种关系人的生命安全的软件所花费的成本,可能相当于软件工程其他步骤总成本的3~5倍。因此,必须高度重视软件测试工作,绝不要以为写出程序之后软件开发工作就接近完成了
4、,实际上,大约还有同样多的开发工作量需要完成。仅就测试而言,它的目标是发现软件中的错误,但是,发现错误并不是我们的最终目的。软件工程的根本目标是开发出高质量的完全符合用户需要的软件,因此,通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。调试是测试阶段最困难的工作。在对测试结果进行收集和评价的时候,软件所达到的可靠性也开始明朗了。软件可靠性模型使用故障率数据,估计软件将来出现故障的情况并预测软件的可靠性。5.1编码5.2软件测试基础5.3逻辑覆盖5.4控制结构测试5.5黑盒测试技术5.6测试策略5.7调试5.8软件可
5、靠性5.9小结5.1编码5.1.1选择程序设计语言总的说来。高级语言明显优于汇编语言,因此,除了在很特殊的应用领域(例如,对程度执行时间和使用的空间都有很严格限制的情况;需要产生任意的甚至非法的指令序列;体系结构特殊的微处理机,以致在这类机器上通常不能实现高级语言编译程序),或者大型系统中执行时间非常关键的(或直接依赖于硬件的)一小部分代码需要用汇编语言书写之外,其他程序应该一律用高级语言书写。为了使程序容易测试和维护以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提
6、高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。上述这些要求是选择语言的理想标准,但是在实际选用语言时不能仅仅考虑理论上的标准,还必须同时考虑实用方面的各种限制。5.1.2编码风格源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,应该遵循下述规则。1.程序内部的文档所谓程序内部的文档包括恰当的标识符、适当的注解和程序的视觉组织等等。2.数据说明虽然在设计期间已经确定了数据结构的组织和复杂程度,然而数据说明的风格却是
7、在写程序时确定的。为了使数据更容易理解和维护,有一些比较简单的原则应该遵循。3.语句构造构造语句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂。4输入/输出在设计和编写程序时应该考虑下述有关输入/输出风格的规则:·对所有输入数据都进行检验;·检查输入项重要组合的合法性;·保持输入格式简单;·使用数据结束标记,不要要求用户指定数据的数目;·明确提示交互式输入的请求,详细说明可用的选择或边界数值;·当程序设计语言对格式有严格要求时,应保持输入格式一致;·设计良好的输出报表;·给所
8、有输出数据加标志。5.效率效率主要指处理机时间和存储器容量两个方面。虽然值得提出提高效率的要求,但是在进一步讨论这个问题之前应该记住三条原则:首先,效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。软件应该像对它要求的那样
此文档下载收益归作者所有