资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,第六章 软件的编码,本章要点,结构程序设计产生的原因及作用,程序设计中应采用的风格,对几代的程序设计语言进行比较,并指导如何选择合适的语言进行编程,编程的标准以及在标准规定下编程的过程,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,6.1 结构化程序设计 6.1.1 结构化程序设计的原则,结构化程序设计的主要原则如下: 1)使用语言有限的基本控制表示逻辑 2)选用的控制结构只准许有一个入口和一个 3)程序语句组成容易识别的块,每块只有一个入口和一个出口 4)复杂结构应该用基本控制结构进行组合嵌套来实现 5)语言中没有的控制结构,可用一段等价的程序段来模拟,但 要求该程序在整个系统中应前后一致 6)严格控制GOTO语句,仅在下列情形下才可使用: 用一个非结构化的程序设计语言去实现一个结构化的构造 某种可以改善而不是损害程序可读性的情况下,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,把一个模块的功能逐步分解,细化为一系列具体步骤,进而翻译成一系 列用某种程序设计语言写成的程序。,6.1.2 程序设计自顶向下、逐步求精,6.1.3 数据结构的合理化,数据结构中常使用数组、指针等数据类型,访问上混乱 采用栈和队列去代替数组和指针: 栈与队列分别是按后进先出(LIFO)和先进先出(FIFO)的原则进行存取的。 使用数组和指针的程序,都可以使用栈和队列的程序等价替换。,6.1 结构化程序设计,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,利用面向对象语言实现设计结果时,应考虑以下问题:,6.2 面向对象编程,(1)实现类与对象概念 (2)体现整体-部分结构 (3)实现一般-特殊结构 (4)实现属性与服务的机制 (5)满足编译系统的类型检查 (6)充分利用已有类库 (7)保证程序的效率 (8)能够持久保存对象 (9)实现参数化类 (10)使用好的开发环境,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,1. 符号名(标识符)的命名,6.3.1 源程序文档化,(1) 名字应能反映代表实际东西,有实际意义,(2) 选择精炼、意义明确的名字,6.3 程序设计的风格,(3) 必要时使用缩写名字,(4) 一个程序中,一个变量只应用于一种用途,2. 程序的注释,(1) 序言性注释 (2) 功能性注释,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,利用空格、空行、移行,提高程序可视化程度。 包括以下内容: l 恰当地利用空格,突出运算优先性,避免运算错误 l 自然程序段间可用空行隔开 l 对于选择语句和循环语句,程序段语句向右做阶梯式移 行。可使程序逻辑结构清晰,层次分明。,3. 视觉组织,6.3 程序设计的风格,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,在编写程序时,为使数据说明易于理解和维护,须注意: (1)数据说明的次序应当规范化 (2)当多个变量名用一个语句说明时, 应对这些变量按字母的顺序排列 (3)如设计了一个复杂的数据结构, 应用注释说明数据结构的固有特点,6.3.2 数据说明,6.3 程序设计的风格,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,(1)一行内只写一条语句,并采取适当的移行格式 (2)程序编写首先应当考虑清晰性 (3)程序编写得要简单,清楚 (4)除非特殊要求,程序编写要做到清晰第一,效率第二 (5)首先要保证程序正确,然后要求高速运行 (6)编译程序做简单的优化 (7)尽可能使用库函数 (8)避免使用临时变量而使可读性下降 (9)尽量用公共过程或子程序去代替重复的功能代码段,6.3 程序设计的风格,6.3.3 语句结构,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,(10)用调用公共函数去代替重复使用的表达式 (11)使用括号来清晰地表达算术表达式和逻辑表达式的运算顺序 (12)避免不必要的转移 (13)尽量只采用三种基本的控制结构来编写程序。 (14)用逻辑表达式代替分支嵌套。 (15)避免使用空的ELSE语句和IFTHEN IF的语句。 (16)避免使用ELSE GOTO和ELSE RETURN结构。 (17)使与判定相联系的动作尽可能地紧跟着判定。 (18)避免采用过于复杂的条件测试。,6.3.3 语句结构,6.3 程序设计的风格,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,(19)尽量减少使用“否定”条件的条件语句想 (20)避免过多的循环嵌套和条件嵌套; (21)不要使GOTO语句相互交叉。 (22)避免循环的多个出口。 (23)使用数组,以避免重复的控制序列。 (24)尽可能用伪码来描述程序流程,然后翻译成使用的语言 (25)数据结构要有利于程序的简化 (26)要模块化,使模块功能尽可能单一化,模块间的耦合能够清晰可见 (27)利用信息隐蔽,确保每一个模块的独立性,6.3 程序设计的风格,6.3.3 语句结构,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,(28)从数据出发去构造程序。 (29)不要修补不好的程序,要重新编写 (30)对太大的程序,要分块编写、测试,然后再集成 (31)对递归定义的数据结构尽量使用递归过程 (32)注意计算机浮点数运算的特点 (33)不要单独进行浮点数的比较 (34)避免不恰当地追求程序效率 (35)在程序中应有出错处理功能 (36)变量名中尽量不用数字,6.3 程序设计的风格,6.3.3 语句结构,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,(37)显式说明所有的变量 (38)确保所有变量在使用前都被初始化 (39)确保注释与代码完全一致 (40)不仅对代码做注释,而且对每条注释都加以编号 (41)不注释不好的代码,要重新编写 (42)程序格式的安排应有助于读者理解程序 (43)注释不要过于繁琐 (44)遵循国家标准 (45)经常反躬自省,6.3.3 语句结构,6.3 程序设计的风格,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,设计和程序编码时应考虑: 1)检验输入数据,识别错误输入,保证数据的有效性 2)检查输入项的各种重要组合合理性,必要时报告输入状态信息 3)使得输入的步骤和操作尽可能简单,并保持简单的输入格式; 4)输入数据时,应允许使用自由格式输入 5)应允许缺省; 6)输入一批数据时,要使用输入结束标志 7)在指明可使用选项的种类和取值范围。同时,需要时给出状态信息 8)程序对其格式有严格要求时 ,保持输入格式、语句的要求的一致性 9)给所有的输出加注解,并设计输出报表格式。,6.3.4 输入和输出,6.3 程序设计的风格,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,横向分类 不同的软件应用场合的软件编写选用不同的语言 纵向分类 低级-高级-更高级,6.4 程序设计语言,6.4.1 程序设计语言的分类,在编程语言的发展史上,主要有两个时期: 1)汇编语言时代 要使用汇编语言直接对硬件编程 2)高级语言时代 使用的语言的特点就是语 言的概念与符号更符合人类的思维,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,1.针对个人的标准 开发人员使用一些个人标准,有如下作用: 1)能够帮助自己组织思想、整理逻辑,从而避免错误的产生 2)利用自己可识别的标准,可帮助开发人员在离开当前任务一段 时间后,较快地恢复到离开时的状态。 3)有利于排查隐藏在程序中的错误 4)有助于从设计向代码的转化 2.针对组织的标准,6.5 编程的标准和过程,6.5.1 制定编程标准,SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING SOFTWARE ENGINEERING,1.明确程序的控制结构 1)代码应避免使用跳转语句 2)保持设计所制定的模块性 3)模块应具有通用性,即不应将只调用一次的代码放在模块中,2.确定程序所使用的算法 1)在实现这样的代码时需要付出比普通算法更多的时间 2)检验代码的正确性需要时间 3)代码读者可能是读懂代码需要很长时间 4)修改代码需要的额外时间。,3.制定程序所需的数据结构,6.5.2 编程阶段的三大任务,6.5 编程的标准和过程,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号