1 / 42

实用软件工程

实用软件工程. ---- IT 企业软件的开发与管理 赵池龙 zhaochilong@bnusri.com. 第 8 章 软件 实现. 本章导读: 从 宏观上 讲,软件实现包括详细设计、编程实现、单元测试和集成测试。从 微观上 讲,软件实现是指编程和单元测试。本章只讲编程实现方法,包括编码风格、界面定义、帮助信息,以及用户指南书写的参考指南。 要求理解:编码风格、界面定义、帮助和提示信息 要求掌握: 1 ) 《 用户使用手册 》 的编写方法 2 ) 《 用户安装手册 》 的编写方法. 8.1 软件实现方法.

ford
Download Presentation

实用软件工程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实用软件工程 ----IT企业软件的开发与管理 赵池龙 zhaochilong@bnusri.com

  2. 第8章 软件实现 • 本章导读: • 从宏观上讲,软件实现包括详细设计、编程实现、单元测试和集成测试。从微观上讲,软件实现是指编程和单元测试。本章只讲编程实现方法,包括编码风格、界面定义、帮助信息,以及用户指南书写的参考指南。 • 要求理解:编码风格、界面定义、帮助和提示信息 • 要求掌握: 1)《用户使用手册》的编写方法 2)《用户安装手册》的编写方法

  3. 8.1 软件实现方法 • 软件实现的输入是《详细设计说明书》,输出是源程序、目标程序及用户指南。根据“五个面向理论”,编程实现的主要方法是“面向对象实现”。因为现在流行的编程语言,基本上都是面向对象的语言。 • “面向对象实现”的目标是:按照《详细设计说明书》的要求,从软件公司的函数库、类库、构件库中挑选有关的零部件,遵照软件公司的程序设计规范,用面向对象的语言,通过穿针引线的方法,将这些零部件组装起来,分别实现各模块的功能,从而实现目标系统的功能、性能、接口、界面等要求。

  4. 软件实现方法 1.新增函数的实现及函数库的管理 2.新增存储过程的实现及存储过程库的管理 3.新增类的实现及类库的管理 4.新增构件的实现及构件库的管理 5.新增中间件的实现及中间件的管理 6.部件组装 7.程序设计风格与编程规范 (1).程序设计风格的内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、遵守某一编程规范。 (2).编程规范的内容包括:命名规范、界面规范、提示及帮助信息规范、热键定义等。

  5. 4.2 源程序设计风格 • 良好的程序设计风格,能使程序员进行“无私程序设计”,避免程序员与其所产生的代码之间的关系过于密切,提高程序代码的规范化程度,使程序代码易读、易懂、易修改,实现程序员之间相互进行程序测试和维护的目的。 • 程序设计要求: (1)依照所确定的规范进行程序设计。 (2)模块本身要高内聚,模块之间要低耦合。 (3)每个程序模块的行数不做规定。对于程序模块中相对独立性较强的程序块,提炼成为一个函数或构件。 (4)尽量为程序块加上明确的注释。对于较复杂的程序或算法需要有注释文件,并在程序中注明注释文件名,在注释文件中注明程序名。

  6. 4.3 屏幕界面设计 • 屏幕界面上看得见的窗口、画面、图像、按钮等对象,在设计与实现中,统称为“控件”。 • 构件分为可视构件和非可视构件两种,控件是一种可视构件,它是构件的一种表现形式。 • 控件的有机排列和组合,就构成了用户需求的各种屏幕界面。 • 屏幕界面设计的内容包括:(1)控件级设计;(2)窗口级定义;(3)系统级定义。 • 屏幕界面设计遵从的原则是:界面简洁朴素,控件摆放整齐,颜色风格统一,照顾客户习惯。

  7. 4.3.1 控件级定义 • 这里讲的控件,是指屏幕界面上的控件,它是屏幕窗口中的基本元素,是构件的一种表现形式。 • 控件1:按钮(Button) • 属性:Height=92,Width依具体情况而定;按钮在窗口右下方或右方排列,当控件中包含按钮时,按钮不应和控件外的按钮在同一方向上排列。

  8. 控件1:按钮(Button)

  9. 控件2:分组框(Group Box)

  10. 控件3:单行编辑器、下拉列表框、图形下拉列表框、数字转盘控件3:单行编辑器、下拉列表框、图形下拉列表框、数字转盘

  11. 控件4:图表(Graph)

  12. 控件5:复选框、单选钮

  13. 控件6:图片(Picture)

  14. 控件7:标签(Tab)

  15. 4.3.2 窗口级定义 • 窗口级定义包括: (1)系统主窗口; (2)基本参数(又称代码或数据字典)维护窗口; (3)录入查询修改窗口; (4)统计窗口; (5)对话框窗口等等。 • 在面向对象的编程语言中,窗口定义是一件较简单的事情。

  16. (1).系统主窗口定义

  17. (2).基本参数维护窗口定义

  18. (3).录入/查询/修改窗口定义

  19. 录入/查询/修改窗口定义 • (1)选中记录:移动鼠标到该条记录上,并单击它。 • (2)浏览记录:用鼠标拖动滚动条,这样可以看到更多的参数。 • (3)增加记录:按下“插入”按钮,在左边的数据窗口中将会增加一条空白记录。按下“保存”按钮,就会将它存入数据库中。 • (4)删除记录:选中将要删除的记录,按下“删除”按钮。按下“保存”按钮,就会从数据库中删除该记录。 • (5)修改记录:选中需要修改的记录,就可以修改。 • (6)放弃修改:对数据进行了改动,允许放弃改动。办法是按下右边的“查询”按钮。 • (7)打印记录:按下“打印”按钮,就得到所需的报表。

  20. (4).统计窗口定义

  21. 统计窗口定义

  22. (5).对话框窗口定义

  23. 4.3.3 系统级定义 • (1).系统结构图定义 用彩色示意图,形象地表示该系统的总体结构。 • (2).起始画面定义 用于显示系统的名称和版权人等信息。 • (3).登录定义 用户录入名称和口令,登录等待过程需加入动画。 • (4).菜单定义 同一层菜单项之间,功能不同者用“横线”隔开;主菜单项名称用“两个字符”表达;子系统功能相同的菜单项必须用同一名称。 • (5).快捷键定义

  24. 4.4 帮助信息 • 帮助信息与用户指南有所不同。前者是联机在线动态帮助,后者是脱机静态指导。 • 联机动态帮助与程序运行之间,存在动态对应关系。 • 脱机静态帮助,是一种宏观静态说明。 • 帮助信息又分为:在线帮助和提示信息两部分,此处专门介绍帮助信息的实现方法。

  25. 4.4.1 在线帮助 • 程序代码与在线帮助的关系采用间接调用方式处理。在帮助菜单或按钮中,先调用帮助关键字,再根据关键字查找帮助主题。这样可以使程序代码开发和帮助书写工作分离,便于开发过程中整体工作的协调安排。 • (1).在线帮助的使用规定 所有的业务功能(如录入、修改、查询、制单处理、总账处理、明细账处理)或者较复杂的非业务功能(如任意汇总查询、数据通信和传输)中都要提供在线帮助;使用按钮操作的窗口,在线帮助使用按钮;使用菜单操作的窗口,在线帮助使用菜单;对于查询功能,查询结果形成前的响应窗口应提供在线帮助。

  26. 在线帮助 • (2).在线帮助的处理过程 在所有需要帮助的地方,调用一个自定义的公用函数,由该函数负责打开在线帮助。公用函数的格式如下: GifHelp(String psHelpId) 参数psHelpId 为帮助关键字。 • (3).帮助关键字的构造规范 帮助关键字 = 系统编号(2位)+ | + 对象名字(不定位)+ | + 语义序号 • (4).在线帮助函数的调用方法及规定 psHelpId按照上述规定的规范形成。各程序员都要形成一个积累帮助的文件,文件名规定为Help+程序员名字缩写,每调用一次,都要向该文件中加入一行信息,以登记调用情况,文件格式的规定,如表8-3所示。

  27. 表8-3 帮助文件的格式

  28. 在线帮助 • (5).帮助关键字与帮助主题的对应关系 为了保证程序中所调用的帮助关键字能够同帮助文件中帮助主题完全对应,特定义一个保存这种对应关系的文件,该文件称为对应关系文件,它作为一个客户端的配置文件存在,不在数据库中单独列表。 • 配置文件名:HLPTOPIC.INI 格式: [子系统代码] HelpId = HelpTopic,HelpFile • 例如: [ZW] zw|w_kmzd|kmsr = 帮助主题,帮助文件 zw|w_pzcl|pzsr = 帮助主题,帮助文件

  29. 4.4.2 提示信息 • 1.提示信息的分类 • 可将系统中所有提示信息分为4类: • (1)引导性提示信息:该类提示信息一般在需要用户干预时出现,要求用户决定下一步的操作。如在退出时提示“修改的数据尚未存盘,存盘否?”。 • (2)错误性提示信息:该类提示信息一般在软件运行出错时出现,告诉用户软件遇到了问题。如“系统运行出现故障,请与系统管理员联系!”。 • (3)状态性提示信息:该类提示信息一般在软件处于“忙”状态下提示,告诉用户软件正在进行什么操作,让用户耐心等待。如“正在进行数据传输,请稍待…”。 • (4)位置性提示信息:该类提示信息一般根据鼠标的位置进行提示,告诉用户鼠标正指向什么功能。如“报表打印”。

  30. 提示信息 • 2.提示信息的提示方法 • 对于所有提示信息,可使用函数gsShowMessage(psMessId,psErrMess),其中psMessId为提示信息的ID号,psErrMess为根据系统获得的错误信息,该参数只对错误性提示信息有效。 (1)对于引导性提示信息,使用MessageBox进行提示。 (2)对于错误性提示信息,显示时只显示信息表中提供的信息,提供详细按钮,执行时将详细的错误信息显示出来。 (3)对于状态性提示信息,显示一个固定窗口,同时提供一个函数gsCloseMess( ),对于该类提示信息,在执行完毕后,执行函数将提示窗口关闭。 (4)位置性提示信息显示在状态提示栏中。

  31. 提示信息 • 3.信息序号的编码规则及使用时应做的工作 (1). 信息序号的规则如下: 信息序号 = 信息类别(两位)+信息代号(八位) (2). “信息类别”表示为以下信息中的一种: (1). LE 引导性信息 (2). ER 错误性信息 (3). ST 状态性信息 (4). PO 位置性信息 (3). “信息级别”仅对ER有效,级别在最后统一编排。 (4). “提问方式”仅对LE有效,表示如何提示用户,以便于用户回答:YesNo(是否);YesNoCancel(是否取消);OkCancel (确认取消);Ok(确认)。

  32. 提示信息 • 4.提示信息的时机及内容编写规定 • (1)引导性提示主要是引导用户进行下一步操作,一般出现的机会比较多,如“修改的数据未存盘,存盘否?”。 • (2)错误性提示在测试比较好的情况下应极少出现,它出现的原因不外乎两种:一种为测试不够;另一种可能为数据出现错误,如服务器运行异常等。对于这种情况一定要将错误原因详尽提示出来,由程序员在新的版本中改正错误,或维护人员根据错误原因解决问题。 • (3)状态性提示要明确简单,让用户确实了解系统目前正在“忙”什么。 • (4)要将位置性提示准确显示在状态提示栏中。

  33. 提示信息 • 5.热键定义及使用规范 对于各种对象(如菜单、按钮等)的热键,在各种对象的介绍中已经规定,在此不再做重复规定,这里只规定整个系统的热键,如表8-5所示。

  34. 4.4.3 其他规定 • (1)对于数字型(除Integer型)列,从表中取出后,必需进行四舍五入处理。 • (2)使用通配符的地方,一律使用“?”表示。 • (3)在退出时,检查数据窗口中的数据是否做过改动,如做过改动,应提示用户是否存盘。 • (4)在存盘之前,应检查数据窗口中各项数据的正确性,如有不符合条件的项,应提示,改正后再行存盘,提示的内容应为“错误信息”+“改正方法”。 • (5)对于日期型数据的显示及输入格式,规定为yyyy.mm.dd,不得使用其他任何格式。 • (6)每行数据输入、删除或修改后,要能够及时提交。 • (7)在输入某一项数据时,如果该项不在可视屏内,则应将该项移动到可视屏内。

  35. 其他规定 • (8)可以在事件中调用函数,但一般不在函数中触发事件。函数体内的语句出错时,要返回错误代码(如1表示成功,-1表示失败)等。 • (9)规定:事件的触发应不超过三级,视图的连续层数应不超过三层。 • (10)在数据更新中,动态SQL语句或嵌入式SQL语句执行后都要进行判断,根据执行结果来决定下一步操作。 • (11)在某一子系统的主菜单下打开一窗口时,如果该窗口是Main(主)窗口,则以OpenSheet( )打开。 • (12)规定全程变量表,是各系统实现前要做的一项重要的工作。至于各子系统所使用的全程变量,则要待各子系统设计完成后,由高级程序员根据情况定义,但通用全程变量各子系统都要使用。

  36. 4.5 软件实现文档 • 1.实现文档的组成 • 软件实现文档由源程序清单和用户指南组成。由于面向对象的语言与面向过程的语言有所不同,所以完整的源程序清单有时打印不出来,往往只能打印出部分源程序清单。一般的做法是:不打印出源程序清单,只保留其电子版本。 • 用户指南主要包括《用户使用手册》和《用户安装手册》 。 • 在特殊情况下,例如,数据库服务器上的存储管理、数据维护、数据备份、数据传输等问题较复杂时,在用户指南中还要增加《系统管理员手册》的内容。

  37. 软件实现文档 • 2.用户指南的编写要求 (1)统一采用编写工具Word进行编写。 (2)用统一的风格和确定的方法,描述产品提供的所有功能。描述之后的功能,应该具有如下特点:对于每一项功能的描述应该完整。 (3)术语部分包括系统术语和基本概念。系统术语在整个系统的含义是统一的,放在前言部分描述。基本概念在各有关章节进行描述。 (4)语言要简洁明快,表达准确。一句话不要太长,中间可以断句几次。 (5)指南格式应统一。

  38. 软件实现文档 • 3.用户指南的排版建议 (1).2人以上合作编写,一定要有一人负责统稿。 (2).交稿前一定要最后一次仔细审读。 (3).图以章为序,如图5.1或图5-1(半字线连接章号和图号)。 (4).表以章为序,如表3.1或表3-2。 (5).命令格式。操作步骤中使用的命令按钮、菜单命令项、标签项等名称用【】界定。如:打开【开始】菜单选择【程序】项…… (6).例题格式。例题以章为序,并用【】界定。如【例3.5】或【例3-5】。

  39. 软件实现文档 • 4.用户指南的编写原则 (1)列出应编制文档的目录。 (2)提示编制文档应参考的标准。 (3)指定文档管理员。 (4)提供编制文档所需要的条件,落实文档编写人员、主管和所需经费以及编制工具等。 (5)明确保证文档质量的方法,为了确保文档内容的正确性、合理性,应采取一定的措施,如评审、审稿、鉴定等。 (6)绘制进度表,以图表形式列出各阶段应产生的文档、编制人员、编制主管、编制日期、完成日期、评审日期等。

  40. 软件实现文档 • 5.用户指南的审核鉴定 为了保证文档的质量以及文档内容的正确性、合理性,软件工程管理部门应对用户指南进行评审和鉴定工作,提出改进意见,有利于整个文档质量的提高。 • 6.软件实现管理文档 软件实现管理文档包括《用户指南评审报告》,《模块源程序行统计表(行/模块名)》,《源程序工作量统计表(行/人天)》。这些管理文档均较简单,作为习题,由读者自己完成。

  41. 4.6 本章小结 • 对于有经验的程序员来说,只要《详细设计说明书》设计合理、制作规范、评审通过(不符合项为零),软件实现是一件轻松愉快的事情。若IT企业十分成熟,积累的软件财富丰厚,类库、构件库强大,规范和标准齐全,软件过程管理到位,那么软件实现更加简单。 • 按照本章介绍的软件实现方法、程序设计风格、屏幕界面控件设计、窗口级定义、系统级定义、帮助信息和用户指南编写等各种规范,就可以逐步实现《详细设计说明书》的内容,使企业走上规范化的经营之路。

  42. 思考题 8 • 8.1 软件实现的输入/输出是什么? • 8.2 “面向对象实现”的目标是什么? • 8.3 软件实现要做的工作包括哪几项? • 8.4 软件实现方法的细节有哪些? • 8.5 简述良好的程序设计风格的内容。 • 8.6 界面设计应遵从哪些原则? • 8.8 用户使用手册包括哪些内容? • 8.9 用户安装手册包括哪些内容? • 8.10 面向对象程序设计的特点是什么?它与面向过程程序设计有何差异? • 8.12 请设计出《系统管理员手册》的格式与内容。

More Related