幻灯片1
第五章 结构化设计的实现
5.1 代码设计
5.2 软件测试
5。3 软件维护
5。4 软件培训
幻灯片2
5.1 代码设计
●代码设计的原则与风格
●程序效率
●软件实现方法
●文档资料编写
幻灯片3
《软件设计规格书》
软件实现
●源程序
●目标程序
●用户指南
幻灯片4
要求理解
●什么是程序设计?
●程序设计的原则?
●程序设计风格的要求?
●提高程序效率的方法?
●界面定义、帮助和提示信息?
幻灯片5
1、代码设计的原则与风格
良好的代码设计风格,使程序代码易读、易懂、易修改,增加程序的可执行性和可维护性。
幻灯片6
代码设计的主要原则
●使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。
●选用的控制结构只准许有一个入口和一个出口。
●程序语句组成容易识别的块,每块只有一个入口和一个出口。
●复杂结构应该用基本控制结构进行组合嵌套来实现。
幻灯片7
代码设计风格
●规范化的程序内部文档、
●数据结构的详细说明、
●清晰的语句结构、
●遵守某一编程规范,内容包括:
●命名规范、
●界面规范、
●提示及帮助信息规范、
●热键定义等。
幻灯片8
代码设计要求
●依照所确定的规范进行程序设计.
●源程序文档化。
●数据说明。
●语句结构。
●I/O方法。
●模块本身要高内聚,模块之间要低耦合.
●独立性较强的程序块,做成函数或构件。
幻灯片9
源程序文档化
●标识符的命名
●安排注释
●程序的视觉组织
幻灯片10
标识符的命名
●标识符,包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。
●名字应能反映它所代表的实际内容,应有一定的实际意义。
●名字不是越长越好,应当选择精炼、意义明确的名字。必要时可使用缩写名字,但这时要注意缩写规则要一致,并且要给每一个名字加注释.
●在一个程序中,一个变量只应用于一种用途。
幻灯片11
程序的注释
●夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。
●注释决不是可有可无的。
●一些正规的程序文本中,注释行的数量占到整个源程序的1/3到1/2,甚至更多。
●注释分为序言性注释和功能性注释。
幻灯片12
序言性注释
●程序模块的开头应当给出程序的整体说明:包括:
●程序标题;
●本模块功能和目的的说明;
●主要算法;
●接口说明:包括调用形式,参数描述,子程序清单;
●有关数据描述:重要的变量及其用途,约束或限制条件;
●模块位置:隶属于哪一个软件包;
●开发简历:设计者,复审者,复审日期,修改日等。
幻灯片13
功能性注释要点
●功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。而不要解释下面怎么做。
●描述一段程序,而不是每一个语句;
●用缩进和空行,使程序与注释容易区别;
●注释要正确.
【例】如果注明把月销售额计入年度总额,便使读者理解了下面语句的意图。
幻灯片14
视觉组织——空格、空行和移行
●恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。
●自然的程序段之间可用空行隔开;
●移行也叫做向右缩格.这样做使程序分清层次关系.
●对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行。使程序的逻辑结构更加清晰。
【例】两重选择结构嵌套,写成移行形式,层次就清楚得多.
幻灯片15
数据说明
●在设计阶段已经确定了数据结构的组织及其复杂性。在编写程序时,则需要注意数据说明。
●为了使数据说明易于理解和维护,须注意以下几点。
●数据说明的次序应当规范化。
●说明语句中变量安排有序化.
●使用注释说明复杂数据结构.
幻灯片16
数据说明的次序应当规范化
●数据说明次序规范化,使数据属性容易查,也有利于测试,排错和维护。
●原则上,数据说明的次序与语法无关,其次序是任意的.但出于阅读、理解和维护的需要,
最好使其规范化,使说明的先后次序固定。
幻灯片17
说明语句中变量安排有序化
当多个变量名在一个说明语句中说明时,应当对这些变量按字母的顺序排列。
幻灯片18
使用注释说明复杂数据结构
如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点.
幻灯片19
语句结构
在过程设计阶段确定了软件的逻辑流程结构,但构造单个语句则是编码阶段的任务。语句
构造力求简单,直接,不能为了片面追求效率而使语句复杂化。
幻灯片20
代码语句设计的原则
●在一行内只写一条语句:采取适当的移行格式,使程序的逻辑和功能变得更加明确.在一行内写多个语句会使程序可读性变差.
●程序编写清晰性第一:不要刻意追求技巧性,使程序编写得过于紧凑。
●程序要能直截了当地说明程序员的用意:程序编写要简单,清楚,直截了当地说明程序员的用意.
●清晰第一,效率第二:不要为了追求效率而丧失了清晰性.事实上,程序效率的提高主要应通过选择高效的算法来实现。
幻灯片21
代码语句设计的原则
●先保证程序正确, 再要求提高速度。
●避免使用临时变量而使可读性下降.
●让编译程序做简单的优化.
●尽可能使用库函数和构件。
●避免不必要的转移:尽量不用GO TO语句。
●尽量采用三种基本的控制结构编写程序。
●避免使用空的ELSE语句和IF… THEN IF…的语句.这种结构容易使读者产生误解。可能产生二义性问题。
●避免采用过于复杂的条件测试.
●尽量减少使用“否定”条件的条件语句。
幻灯片22
代码语句设计的原则
●尽量用通俗易懂的伪码来描述程序的流程:然后再翻译成必须使用的语言。
●数据结构要有利于程序的简化。
●要模块化:使模块功能尽可能单一化,模块间的耦合能够清晰可见。
●利用信息隐蔽:确保每一个模块的独立性。
●从数据出发构造程序。
●修补不好的程序,要重新编写:也不要一味地追求代码的复用,要重新组织。
●大的程序要分块编写和测试:然后再集成。
●对递归定义的数据结构尽量使用递归过程.
幻灯片23
输入和输出
输入和输出的方式和格式应当尽可能方便用户的使用。要避免因设计不当给用户带来的麻烦。系统能否被用户接受,有时就取决于输入和输出的风格。
幻灯片24
I/O代码设计的原则
●输入数据要检验:识别错误的输入,以保证每个数据的有效性;
●在线代码运行器检查输入项的各种重要组合的合理性:必要时报告输入状态信息;
●输入的步骤和操作尽可能简单:并保持简单的输入格式;
●应允许使用自由格式输入数据;
●应允许缺省值;
幻灯片25
I/O代码设计的原则
●批数据输入时,使用输入结束标志:而不要由用户指定输入数据数目;
●交互式输入时,屏幕上使用提示符明确提示输入的请求:指明可使用选择项的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息;
●程序设计语言对I/O格式有严格要求时,应保持输入格式与输入语句要求的一致性;
●输出加注解,并设计输出报表格式.
幻灯片26
2、程序效率
程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。讨论程序效率的准则:
●效率性能要求,应在需求分析阶段给出。软件效率以需求为准,不应以人力所及为准。好的设计可以提高效率.
●程序的效率与程序的简单性相关.
●一般说来,任何对效率无重要改善,且对程序的简单性、可读性和正确性不利的程序设计方法都是不可取的。
幻灯片27
算法对效率的影响
源程序的效率与详细设计阶段确定的算法的效率直接有关。在详细设计翻译转换成源程序代码后,算法效率反映出程序的执行速度和存储容量的要求。
许多编译程序具有“优化”功能,可以自动生成高效率的目标代码.
幻灯片28
设计向代码转换过程中的指导原则
●尽可能简化有关的算术表达式和逻辑表达式;
●检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面;
●尽量避免使用多维数组;
●尽量避免使用指针和复杂的表;
●采用“快速”的算术运算;
●不要混淆数据类型,避免在表达式中出现类型混杂;
●尽量采用整数算术表达式和布尔表达式;
●选用等效的高效率算法;
幻灯片29
影响存储器效率的因素
●存储效率与OS的分页功能直接有关。在大中型计算机系统中,存储限制不再是主要问题。在这种环境下,对内存采取基于操作系统的分页功能的虚拟存储管理。
●采用结构化程序设计。将程序功能合理分块,使每个模块或一组密切相关模块的程序体积
大小与每页的容量相匹配,可减少页面调度和内外存交换,提高存储效率。
●提高存储器效率的关键是程序的简单性。
幻灯片30
影响输入/输出的因素
●输入/输出可分为两种类型:
●面向人(操作员)的输入/输出
●面向设备的输入/输出
●如果操作员能够十分方便、简单地录入输入数据,或者能够十分直观、一目了然地了解输出信息,则可以说面向人的输入/输出是高效的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论