标题：软件开发文档
简介
软件开发文档是软件开发使用和维护中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。
软件文档可以分为开发文档和产品文档两大类。 
开发文档包括：《功能要求》、《投标方案》、《需求分析》、《技术分析》、《系统分析》、《数据库文档》、《功能函数文档》、《界面文档》、《编译手册》、《 QA 文档》、《项目总结》等。 产品文档包括：《产品简介》、《产品演示》、《疑问解答》、《功能介绍》、 《技术白皮书》、《评测报告》。用户文档《安装手册》、《使用手册》、《维护手册》、 《用户报告》、《销售培训》等。 
开发文档
1. 《功能要求》 -- 来源于客户要求和市场调查，是软件开发中最早期的一个环节。客户提出一个模糊的功能概念，或者要求解决一个实际问题，或者参照同类软件的一个功能。有软件经验的客户还会提供比较详细的技术规范书，把他们的要求全部列表书写在文档中，必要时加以图表解说。这份文档是需求分析的基础。
2. 《投标方案》 -- 根据用户的功能要求，经过与招标方沟通和确认，技术人员开始书写《投标方案》，方案书一般包括以下几个重要的章节： 前言 -- 项目背景、公司背景和业务、技术人员结构、公司的成功案例介绍等。 需求分析 -- 项目要求、软件结构、功能列表、功能描述、注意事项等。 技术方案 -- 总体要求和指导思想、技术解决方案、软件开发平台、网络结构体系等。 项目管理 -- 描述公司的软件开发流程、工程实施服务、组织和人员分工、开发进度控制、软件质量保证、项目验收和人员培训、软件资料文档等。 技术支持 -- 公司的技术支持和服务介绍、服务宗旨和目标、服务级别和响应时间、技术服务区域、技术服务期限、授权用户联系人等。 系统报价 -- 软、硬件平台报价列表、软件开发费用、系统维护费用等。 项目进度 -- 整个项目的进度计划，包括签署合同、项目启动、需求分析、系统分析、程序开发、测试维护、系统集成、用户验收、用户培训等步骤的时间规划。
3. 《需求分析》 -- 包括产品概述、主要概念、操作流程、功能列表和解说、注意事项、系统环境等。以《功能要求》为基础，进行详细的功能分析 ( 包括客户提出的要求和根据开发经验建议的功能 ) ，列出本产品是什么，有什么特殊的概念，包括那些功能分类，需要具备什么功能，该功能的操作如何，实现的时候该注意什么细节，客户有什么要求，系统运行环境的要求等。这里的功能描述跟以后的使用手册是一致的。
4. 《技术分析》 -- 包括技术选型、技术比较、开发人员、关键技术问题的解决、技术风险、技术升级方向、技术方案评价，竞争对手技术分析等。以《需求分析》为基础，进行详细的技术分析 ( 产品的性能和实现方法 ) ，列出本项目需要使用什么技术方案，为什么，有哪些技术问题要解决 ，估计开发期间会碰到什么困难，技术方案以后如何升级，对本项目的技术有什么评价等。
5. 《系统分析》 -- 包括功能实现、模块组成、功能流程图、函数接口、数据字典、软件开发需要考虑的各种问题等。以《需求分析》为基础，进行详细的系统分析 ( 产品的开发和实现方法 ) ，估计开发期间需要把什么问题说明白，程序员根据《系统分析》，开始在项目主管的带领下进行编码。
6. 《数据库文档》 -- 包括数据库名称、表名、字段名、字段类型、字段说明、备注、字段数值计算公式等。以《系统分析》为基础，进行详细的数据库设计。必要时可以用图表解说，特别是关系数据库。
7. 《功能函数文档》 -- 包括变量名、变量初植、功能，函数名，参数，如何调用、备注、注意事项等。以《系统分析》为基础，进行详细的说明，列出哪个功能涉及多少个函数，以便以后程序员修改、接手和扩展。 
8. 《界面文档》 -- 包括软件外观、界面素材、编辑工具、文件名、菜单、按钮和其它界面部件的要求，这里与软件完成后的运行界面是一致的。 
9. 《编译手册》 -- 包括服务器编译环境、操作系统、编译工具、 GNU 的 C++ 编译器版本信息、目录说明、程序生成、源程序文件列表、 Makefile 配置及其相关程序的对应关系列表。客户端的编译过程、编译结果、编译示例、编译环境、操作系统、编译工具、源文件列表和制作安装程序的过程。 
10. 《 QA 文档》 -- 包括产品简介、产品原理、产品功能列表、功能描述、功能流程、执行结果、数据库结构、测试要求等，提供给软件测试人员使用。 
11. 《项目总结》 -- 包括项目简介、项目参与人员和开发时间、项目风险管理过程、项目功能列表、项目结构特点、技术特点、对项目的升级建议、对以后的项目的建议、人员素质情况等。 
产品文档
1. 《产品简介》 -- 包括公司背景、产品概念、适用范围、产品功能、功能特点、运行要求和公司联系地址。 
2. 《产品演示》 -- 包括公司简介、产品背景、产品描述、产品特点、产品作用、适用范围、使用分析、功能模块、解决问题、合作伙伴、成功案例等。一般用 Power point 或者 VCD 录制软件实现。 
3. 《疑问解答》 -- 列出用户关心的问题和处理方法。用于解答软件的操作功能和解决用户的疑难问题。 
4. 《功能介绍》 -- 以《需求分析》为书写基础，包括软件介绍、软件结构、功能列表、功能描述和公司联系地址。 
5. 《技术白皮书》 -- 以《技术分析》为书写基础，包括功能实现、技术选型、关键技术问题的解决、技术方案特点、技术升级方向等。 
6. 《评测报告》 -- 第三方权威评测报告。包括评测目的、评测范围、评测环境、评测内容、实测数据、性能表现、结果分析和评测总结等。 
7. 《安装手册》 -- 包括系统环境、运行平台、产品安装过程、初始环境设置、安装记录等。 
8. 《使用手册》 -- 包括产品简介、功能列表、功能描述和解释、功能操作、客户服务和联系方式等。 
9. 《维护手册》 -- 包括产品简介、系统须知、初始环境设置、系统配置、数据管理和备份、技术问题解答和联系方式等。 
10. 《用户报告》 -- 包括产品简介、购买时间、使用目的、使用时间、使用地点、实施过程、出现问题和解决、产品总结和建议等。 
11. 《销售培训》 -- 包括项目简介、产品功能、产品特点、商业优势、系统运行环境、适用范围、目标客户等。
参考：中国审计信息网
软件开发文档
第一、需求分析文档[1]
什么是用户需求分析文档呢？也就是在和客户进行沟通时，把用户所要求的信息记录下来，根据用户的要求进行需求分析，规划出我们要开发的软件所要实现哪些功能。
第二、概要设计文档[1]
概要设计：顾名思义，就是对我们所要开发的软件进行一个整体的概括，把这个软件所包含的功能模块作一个设计，以后我们在开发的时候就有目标，有方向了。
第三、系统设计文档[1]
系统设计，就是对概要的一个详细的实施，就是分析我们所要开发软件各大功能模块中所包含的小模块，把这些小模块都一一列举出来，然后再对软件开发人员进行有条理的进行开发任务的分配。
第四、详细设计文档[1]
详细设计文档，主要是把我们每个小模块，小功能的业务逻辑处理用文字的方式表达出来，让程序员在编码的时候有一个依据和参照；同时，在进行详细文档设计的时候，有的软件公司也会根据不同的项目作出相应的《软件开发代码规范》[2]性文档。以保障我们所做工作的统一性。
第五、软件测试文档[1]
当我们参照软件详细设计文档编码完成后，接着就会根据我们所实现的功能，进行软件测试文档的编写；大多测试文档有两类，一类是软件单体测试文档，一类是软件结合测试文档；顾名思义，单体测试：就是对软件中每个小的方法，一个独立的方法进行测试的文档；结合测试：就是把多个功能模块组合到一起进行测试，主要是为了检测每个功能模块之前的交互性和功能的结合实现性。
第六、软件完成后的总结汇报型文档[1]
不管所开发软件的规模大小，在一个软件开发结束后，我们都会把开发过中的问题和项目开发总结一起记录下来，以防以后在开发过程中再有类似问题出现，提高我们的开发效率。
根据软件开发公司的规模、标准和客户的需求不同，[1]开发文档的种类和数量也不同，我在这里和大家讨论的软件开发相关文档都是最基础的；在软件行业有一句话：一个软件能否顺利的完成并且功能是否完善，重要是看这个软件有多少文档，软件开发文档是一个软件的支柱，如果你的开发文档漏洞百出，那么你所开发出来的软件也不可能会好；开发文档的好坏可以直接影响到所开发出来软件的成功与否。