大多数人都不太喜欢写文档,我也不例外。它不像写代码,立竿见影,总能时不时给你带来点成功的喜悦。写文档的时候,我努力在标准的模板里留下自己的语言文字,可是就这么个简单的工作,我却常常感到力不从心。如同在一个陌生的话题讨论中,让我插上几句话。结果呢,没有共同语言,格格不入。我想,一个重要的原因是大家没有设身处地地把自己当成一个看文档的人,而是仅仅沉浸在写文档,更准确地说是在编文档当中。
如果把这个原因剖析一下,能不能说明我们还是没有把“为人民服务”放在心里呢?在写的时候,我们有没有以读者的身份去审视自己的文档哩?
如果换一种眼光去看编写文档的过程,它不愧是一个又一个的为我们精心安排,让我们应接不暇的“私人订制”。如果我们换做是看文档的人,那么我们将会成为“软件公司老板”,“项目经理”,“架构师”,“工程师”,“高级维护人员”……,这不是提前圆了我们的梦了吗?
因为没有这样的态度,自己写出的文档难怪这么的形式主义和空洞。
按师傅的话说:
文档中要放实实在在的东西(每个角色最需要看到的东西);
不要说废话,尽量保证每句话都有意义,无意义的不要写进去;
如果不能保证这两点,就不能保证文档的可读性和质量。
以上,可以说是我们在写文档的时候,应该站在的高度和应该具备的态度。
接着,就该说说具体的方面了。
看了师傅的《浅谈文档》,我知道对于软件工程中的一些工具(图,表,语言等),我放置的不够准确。可能是我对他们还不太理解。
现把各个阶段应该有的图做个总结。
阶段 |
工具 |
文档 |
计划 |
甘特图(进度安排) |
项目开发计划 |
需求分析 |
数据流图DFD,数据字典DD,IPO图(判定树,判定表),原型图,用例图,用例说明, |
软件需求规格说明书 |
概要设计 |
结构图(变换型和事务型),界面,架构图(粗粒度) |
概要设计说明书 |
详细设计 |
图:程序流程图,N-S图,PAD图,包图(架构图),类图(类图说明,方法,参数),接口,时序图 表格:判定表 语言工具:PDL(伪码) |
详细设计说明书 |
数据库设计 |
表,表结构,视图,SQL语句,脚本注释,数据库关系图 |
数据库设计说明书 |
测试 |
测试用例 |
测试计划 |
使用 |
修改历史,界面描述 |
用户手册 |
备注:
- IPO图就是用来说明每个模块的输入、输出数据和数据加工的重要工具。
- IPO图的主体是算法说明部分,该部分可采用结构化语言、判定表、判定树,也可用N-S图、问题分析图(PAD)和过程设计语言(PDL)等工具进行描述,要准确而简明的描述模块执行的细节。
- 在IPO图中,输入、输出数据来源于数据词典(DD)。局部数据项是指个别模块内部使用的数据,与系统的其它部分无关,仅由本模块定义、存贮和使用。注释是对本模块有关问题作必要的说明。
- 上述的一些图如甘特图,原型图等都有专门的用于绘制它们的软件。