一、是什么
在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。
二、为什么
如今软件的功能性能越来越丰富和智能化,因而软件开发也越来越复杂和多样化。当我们震撼于某款软件的同时,也要明白该软件工程是如何的完善和规范。软件项目管理的成败是控制开发成本的关键环节。“罗马不是一天建成的”,这里面,少不了贯穿其中的重要步骤——软工文档。
软工文档是计算机软件的重要组成部分,在开发人员、维护人员、管理人员、用户和计算机之间起着重要de桥梁作用。文档是记载软件历史的语言,也是很好的技术交流工具。良好的系统文档,有助于完成软件的移植或将软件转移到各种新的系统环境中去。开发系统很容易,后期的维护工作才是一个优秀的开发团队应该考虑的问题。文档在后期维护中也起到了不可忽视的作用。
三、分类
软件系统的文档可以分为三类:用户文档、开发文档和管理文档三类。
四、什么时候写
五、怎么写
1、可行性分析报告
内容:说明软件在经济上技术等方面的可行性
目的:评述为了合理地达到开发目标而可能选择的各种方案等等
2、软件需求说明书
内容:所开发软件的功能性能用户界面以及运行环境等做出详细说明
目的:方便用户、分析人员和软件设计人员进行理解和交流。支持目标系统的确认。控制系统进化过程
3、项目开发计划
内容:合理安排各个阶段的任务分工、并制定风险分析;将任务进行分解,人员进行分工。
目的:主要是为了给开发系统做主要的规划和整合,在开发过程中起到引导作用,以及给在使用者提供简单的说明
4、数据要求说明书
内容:确定各项功能和非功能性需求实现时所需要的数据
目的:为概要设计、详细设计、数据库设计提供设计依据。
5、数据库设计文档
内容:给出数据逻辑描述和数据采集的各项要求,说明项目的数据库设计、结构情况;主要包括外部设计,结构设计、运用设计等
目的:为生成和维护系统的数据文件做好准备
6、概要设计文档
内容:说明系统的功能分配、模块划分、程序的总体结构、输入输出及接口设计、运行设计、数据结构设计和出错处理设计等
目的:明确建议开发软件的大体的设计方向,为详细设计奠定基础
7、详细设计文档
内容:详细的列出开发的方式,如何编写代码等内容,着重描述功能模块是如何实现的,包括算法和逻辑流程等
目的:为了系统软件的开发途径和应用方法,以求开发者在最短的时间高效的开发并完成该系统。
8、测试计划
内容:列出测试方案和预期的测试结果等
目的:站在客户的角度,对设计人员提供BUG依据,方便查找项目中的BUG
9、测试分析报告
内容:列出一些测试过程中共性的问题
目的:发现软件更多的错误,根据测试计划进行各种测试,并详细的将测试结果详细的解释清楚,以后的开发做个经验的积累
10、项目开发总结报告
内容:对系统进行大的总结,说明实际取得的开发结果以及对整个开发工作的各个方面的评价,说明项目的工作流程,工程开发中状况,最终结果,经验教训等
11、用户手册
内容:详细描述软件的功能性能和用户界面,简单说就是说明你的系统如何使用
目的:让未使用过此系统用户看到这个文档时,能在最短的时间内,可以高效的使用本系统。
12、操作手册
内容:为操作员了解软件的运行情况和操作方法知识。
目的:使使用者正确有效的使用该系统功能
13、维护文档
内容:详细描述存在的问题、修改的考虑以及修改的影响估计等
14、开发进度月报
内容:项目经理根据当前开发系统的进度填写和总结
目的:为项目组长掌握开发进度提供最可靠的依据,高效的完成软件的开发,并为项目的开发总结报告提供各项依据。
六、个人感受
刚开始写文档的时候,不知道怎么写,写什么,写到什么程度才算好。但是还是上百度搜罗万家文档,囫囵吞枣写了一遍。有以下几点反思:
①战线拉得太长。导致机房的功能模块等跟文档脱轨,代码设置、界面设计等等都快忘了。
②文档是在机房收费完成之后才开始写的。这样就根本没有起到文档的作用,从需求分析开始,就本末倒置了。
③生搬硬套文档模板。没有认真分析文档,完全按照机房收费的功能模块生硬的填写到文档中。