收藏 分销(赏)

软件工程导论编码推选.ppt

上传人:a199****6536 文档编号:12559232 上传时间:2025-10-30 格式:PPT 页数:25 大小:371.04KB 下载积分:10 金币
下载 相关 举报
软件工程导论编码推选.ppt_第1页
第1页 / 共25页
软件工程导论编码推选.ppt_第2页
第2页 / 共25页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件工程导论课件编码,2,编码,编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。,1,、,选择程序设计语言,程序设计语言是人和计算机通信的最基本的工具,它的特点必然会影响人的思维和解题方式,会影响人和计算机通信的方式和质量,也会影响其他人阅读和理解程序的难易程度。因此,编码之前的一项重要工作就是选择一种适当的程序设计语言。,3,选择程序设计语言的主要实用标准:,(1),系统用户的要求。,(2),可以使用的编译程序。,(3),可以得到的软件工具。,(4),工程规模。,(5),程序员的知识。,(6),软件可移植性要求。,(7),软件的应用领域。,4,2,程序设计风格,程序实际上也是一种供人阅读的文章,有一个,文章的风格,问题。应该使程序具有良好的风格。,源程序文档化,数据说明,语句结构,输入输出方法,5,(,1,),源程序文档化,标识符的命名,安排注释,程序的视觉组织,6,符号名的命名,符号名即标识符,包括,模块名、变量名、常量名、标号名、子程序名、数据区名,以及,缓冲区名,等。,这些名字应能反映它所代表的实际东西,,应有一定实际意义。,例如,表示次数的量用,Times,,表示总量的用,Total,,表示平均值的用,Average,,表示和的量用,Sum,等。,名字不是越长越好,,应当选择精炼的意义明确的名字。,必要时可使用缩写名字,,但这时要注意缩写规则要一致,并且要,给每一个名字加注释,。同时,在一个程序中,一个变量只应用于一种用途。,7,程序的注释,夹在程序中的注释是程序员与,日后,的程序读者之间,通信的重要手段,。,注释,决不是可有可无,的。,一些正规的程序文本中,注释行的数量占到整个源程序的,1/3,到,1/2,,甚至更多。,注释分为,序言性注释,和,功能性注释,。,写程序之前先简化算术的和逻辑的表达式;,简单变量类型说明,(3)可以得到的软件工具。,例如,将表达式 (A17)ANDNOT(B49)ORC写成(A17)AND NOT(B49)OR C,例如:AI=AIAT;,在设计和编写程序时应该考虑下述有关输入输出风格的规则:,尽量避免使用多维数组;,(7)软件的应用领域。,不要为了节省空间而把多个语句写在同一行;,检查输入项的各种重要组合的合法性,必要时报告输入状态信息;,使用执行时间短的算术运算;,描述一段程序,而不是每一个语句;,8,序言性注释,通常置于每个程序模块的开头部分,,它应当给出程序的整体说明,,对于理解程序本身具有引导作用。,序言性注释包括:,程序标题,;,有关本模块,功能和目的,的,说明,;,主要算法,;,接口说明,:包括调用形式,参数描述,子程序清单;,有关数据描述,:重要的变量及其用途,约束或限制条件,以及其它有关信息;,模块位置,:在哪一个源文件中,或隶属于哪一个软件包;,开发简历,:模块设计者,复审者,复审日期,修改日期及有关说明等。,9,功能性注释,功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样,而不要解释下面怎么做。,例如,,/*ADD AMOUNT TO TOTAL*/TOTAL=AMOUNT,TOTAL,上面注视不清楚,如果注明把月销售额计入年度总额,便使读者理解了下面语句的意图:,/*ADD MONTHLY-SALES TO ANNUAL-TOTAL*/TOTAL=AMOUNT,TOTAL,要点,描述一段程序,而不是每一个语句;,用缩进和空行,使程序与注释容易区别;,注释要正确。,10,视觉组织 空格、空行和移行,恰当地利用,空格,,可以,突出运算的优先性,,避免发生运算的错误。例如,将表达式,(,A,17),ANDNOT,(,B,49),ORC,写成,(,A,17),AND NOT,(,B,49),OR C,自然的程序段之间可用,空行,隔开;,移行,也叫做,向右缩格,。它是指程序中的各行不必都在左端对齐,都从第一格起排列。这样做使程序完全分不清层次关系。,对于,选择语句,和,循环语句,,把其中的程序段语句向右做,阶梯式移行,。使程序的逻辑结构更加清晰。,例如,两重选择结构嵌套,写成下面的移行形式,层次就清楚得多。,IF,(,),THEN IF,(,),THEN ELSE ENDIF ELSE ENDIF,11,(2),数据说明,在设计阶段已经确定了数据结构的组织及其复杂性。在编写程序时,则,需要注意数据说明的风格,。,为了使程序中数据说明更易于理解和维护,必须注意以下几点,:,数据说明的次序应该标准化。,有次序易查阅,能加速测试、调试和维护的过程。,例如:数据说明 数据类型说明,常量说明,简单变量类型说明,数组说明,公用数据块说明,所有的文件说明,整型量说明,实型量说明,字符量说明,逻辑量说明,12,b.,当,多个变量名,在一个语句中说明时,,应该按字母顺序排列,这些变量。,例如,把,integer,size,length,width,cost,price,写成,integer,cost,length,price,size,width,c.,如果设计时使用了一个,复杂的数据结构,,则,应该用注解说明,用程序设计语言实现这个数据结构的方法和特点。,13,(,3,)语句构造,构造语句时应该遵循的,原则,是,每个语句都应该,简单而直接,,不能为了提高效率而使程序变得过分复杂;也,不要刻意追求技巧性,使程序编写得过于紧凑。,例如:,AI=AI,AT,;,AT=AI,AT,;,AI=AI,AT,;,WORK=AT,;,AT=AI,;,AI=WORK,;,例如:,int i,,,j;,for(,i,=1;,i,=,n,;,i,+)for(,j,=1;,j,=,n,;,j,+),V,i,j,(,i,j,)*(,j,i,),for(,i,1;,i,=,n,;,i,+)for(,j,1;,j,=0&char=9),不要让读者绕弯子想。,避免大量使用循环嵌套和条件嵌套;,利用括号使逻辑表达式或算术表达式的运算次序清晰直观。,16,(,4,)输入输出,在设计和编写程序时应该考虑下述有关输入输出风格的规则:,对所有的输入数据都要进行,检验,,识别错误的输入,以保证每个数据的有效性;,检查输入项的各种重要组合的,合法性,,必要时报告输入状态信息;,使得输入的步骤和操作,尽可能简单,,并保持简单的输入格式;,输入数据时,应允许使用,自由格式输入,;,应允许,缺省,值;,17,输入一批数据时,最好使用,输入结束标志,,而不要由用户指定输入数据数目;,在交互式输入输入时,要在屏幕上使用,提示符,明确提示交互输入的请求,指明可使用选择项的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息;,当程序设计语言对输入输出格式有严格要求时,应保持输入格式与输入语句的要求的,一致性,;,给所有的输出加,注解,,并设计,输出报表,格式。,输入输出风格还受到许多其它因素的影响。如输入输出设备(例如终端的类型,图形设备,数字化转换设备等)、用户的熟练程度、以及通信环境等。,18,(,5,)程序效率,程序的效率是指,程序的执行速度,及,程序所需占用的内存的存储空间,。程序编码是最后提高运行速度和节省存储的机会,因此在此阶段不能不考虑程序的效率。,19,让我们首先明确讨论,程序效率的几条准则,效率是一个性能要求,应当在需求分析阶段给出。,软件效率以需求为准,,不应以人力所及为准。,好的设计可以提高效率。,程序的,效率与程序的简单性,相关,不要牺牲程序的清晰性和可读性来不必要地提高效率。,20,效率问题,(1),程序运行时间,(2),存储器效率,(3),输入输出的效率,编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。,尽量减少对“非”条件的测试;,描述一段程序,而不是每一个语句;,if(!(char0|char 9),在设计阶段已经确定了数据结构的组织及其复杂性。,面向设备的输入输出,同时,在一个程序中,一个变量只应用于一种用途。,在编写程序时,则需要注意数据说明的风格。,例如,将表达式 (A17)ANDNOT(B49)ORC写成(A17)AND NOT(B49)OR C,面向人(操作员)的输入输出,(3)输入输出的效率,源程序的效率直接由详细设计阶段确定的算法的效率决定,但是,写程序的风格也能对程序的执行速度和存储器要求产生影响。,同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息;,输入数据时,应允许使用自由格式输入;,(7)软件的应用领域。,自然的程序段之间可用空行隔开;,也不要刻意追求技巧性,使程序编写得过于紧凑。,21,(1),程序运行时间,源程序的,效率直接由详细设计阶段确定的算法的效率决定,,但是,写,程序的风格,也能对程序的执行速度和存储器要求产生影响。,在把,详细设计结果翻译成程序,时,总可以应用下述规则:,写程序之前先简化算术的和逻辑的表达式;,仔细研究嵌套的循环,以确定是否有语句可以从内层往外移;,尽量避免使用多维数组;,尽量避免使用指针和复杂的表;,使用执行时间短的算术运算;,不要混合使用不同的数据类型;,尽量使用整数运算和布尔表达式。,在效率是决定性因素的应用领域,尽量使用有良好优化特性的编译程序,以自动生成高效目标代码。,22,(2),存储器效率,在大中型计算机系统中,存储限制不再是主要问题。在这种环境下,对,内存采取基于操作系统的分页功能的虚拟存储管理,。,存储效率与操作系统的分页功能直接有关,。,采用结构化程序设计,将程序功能合理分块,,使每个模块或一组密切相关模块的程序体积大小与每页的容量相匹配,,可减少页面调度,减少内外存交换,提高存储效率。,在微型计算机系统中,存储器的容量对软件设计和编码的制约很大。因此,要选择可生成较短目标代码且存储压缩性能优良的编译程序,,有时需采用汇编程序。,提高存储器效率的关键是程序的简单性。,23,(3),输入输出的效率,输入输出可分为,两种类型,:,面向,人,(,操作员,),的输入输出,面向,设备,的输入输出,如果操作员能够十分,方便、简单,地录入输入数据,或者能够十分,直观、一目了然,地了解输出信息,则可以说面向人的输入输出是高效的。,24,关于提高,设备,输入,/,输出效率的指导原则:,输入,/,输出的请求应当最小化;,对于所有的输入,/,输出操作,,安排适当的缓冲区,,以减少频繁的信息交换。,对辅助存储,(,例如磁盘,),,,选择尽可能简单的,可接受的存取方法,;对辅助存储的输入,/,输出,应当,成块传送,;,对终端或打印机的输入,/,输出,应考虑设备特性,,尽可能改善输入,/,输出的质量和速度;,任何不易理解的,对改善输入,/,输出效果关系不大的措施都是不可取的;,任何不易理解的所谓,“,超高效,”,的输入,/,输出是毫无价值的;,感谢观看,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服