软件文档可以分为开发文档和产品文档两大类,交付用户还有用户文档。
1|1开发文档
- 软件开发计划
- 需求规格说明书
- 软件概要设计说明
- 数据库设计说明
- 软件详细设计说明
- 可执行程序生成说明
- 软件测试计划
- 软件测试说明
- 软件测试报告
- 安装部署手册
- 源代码交付说明
- 上线部署方案
- 上线部署实施报告
- 软件终验测试方案
- 软件终验测试报告
1|2产品文档
- 产品简介
- 产品演示
- 疑问解答
- 功能介绍
- 技术白皮书
- 评测报告
1|3用户文档
- 安装手册
- 使用手册
- 维护手册
- 用户报告
- 销售培训
2|0开发文档的具体要求
2|11 软件开发计划
(一) 文档内容要求
1.引言
1.1标识
本条应包含本文档的完整标识,以及本文档适用的系统和软件的完整标识,包括标识号、标题、缩略词语、版本号和发行号。
1.2系统概述
本条应简述本文档适用的系统和软件的用途,应描述系统和软件的一般特性;概述系统开发、运行和维护的历史;标识项目的业主方、用户、承建方、监理方等;标识当前和计划的运行现场等。
1.3文档概述
概述本文档的用途和内容,并描述与其使用有关的保密性和私密性的要求。
1.4与其他计划之间的关系
描述本计划和其他项目管理计划的关系。
1.5输入基线
给出编写本项目开发计划的输入基线,如业务需求说明书等。
2.引用文件
2.1应列出本文档引用的所有文档的编号、标题、修订版本、日期和来源。
3.项目范围及约束条件
3.1 交付产品
列出本项目的交付产品成果,包括软件程序、交付文档等,以及各交付成果的交付期限。
3.2 业务需求和约束条件
分条阐述项目的业务需求和约束条件;
3.3 其它方面的需求和约束条件
分条阐述其它方面的约束,如项目进度要求、保密性等。
3.4 项目目标
综述项目进度目标、成本目标、质量目标。
4.项目总体计划
4.1软件开发过程和里程碑
描述要采用的软件开发过程。计划应覆盖论及它的所有合同条款,确定已计划的开发阶段(适用)、目标和各阶段要执行的软件开发活动。
里程碑设置分条阐述里程碑/阶段名称、期限、里程碑标志说明(进入条件和输出)、评审方式等。
提供一张工作产品矩阵表,描述各工作产品的编号、名称、产生阶段、评审方式等。工作产品包括各阶段产生的过程文档和技术文档等,是工作任务分解和配置管理计划制定的重要依据。
4.2软件开发方法
描述或引用要使用的软件开发方法,包括为支持这些方法所使用的手工、自动工具和过程的描述。
4.3软件产品标准
描述或引用在表达需求、设计、编码、测试用例、测试过程和测试结果方面要遵循的标准和要求。对要使用的各种编程语言应提供编码标准。
4.4 评审途径
阐述软件内部评审的方式,以及需方或授权代表(总集、监理)实施软件产品和活动评审的途径和方式。
4.5软件配置管理
描述针对本项目所采用和遵循的软件配置管理方法.包括配置项的标识、控制、状态统计、审核、交付等。 具体的配置项识别和管理可在配置管理计划中另文给出。
4.6软件质量保证
描述针对在本项目所采用和遵循的软件质量保证方法。包括软件质量保证评估、软件质量保证记录和处理、第三方独立性保证等。质量保证计划也可另文给出。承建方应在计划中落实下述内部审核和检查工作:
软件计划审核:在软件计划编制阶段结束后必须进行软件计划审核,以确保在软件开发计划、软件配置管理计划、软件质量保证计划中所规定的计划的合适性。
软件需求审核:在软件需求分析阶段结束后必须进行软件需求审核,以确保在软件需求规格说明中所规定的各项需求的合适性。
软件概要设计审核:在软件设计结束后必须进行软件设计的审核,以评价软件概要设计说明、数据结构设计说明中所描述的软件设计在总体结构、外部接口、主要部件功能分配、全局数据结构以及各主要部件之间的接口等方面的合适性;以及在数据结构、功能、算法和过程描述等方面的合适性。
软件详细设计、编码阶段的审核:在软件详细设计和编码实现完成之后要对软件详细设计说明、软件测试计划、软件测试说明(含软件测试用例)、目标程序生成说明进行审核,以确认业主方的业务需求是否得到满足,验证软件需求规格说明中的需求是否已由软件设计说明描述的设计实现,软件设计说明表达的设计是否已由编码实现。
出厂测试审核:在完成出厂测试之后要对源代码交付验证说明、软件测试报告(含源代码交付验证报告)以及按照合同要求应提交给业主方的所有文档(如:软件用户手册等)进行审核,以评价待交付的程序及文档的质量是否满足出厂交付要求、覆盖了业主方的业务需求、做好了交付准备。
部署审核:在配合监理方和业主方完成测试工作后承建方进入系统部署阶段,在完成软件部署并配合完成系统联调联试后,要对部署实施报告进行审核,以验证部署实施的真实性以及外部接口的正确性。
4.7问题跟踪和处理(更正活动)
描述软件更正活动中要遵循的方法,包括不同阶段的问题发现、纪录、报告、处理、审核和更正流程,问题/bug跟踪系统的选用等。须论及出厂测试、需方验证测试、试运行三个阶段。
4.8 档案收集
阐述作为承建方在项目进行过程中进行自身档案收集管理的方法,包括纸质档案。
5.项目估算及进度计划
5.1 工作任务分解
分解项目工作任务,得出工作任务分解结构(WBS)。
5.2 规模估算
估算项目规模,如需新编的代码行数、文档页数等。
5.3 工作量估算
根据规模估算及项目经验,估算项目工作量。
5.4 进度计划
在工作任务分解结构(WBS)、工作量估算的基础上,进行活动排序、资源分配,进而编制进度计划甘特图,标识各活动的依赖关系、资源分配情况、起止时间等。
5.5风险估计及应对方法
逐条给出识别的风险及其风险估计量化指标(可能性、严重性等级)、相应的对策和缓解方案。建议以列表的方式给出。
6.项目跟踪与变更管理
6.1 项目日常跟踪
阐述项目日常跟踪方法,包括由业主方和授权代表(监理方)参与的项目跟踪。
6.2 里程碑评审
阐述或引用项目各里程碑评审的方法。
6.3 变更管理
包括计划变更、需求变更等的处理流程、机制和方法。
7.项目组织和资源
7.1项目组织
本条应描述本项目要采用的组织结构,包括涉及的组织机构、机构之间的关系、执行所需活动的每个机构的权限和职责。
7.2项目资源
本条应描述适用于本项目的资源。 主要包括:
a.人力资源,分条说明投入此项目的人员、职责、投入阶段、地理位置和涉密程度等;
b. 开发人员要使用的设施,包括执行工作的地理位置、要使用的设施、保密区域和运用合同项目的设施的其他特性;
c.为满足合同需要,需方应提供的设备、软件、服务、文档、资料及设施及需要提供的时间。
8.内部培训
根据项目的技术要求和项目成员的情况,确定是否需要进行项目培训,并制订培训计划。如不需要培训,应说明理由。
注解
本章应包含有助于理解本文档的一般信息(例如原理)。本章应包含为理解本文档需要的术语和定义,所有缩略语和它们在文档中的含义的字母序列表。
附录
附录可用来提供那些为便于文档维护而单独出版的信息(例如图表、分类数据)。为便于处理,附录可单独装订成册。附录应按字母顺序(A, B等)编排。
(二)内容审核要点:
1.项目范围阐述与合同及其附件要求等是否一致;
2.工作任务分解与项目范围/需求是否一致;
3.工作任务分解、工作量估计和活动进度安排是否合理;
4.计划内容是否包括软件项目管理的各个必要的方面;
5.工作产品定义是否包含需方所要求的各相关必要文档;
6.组织机构和人力资源安排和分配是否合理并符合合同相关要求;
7.项目日常跟踪管理是否具有可操作性;
8.项目开发过程中的问题/bug处理机制是否具有可操作性;
9.档案收集管理是否具有可操作性。
10.是否制定了合适的配置管理策略和质量保证策略。
2|22 软件需求规格说明书
(一)文档内容要求
1 引言
1.1 编写目的
说明编写这份用户需求说明书的目的,指出预期的读者范围。
1.2 范围
说明系统的业务范围以及功能界限的划分。
1.3 术语和缩略语
提供此文档中用到的专门术语的定义和缩写词的原词组。
1.4 参考资料
列出此文档所参考的文档。这些文档可以是合同、标准、指南、和其他的用户需求说明书。
2 需求概述
2.1 项目背景
提供对项目的整体描述。如果此文档定义的项目是一个更大的项目的一个构件,应提供同更大项目或系统的关系和这个项目会提供的功能。并且提供和明确两者之间的关系。
2.2 操作环境
描述使软件运行的运行环境。给出了软件运行所需的硬件平台、操作系统和软件平台等细节。
如果功能/子模块/子项目涉及仅仅是整体的产品/项目、硬件/软件环境的子集,也在这里指出。
2.3 设计和实现限制
包括客户在所采用的技术和运行环境等方面的特定要求,以及其它影响开发人员自由选择的问题,必要时说明原因。
2.4 假设、依赖和外部风险
明确在准备此文档时所做的假设和外部依赖条件,这些假设会影响需求的状态。
对外部项目或软件的接口服务的依赖条件也可在这里说明。
明确客户应该会关心的外部风险,如:第三方供应的软件和硬件应该准时送到、所依赖软件是否按时提供等等。
对需求优先等级的定义也需要给出。
3 功能需求
以下详细描述系统功能需求。如果需要,用例图及其描述可以作为附录。功能点、子功能或功能可以指定缺省优先级。
3.1 <功能名称1>
所有的功能名、子功能名、功能点都需要以某种全文档唯一的方式进行编号,以备审核、设计、实现、测试时引用。功能、子功能都要规定优先等级。
3.1.1 功能概述
对本功能进行概要描述。如有需要,可用结构图来描述本功能中各模块的结构关系。
3.1.2 相关业务流程
根据需要,提供相应的业务流程图。
3.1.3 <子功能名称1>
3.1.3.1 子功能描述
对子功能作文字描述。如果需要,对子功能流程进行流程描述,并提供子功能业务流程图。
3.1.3.2 <功能点1>
对于每一功能点,需要具体描述其各种需求,由下列部分组成,可以以表格的形式给出:
a.功能点编号
b.功能点描述
具体描述该功能点所提供的功能。
c.操作
这里说明用户要求的常规的和特殊的操作。
d.输入
描述该功能的所有输入数据,如输入源、数量、度量单位、时间设定和有效输入范围等。
e.输出
详细描述该功能的所有输出数据,如输出目的地、数量、度量单位、时间关系、有效输出范围、非法值的处理、出错信息等。
f.业务表单
如果需要,描述该模块所涉及的业务表单。
g. 处理或算法
定义获得预期输出结果的全部操作,包括输入数据的有效性检查、操作的顺序、异常情况的响应、把输入转换成相应输出的方法、输出数据的有效性检查等。
f. 数据库要求
如果需要,指出对于数据库表设计方面的要求
3.1.3.3 <功能点2>功能需求
……
3.1.4 <子功能名称1>功能需求
……
3.2 <功能名称2>功能需求
……
4 外部接口需求
所有接口都必须提供唯一标识。
4.1 用户接口
提供用户使用软件产品时的接口需求。例如,如果系统的用户通过显示终端进行操作,