软件开发文档主要功能有3个:

1)开发前理清思路

2)开发中和开发后跟踪模块功能

3)为后来提供辅助说明

 

近来越来越提倡敏捷开发,有时会放弃文档。感觉如果没有丰富的开发经验,最好还是按部就班的来。

开发文档是要写的,但不宜太过繁琐反而成为负担。传统的开发文档太过详细,个人感觉是过犹不及,我所提倡的开发文档是开发者向的,属于用尽量简洁的方式去描写最关键的要点和补充说明,一方面扩展大脑缓存,另外一方面对设计等各方面的思路有一个总体的记录。这和现下越来越快的开发节奏并不矛盾。

 

开发文档主要分为3个层次:

1)需求分析

需求分析的最终目的是得出软件要做的所有功能性描述和非功能性描述。你可以写上背景或者市场调查之类的辅助信息来说明这些需求的出处,但如果从开发人员的角度上而言,这些没有任何意义。

 

2)高层设计文档

高层设计文档负责描绘软件的结构图、模块划分、模块的公共接口以及流程图。总而言之,说明这个软件是怎么工作的。这个文档可以作为多组合作编程的依据。

 

3)低层设计文档

这份文档我把它看做是注释的延伸。它负责详细记录模块下每个独立功能是如何工作的,包括对于私有变量/方法的描述、缓存处理等细节问题。在功能结构不复杂、代码自我解释良好的情况下,这份文档是可以省略的,或者说,可以被注释完美代替。

这么说是因为一方面,独立功能大部分是由单人或者联系紧密的小组完成,没有太多必要去专门记录这些别人不在意、自己都明了的问题(注意要点可以写注释)。另外一方面,阅读代码的能力是基本功,我相信都到这个层面的,花力气写个文档还不如把代码写得优雅些更加利于后来人理解。

 

经历有限,目前的体会就是这些。网上分享写文档经验的文章比较少,还望抛砖引玉,共同探讨。