1、51代码设计幻灯片1第五章 结构化设计的实现5.1 代码设计5.2 软件测试5.3 软件维护5.4 软件培训幻灯片25.1 代码设计 代码设计的原则与风格 程序效率 软件实现方法 文档资料编写幻灯片3软件设计规格书软件实现 源程序 目标程序 用户指南幻灯片4要求理解 什么是程序设计? 程序设计的原则? 程序设计风格的要求? 提高程序效率的方法? 界面定义、帮助和提示信息?幻灯片51、代码设计的原则与风格良好的代码设计风格,使程序代码易读、易懂、易修改,增加程序的可执行性和可维护性。幻灯片6代码设计的主要原则 使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。 选用的控制结构只准许有
2、一个入口和一个出口。 程序语句组成容易识别的块,每块只有一个入口和一个出口。 复杂结构应该用基本控制结构进行组合嵌套来实现。幻灯片7代码设计风格 规范化的程序内部文档、 数据结构的详细说明、 清晰的语句结构、 遵守某一编程规范,内容包括: 命名规范、 界面规范、 提示及帮助信息规范、 热键定义等。幻灯片8代码设计要求 依照所确定的规范进行程序设计。 源程序文档化。 数据说明。 语句结构。 I/O方法。 模块本身要高内聚,模块之间要低耦合。 独立性较强的程序块,做成函数或构件。幻灯片9源程序文档化 标识符的命名 安排注释 程序的视觉组织幻灯片10标识符的命名 标识符,包括模块名、变量名、常量名、
3、标号名、子程序名、数据区名以及缓冲区名等。 名字应能反映它所代表的实际内容,应有一定的实际意义。 名字不是越长越好,应当选择精炼、意义明确的名字。必要时可使用缩写名字,但这时要注意缩写规则要一致,并且要给每一个名字加注释。 在一个程序中,一个变量只应用于一种用途。幻灯片11程序的注释 夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。 注释决不是可有可无的。 一些正规的程序文本中,注释行的数量占到整个源程序的1/3到1/2,甚至更多。 注释分为序言性注释和功能性注释。幻灯片12序言性注释 程序模块的开头应当给出程序的整体说明:包括: 程序标题; 本模块功能和目的的说明; 主要算法;
4、接口说明:包括调用形式,参数描述,子程序清单; 有关数据描述:重要的变量及其用途,约束或限制条件; 模块位置:隶属于哪一个软件包; 开发简历:设计者,复审者,复审日期,修改日等。幻灯片13功能性注释要点 功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。而不要解释下面怎么做。 描述一段程序,而不是每一个语句; 用缩进和空行,使程序与注释容易区别; 注释要正确。【例】如果注明把月销售额计入年度总额,便使读者理解了下面语句的意图。幻灯片14视觉组织-空格、空行和移行 恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。 自然的程序段之间可用空行
5、隔开; 移行也叫做向右缩格。这样做使程序分清层次关系。 对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行。使程序的逻辑结构更加清晰。【例】两重选择结构嵌套,写成移行形式,层次就清楚得多。幻灯片15数据说明 在设计阶段已经确定了数据结构的组织及其复杂性。在编写程序时,则需要注意数据说明。 为了使数据说明易于理解和维护,须注意以下几点。 数据说明的次序应当规范化。 说明语句中变量安排有序化。 使用注释说明复杂数据结构。幻灯片16数据说明的次序应当规范化 数据说明次序规范化,使数据属性容易查找,也有利于测试,排错和维护。 原则上,数据说明的次序与语法无关,其次序是任意的。但出于阅读、理解和
6、维护的需要,最好使其规范化,使说明的先后次序固定。幻灯片17说明语句中变量安排有序化当多个变量名在一个说明语句中说明时,应当对这些变量按字母的顺序排列。幻灯片18使用注释说明复杂数据结构如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点。幻灯片19语句结构在过程设计阶段确定了软件的逻辑流程结构,但构造单个语句则是编码阶段的任务。语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。幻灯片20代码语句设计的原则 在一行内只写一条语句:采取适当的移行格式,使程序的逻辑和功能变得更加明确。在一行内写多个语句会使程序可读性变差。 程序编写清晰性第一:不要刻意追求技
7、巧性,使程序编写得过于紧凑。 程序要能直截了当地说明程序员的用意:程序编写要简单,清楚,直截了当地说明程序员的用意。 清晰第一,效率第二:不要为了追求效率而丧失了清晰性。事实上,程序效率的提高主要应通过选择高效的算法来实现。幻灯片21代码语句设计的原则 先保证程序正确, 再要求提高速度。 避免使用临时变量而使可读性下降。 让编译程序做简单的优化。 尽可能使用库函数和构件。 避免不必要的转移:尽量不用GO TO语句。 尽量采用三种基本的控制结构编写程序。 避免使用空的ELSE语句和IF THEN IF的语句。这种结构容易使读者产生误解。可能产生二义性问题。 避免采用过于复杂的条件测试。 尽量减少
8、使用“否定”条件的条件语句。幻灯片22代码语句设计的原则 尽量用通俗易懂的伪码来描述程序的流程:然后再翻译成必须使用的语言。 数据结构要有利于程序的简化。 要模块化:使模块功能尽可能单一化,模块间的耦合能够清晰可见。 利用信息隐蔽:确保每一个模块的独立性。 从数据出发构造程序。 修补不好的程序,要重新编写:也不要一味地追求代码的复用,要重新组织。 大的程序要分块编写和测试:然后再集成。 对递归定义的数据结构尽量使用递归过程。幻灯片23输入和输出输入和输出的方式和格式应当尽可能方便用户的使用。要避免因设计不当给用户带来的麻烦。系统能否被用户接受,有时就取决于输入和输出的风格。幻灯片24I/O代码
9、设计的原则 输入数据要检验:识别错误的输入,以保证每个数据的有效性; 检查输入项的各种重要组合的合理性:必要时报告输入状态信息; 输入的步骤和操作尽可能简单:并保持简单的输入格式; 应允许使用自由格式输入数据; 应允许缺省值;幻灯片25I/O代码设计的原则 批数据输入时,使用输入结束标志:而不要由用户指定输入数据数目; 交互式输入时,屏幕上使用提示符明确提示输入的请求:指明可使用选择项的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息; 程序设计语言对I/O格式有严格要求时,应保持输入格式与输入语句要求的一致性; 输出加注解,并设计输出报表格式。幻灯片262、程序
10、效率程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。讨论程序效率的准则: 效率性能要求,应在需求分析阶段给出。软件效率以需求为准,不应以人力所及为准。好的设计可以提高效率。 程序的效率与程序的简单性相关。 一般说来,任何对效率无重要改善,且对程序的简单性、可读性和正确性不利的程序设计方法都是不可取的。幻灯片27算法对效率的影响源程序的效率与详细设计阶段确定的算法的效率直接有关。在详细设计翻译转换成源程序代码后,算法效率反映出程序的执行速度和存储容量的要求。许多编译程序具有“优化”功能,可以自动生成高效率的目标代码。幻灯片28设计向代码转换过程中的指导原则 尽可能简化有关的算术表达式
11、和逻辑表达式; 检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面; 尽量避免使用多维数组; 尽量避免使用指针和复杂的表; 采用“快速”的算术运算; 不要混淆数据类型,避免在表达式中出现类型混杂; 尽量采用整数算术表达式和布尔表达式; 选用等效的高效率算法;幻灯片29影响存储器效率的因素 存储效率与OS的分页功能直接有关。在大中型计算机系统中,存储限制不再是主要问题。在这种环境下,对内存采取基于操作系统的分页功能的虚拟存储管理。 采用结构化程序设计。将程序功能合理分块,使每个模块或一组密切相关模块的程序体积大小与每页的容量相匹配,可减少页面调度和内外存交换,提高存储效率。 提高存储器
12、效率的关键是程序的简单性。幻灯片30影响输入输出的因素 输入输出可分为两种类型: 面向人(操作员)的输入输出 面向设备的输入输出 如果操作员能够十分方便、简单地录入输入数据,或者能够十分直观、一目了然地了解输出信息,则可以说面向人的输入输出是高效的。幻灯片31提高I/O设备效率的指导原则 I/O的请求应当最小化; 对于所有的I/O操作,安排适当的缓冲区,以减少频繁的信息交换。 对辅助存储(例如磁盘),选择尽可能简单的,可接受的存取方法; 对辅助存储的I/O,应当成块传送; 对终端或打印机的I/O,应考虑设备特性,尽可能改善I/O的质量和速度; 任何不易理解的,对改善输入/输出效果关系不大的措施
13、都是不可取的; 任何不易理解的所谓“超高效”的I/O毫无价值;幻灯片323、软件实现方法按照软件设计说明书的要求,从函数库、类库、构件库中挑选有关的部件,遵照程序设计规范,用面向对象的语言,采用软件架构技术,将这些部件组装在一起,分别实现各模块的功能,从而实现需求规格说明书中规定的功能、性能、接口、界面要求等。 幻灯片33软件实现的主要工作 新增函数的实现及函数库的管理 新增存储过程的实现及存储过程库的管理 新增类的实现及类库的管理 新增构件的实现及构件库的管理 新增中间件的实现及中间件的管理 部件组装 程序设计风格与编程规范的确定 幻灯片34屏幕界面设计 屏幕界面上看得见的窗口、画面、图像、
14、按钮等对象,在设计与实现中,统称为“控件”。 构件分为可视构件和非可视构件两种,控件是一种可视构件,它是构件的一种表现形式。 控件的有机排列和组合,就构成了用户需求的各种屏幕界面。 屏幕界面设计的内容包括: 控件级设计、窗口级定义和系统级定义3部分。 屏幕界面设计遵从的原则:界面简洁朴素,控件摆放整齐,颜色风格统一,照顾客户习惯。 幻灯片35控件级定义这里讲的控件,是指屏幕界面上的控件,它是屏幕窗口中的基本元素,是构件的一种表现形式。控件1:按钮(Button) 属性:Height=92,Width依具体情况而定;按钮在窗口右下方或右方排列,当控件中包含按钮时,按钮不应和控件外的按钮在同一方向
15、上排列。 幻灯片36控件1:按钮(Button)幻灯片37控件2:分组框(GroupBox) 幻灯片38控件3:单行编辑器、下拉列表框、 图形下拉列表框、数字转盘幻灯片39控件4:图表(Graph) 幻灯片40控件5:复选框、单选钮幻灯片41控件6:图片(Picture) 幻灯片42控件7:标签(Tab) 幻灯片43窗口级定义 窗口级定义包括系统主窗口、基本参数(又称代码或数据字典)维护窗口、录入查询修改窗口、统计窗口、对话框等窗口的定义。 在面向对象的编程语言中,窗口定义是一件较简单的事情。 幻灯片44(1)系统主窗口定义 幻灯片45(2)基本参数维护窗口定义 幻灯片46(3)录入/查询/修
16、改窗口定义(1) 幻灯片47(3)录入/查询/修改窗口定义(2)选中记录:移动鼠标到该条记录上,并单击它。浏览记录:用鼠标拖动滚动条,这样可以看到更多的参数。增加记录:按下“插入”按钮,在左边的数据窗口中将会增加一条空白记录。按下“保存”按钮,就会将它存入数据库中。删除记录:选中将要删除的记录,按下“删除”按钮。按下“保存”按钮,就会从数据库中删除该记录。修改记录:选中需要修改的记录,就可以修改。放弃修改:对数据进行了改动,允许放弃改动。办法是按下右边的“查询”按钮。打印记录:按下“打印”按钮,就得到所需的报表。 幻灯片48(4)统计窗口定义(1) 幻灯片49(4)统计窗口定义(2)幻灯片50
17、(5)对话框窗口定义 幻灯片51系统级定义 系统结构图定义:用彩色示意图,形象地表示该系统的总体结构。起始画面定义:用于显示系统的名称和版权人等信息。登录定义:用户录入名称和口令,登录等待过程需加入动画。菜单定义:同一层菜单项之间,功能不同者用“横线”隔开;主菜单项名称用“两个字符”表达;子系统功能相同的菜单项必须用同一名称。 快捷键定义: 幻灯片52帮助信息 帮助信息与用户指南有所不同。前者是联机在线动态帮助,后者是脱机静态指导。联机动态帮助与程序运行之间,存在动态对应关系。脱机静态帮助,是一种宏观静态说明。 帮助信息又分为在线帮助和提示信息两部分,此处专门介绍帮助信息的实现方法。 幻灯片5
18、3在线帮助的使用规定程序代码与在线帮助的关系采用间接调用方式处理。在帮助菜单或按钮中,先调用帮助关键字,再根据关键字查找帮助主题。这样可以使程序代码开发和帮助书写工作分离,便于开发过程中整体工作的协调安排。 所有的业务功能(如录入、修改、查询、制单处理、总账处理、明细账处理)或者较复杂的非业务功能(如任意汇总查询、数据通信和传输)中都要提供在线帮助;使用按钮操作的窗口,在线帮助使用按钮;使用菜单操作的窗口,在线帮助使用菜单;对于查询功能,查询结果形成前的响应窗口应提供在线帮助。 幻灯片54在线帮助的处理过程在所有需要帮助的地方,调用一个自定义的公用函数,由该函数负责打开在线帮助。公用函数的格式
19、如下: GifHelp(String psHelpId) 参数psHelpId 为帮助关键字。幻灯片55帮助关键字的构造规范帮助关键字 =系统编号(2位)+|+对象名字(不定位)+|+语义序号幻灯片56在线帮助函数的调用方法及规定psHelpId按照上述规定的规范形成。各程序员都要形成一个积累帮助的文件,文件名规定为Help+程序员名字缩写,每调用一次,都要向该文件中加入一行信息,以登记调用情况。幻灯片57帮助关键字与帮助主题的对应关系为了保证程序中所调用的帮助关键字能够同帮助文件中帮助主题完全对应,特定义一个保存这种对应关系的文件,该文件称为对应关系文件,它作为一个客户端的配置文件存在,不在
20、数据库中单独列表。幻灯片58配置文件名:HLPTOPIC.INI格式:子系统代码 HelpId = HelpTopic,HelpFile例如:ZW zw|w_kmzd|kmsr = 帮助主题,帮助文件 zw|w_pzcl|pzsr = 帮助主题,帮助文件 幻灯片59提示信息的分类引导性提示信息:该类提示信息一般在需要用户干预时出现,要求用户决定下一步的操作。如在退出时提示“修改的数据尚未存盘,存盘否?”。使用MessageBox进行提示。错误性提示信息:该类提示信息一般在软件运行出错时出现,告诉用户软件遇到了问题。如“系统运行出现故障,请与系统管理员联系!”。状态性提示信息:该类提示信息一般在
21、软件处于“忙”状态下提示,告诉用户软件正在进行什么操作,让用户耐心等待。如“正在进行数据传输,请稍待”。 位置性提示信息:该类提示信息一般根据鼠标的位置进行提示,告诉用户鼠标正指向什么功能。如“报表打印”。幻灯片60提示信息的提示方法对于所有提示信息,可使用函数:gsShowMessage(psMessId,psErrMess),其中: psMessId为提示信息的ID号, psErrMess为根据系统获得的错误信息,该参数只对错误性提示信息有效。幻灯片61信息序号的编码规则及使用时应做的工作信息序号的规则如下: 信息序号=信息类别(两位)+信息代号(八位)“信息类别”表示为以下信息中的一种:
22、 (1)LE 引导性信息 (2)ER 错误性信息 (3)ST 状态性信息 (4)PO 位置性信息“信息级别”仅对ER有效,级别在最后统一编排。 “提问方式”仅对LE有效,表示如何提示用户,以便于用户回答:YesNo(是否);YesNoCancel(是否取消);OkCancel (确认取消);Ok(确认)。幻灯片62提示信息的时机及内容编写规定引导性提示主要是引导用户进行下一步操作,一般出现的机会比较多,如“修改的数据未存盘,存盘否?”。错误性提示在测试比较好的情况下应极少出现,它出现的原因不外乎两种:一种为测试不够;另一种可能为数据出现错误,如服务器运行异常等。对于这种情况一定要将错误原因详尽
23、提示出来,由程序员在新的版本中改正错误,或维护人员根据错误原因解决问题。状态性提示要明确简单,让用户确实了解系统目前正在“忙”什么。 要将位置性提示准确显示在状态提示栏中。幻灯片63热键定义及使用规范对于各种对象(如菜单、按钮等)的热键,在各种对象的介绍中已经规定,在此不再做重复规定,这里只规定整个系统的热键。 幻灯片64其他规定对于数字型(除Integer型)列,从表中取出后,必需进行四舍五入处理。使用通配符的地方,一律使用“?”表示。在退出时,检查数据窗口中的数据是否做过改动,如做过改动,应提示用户是否存盘。在存盘之前,应检查数据窗口中各项数据的正确性,如有不符合条件的项,应提示,改正后再
24、行存盘,提示的内容应为“错误信息”+“改正方法”。对于日期型数据的显示及输入格式,规定为yyyy.mm.dd,不得使用其他任何格式。每行数据输入、删除或修改后,要能够及时提交。 在输入某一项数据时,如果该项不在可视屏内,则应将该项移动到可视屏内。幻灯片65其他规定可以在事件中调用函数,但一般不在函数中触发事件。函数体内的语句出错时,要返回错误代码(如1表示成功,1表示失败)等。规定:事件的触发应不超过三级,视图的连续层数应不超过三层。在数据更新中,动态SQL语句或嵌入式SQL语句执行后都要进行判断,根据执行结果来决定下一步操作。在某一子系统的主菜单下打开一窗口时,如果该窗口是Main(主)窗口
25、,则以OpenSheet( )打开。 规定全程变量表,是各系统实现前要做的一项重要的工作。至于各子系统所使用的全程变量,则要待各子系统设计完成后,由高级程序员根据情况定义,但通用全程变量各子系统都要使用。 幻灯片664、软件实现文档的编写源程序清单用户使用手册用户安装手册 系统管理员手册幻灯片67软件实现文档的组成幻灯片68用户指南的编写要求统一采用编写工具Word进行编写。用统一的风格和确定的方法,描述产品提供的所有功能。描述之后的功能,应该具有如下特点:对于每一项功能的描述应该完整。术语部分包括系统术语和基本概念。系统术语在整个系统的含义是统一的,放在前言部分描述。基本概念在各有关章节进行
26、描述。语言要简洁明快,表达准确。一句话不要太长,中间可以断句几次。 指南格式应统一。 幻灯片69用户指南的排版建议2人以上合作编写,一定要有一人负责统稿。交稿前一定要最后一次仔细审读。图以章为序,如图5.1或图5-1(半字线连接章号和图号)。表以章为序,如表3.1或表3-2。 命令格式。操作步骤中使用的命令按钮、菜单命令项、标签项等名称用【】界定。如:打开【开始】菜单选择【程序】项幻灯片70用户指南的编写原则列出应编制文档的目录。提示编制文档应参考的标准。指定文档管理员。提供编制文档所需要的条件,落实文档编写人员、主管和所需经费以及编制工具等。明确保证文档质量的方法,为了确保文档内容的正确性、
27、合理性,应采取一定的措施,如评审、审稿、鉴定等。 绘制进度表,以图表形式列出各阶段应产生的文档、编制人员、编制主管、编制日期、完成日期、评审日期等。 幻灯片71用户指南的审核鉴定为了保证文档的质量以及文档内容的正确性、合理性,软件工程管理部门应对用户指南进行评审和鉴定工作,提出改进意见,有利于整个文档质量的提高。幻灯片72软件实现管理文档用户指南评审报告模块源程序行统计表(行/模块名) 源程序工作量统计表(行/人天)幻灯片73用户使用手册编写参考指南1.前言(Preface) 1.1 内容简介(Introduction) 简单地介绍编写背景,系统适用的用户。 1.2 基本概念(Basic Co
28、ncept) 说明定义的术语在本手册中的含义。 1.3 主要功能(Mostly Function) 对系统进行简单讲解和功能介绍。 1.4 操作流程(Operate Flow) 操作流程说明。全面模拟用户操作,从安装、进入、初始化、到用户具体操作,对整个流程进行描述。 1.5 步骤说明(Step Show) 针对操作流程的每一步进行说明。如果在使用说明中有相应的解释,应指明用户查找的位置。 幻灯片74用户使用手册编写参考指南2功能(Function) 2.1 使用流程(Use Flow) 描述具体功能的使用顺序。 2.2 具体描述(Description) 描述顺序是按照使用流程的每一步进行的
29、。 2.3 进行此功能的业务介绍(Operation Introduce) 对此功能进行简单介绍,说明所能完成的功能。 2.4 操作步骤(Handle Step) 用鼠标选择相应的功能,进入相应的界面,进行功能键以及栏目的介绍。 2.5 举例(Example) 2.6 特殊提示及注意事项(Prompt and Notice)3附录(Appendix)幻灯片75用户安装手册编写参考指南1.前言(Preface) 指明编制该手册的目的和预期的读者,简介该系统的运 行环境:操作系统OS,数据库系统DBMS,C/S二层结构或B/A/S三层结构,界面特点,以及技术特色。 1.1 内容简介(Introduction) 介绍本书提供的几个部分:简单介绍大概内容。 1.2 使用约定(Use Assumpsit) 提示:安装过程的一些好的方法。 注意:安装过程中特殊注意的地方。 警告:指出危险动作或状态,否则,会对您的安装造成破坏。幻灯片76用户安装手册编写参考指南2.单机版的安装及配置 2.1 运行环境 硬件环境:列出运行本系统所要求的硬设备的最小配置。 软件环境:列出运行本系统所需要的支持软件。 2.2 安装单机版 简单介绍单机版打包光盘的定义和内
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1