唐杨烱.唐昭武校尉曹君神道碑有这样的记载:“托无愧之铭,跋涉载劳於千仞,访他山之石,东西向逾万里。”诚所谓:它山之石,可以攻玉。
一、关于详细设计说明书
最近在准备一个项目的详细设计说明书。编制详细设计说明书的目的,在于说明一个软件系统各个层次中的每一个程序 (每个模块或子程序)的设计。详细设计基于需求调研分析成果和概要设计成果编制,是系统开发、测试、验收等项目过程的重要指导文件。也不难理解,为什么在电视剧生产量最大的中国,很多导演或演员总会叹息:没有好本子。 确实,一个好本子,可以让一个名不见经传的演员一炮走红;一个垃圾本子,则可能让一个很红的实力派演员被人称为奶油小生。
自然,也就会归结到我们的系列话题:互联网产品设计。详细设计说明书用来指导设计人员、开发人员、工程人员、测试人员更好地完成相关工作。文档的颗粒度越高,越有利于直接指导开发人员进行实现。
详 细设计是考验技术专家设计思维的重要关卡,详细设计说明书应当把具体的模块以最“干净”的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最大。一 份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析 到概要设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。当然, “胸中有丘壑”者例外。
做产品设计之前,可以在浏览器中输入 http://file.baidu.com ,在出现的浏览器界面中,再输入“详细设计说明书”,你会有许多意想不到的收获,没准你会轻松理解某个大型社区的详细设计。
一个典型的参考目录
这是一个典型的参考目录。
三、简明扼要的书写
说明书确实要尽量全,但不能因为“全”而忽略了条理性。篇幅所限,这里列举一个比较直观的实例。
为了说明“学生信息查询模块”,可以遵循以下步骤。
第一,功能流程图。如下图所示。
第二,功能描述。如下所示。
(1) 功能类型:查询数据
(2) 功能概述:显示查询结果
(3) 前提业务:无
(4) 后继业务:
(5) 功能约束:没有约束;
(6) 约束描述:
(7) 操作权限:面向所有用户
动作编号 | 动作名称 | 动作描述 |
A01 | 确定 | 点击按钮 提交数据到图书查询数据处理.jsp页面 |
A02 | 图书信息查询 | 点击按钮 将页面转至图书信息查询.jsp页面 |
第四,模块内部逻辑,如下所示。
01. Search.jsp用于显示界面的内容,给用户显示一个查询接口
02. Index.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;
在index.jsp页面中,
它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过<jsp:include page=”<%= ……%>”/>,利用jsp:include标签来被动态加载发送到相应页面;
03. List.jsp 用来显示查询到的结果列表。
04. View.jsp用来显示查询到的学生的各项属性。
序号 | 字段 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | XSID | 学生编号 | Int | 10 | 1 | √ | 自动编号 | |||
2 | Name | 姓名 | nvarchar | 10 | ||||||
3 | Sex | 性别 | nvarchar | 2 | √ | |||||
4 | ZJH | 证件号码 | nvarchar | 25 | √ | |||||
5 | LXDH | 联系电话 | nvarchar | 40 | √ | |||||
6 | DJRQ | 登记日期 | datetime | 8 | √ | |||||
7 | YXQZ | 有效期至 | datetime | 8 | √ | |||||
8 | YJSS | 已借书数 | smallint | 2 | √ | |||||
9 | RuleID | 学生规则ID | int | 10 | ||||||
10 | ZT | 是否挂失 | nvarchar | 2 | √ |