幻灯片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小时内删除。