欢迎来到天天文库
浏览记录
ID:40100397
大小:276.00 KB
页数:115页
时间:2019-07-21
《【实用软件工程】结构化实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章结构化实现编码软件测试基础白盒测试技术黑盒测试技术测试策略调试通常把编码和测试统称为实现。所谓编码就是选择一种语言把软件设计阶段的结果翻译成计算机可以理解的源程序。作为软件工程过程的一个阶段,编码是设计的自然结果。因此,程序的质量主要取决于软件设计的质量。但是,所选用的程序设计语言的特点和编码风格也会对程序的可靠性、可读性、可测试性和可维护性产生深远影响。第一节编码一、编码阶段的任务主要任务:为每个模块编写程序,将详细设计的结果转换成用某种程序语言表示的计算机能理解的源程序形式。在编程过程中,要把软件详细设计的表达翻译成编程语言的构造。二、程序
2、设计语言的选择1、程序设计特性:心理特性编程语言是人---机通信的工具,编码过程是一种人的活动。因此,语言的心理特征对通信的质量有重要的影响。美国关于软件的心理学家指出:软件心理学家的作用是在关注机器效率、软件能力和硬件限制的同时,应把注意力集中在诸如使用容易、学习简便、提高可靠性、减少出错率及让用户满意方面。虽然,有很多编程的自动化辅助工具,然而软件工程仍然是高度的人工活动过程。因此,有许多关于人的问题需要研究。特别是语言的心理学特性对代码的翻译和实现的设计有相当重要的影响。一般考虑如下几个心理特性:1)一致性一致性是一个心理学而不是数学原则。即是
3、“一件事情应该以同一种方式完成。”一种语言的限制越多,你就会越担心其他限制,从而缩手缩脚。即使出现在语言的其它部分,他们也会影响对当前无限制部分的使用。一致性的另一个重要方面是,同一个语法结构在不同的上下文不应该有不同的意思。如括号的匹配使用。2)多义性:是指程序员的多种理解的错误。如,X=sinxlog(x+1),可理解为:X=(sinx)(log(x+1))也可理解为X=sin(xlog(x+1))另一种引起多义性的原因是:允许不规范的使用有缺省值的数据类型的标识符。如FORTRAN中标识符KDELTA按缺省应认为有整数特征,然后,REALKDE
4、LTA一个显式说明,就赋于KDELTA以浮点特征。此处,由于心理上的多义性就可能产生混惑。3)紧凑性:一种面向代码信息量的表示,这个信息量必须由人来记忆。APL语言是一种非常紧凑的编程语言,但很难读懂。逻辑语言也一种非常紧凑的语言。度量紧凑性的语言属性有:4)局部性:人的记忆有“联觉”和“顺序”两种。我们是凭借联觉记忆去识别人脸、邻居或是书中某一页的版面布局,而不去追究其细节。所谓的联觉记忆能力,是我们记忆力中的一部分,它可以使我们在一瞬间,把事物作为一个整体来记忆。所谓顺序记忆能力则更多地与听觉有关,听过9个音符后,就可以把第10个哼唱出来,但要求
5、直接唱出某个音符,就难多了。顺序记忆类似于议程不定的链条。局部性是编程语言的综合特性。当语句可以组合为程序块、结构化构造可直接实现、设计代码和合成代码具有高的模块性的聚合时,局域性就高。如语言特性支持或鼓励异常处理时,局域性就低。5)线性:是一种心理特征它与保持功能域的概念紧密联系。当遇到一个逻辑运算线性序列时,人就容易理解。外延分支和外延大的循环都违反了处理的线性。结构化构造的直接实现有助于编程语言的线性。工程特性易转换性编译效率可移植性是否有开发工具源程序的可维护性2、语言的分类基本语言(Fortran、Basic、Algol、Cobol)结构化
6、程序语言(Pascal、C)专用语言传统分法的可分为:按“代”来分,可分为:第一代语言:主要特征,面向机器,代表语言是机器语言(使用的是绝对地址码、绝对操作码和存储空间分配)、汇编语言。第二代语言:50年代---60年代初,主要特征,脱离机器面向算法过程的高级语言。有变量、赋值、子程序、函数调用概念,有少量的基本数据类型,有限的循环套和一般的递归调用等。代表语言:FORTRAN,ALGOL,COBOL,BASIC(第三代语言的基础)第三代语言:也称结构化编程语言,60年代—70年代,特点是:具有很强的过程和数据结构化的能力。可分为三类,通用高级语言(
7、C、Pascal、Ada美国的三军通用语言)、面向对象高级语言(C++,Objective-C,Smalltalk,Eiffel)、专用语言(LISP、PROLOG、APL和FORTH)第四代语言:70年代后,主要特征是用户极端友好、声明式、交互式和非过程式的编程语言、高效的程序代码、智能缺省假设、完备的数据库、应用程序生成器。代表语言:FOXPRO、VFP、VC、VB等等。4GL溶入了许多新发展的技术,如,事件驱动、分布式数据共享、多媒体技术,4GL是一个交互式的程序设计环境。3、程序设计语言的选择一般来说来,高级语言明显优于汇编语言,因此,除了在
8、很特殊的应用领域(例如,对程序执行时间和使用的空间都有很严格限制的情况;体系结构特殊的微处理机,以致在这类机
此文档下载收益归作者所有