XXX 软件需求规格说明书(模版)
注:以下各章节内的蓝色字和红色字为说明,提交正式说明书时请删除。
1 前言(本部分需要 write from scratch)
本章提供整个 SRS 的综述。
1.1 目的
简要描绘编写该 SRS 的目的,并说明该 SRS 的预期读者
1.2 范围
用一个简明扼要的名字标识将开发的软件产品,比如:管理系统、报表生成系统
等等;
解释该软件产品能做和不能做的事情;
描述该软件系统应用之后所能带来的收益、目标等;
1.3 术语表
对 SRS 中所用到的一些非通用的、专业的术语进行解释说明,以消除歧义,目的是帮助
读者(客户、软件设计人员、测试人员等)理解;
对 SRS 中所用到的缩写给出解释;
可采用表格的形式:
术语名称(缩写)
术语全称
含义
1.4 参考文献
列举出编写 SRS 是所参考的资料或其它资源;
对每一项资源给出详细的信息,包括标题、作者、版本号、出版日期、出版地点/组织等;
给出每一项资源的来源,以便于读者查阅;
可能的信息来源:国家政策、法规;行业法规;组织内部的规章制度;专业领域的教材;
学术论文;其他类似软件系统的需求规格说明书;软件工程的国家规范;等等。
2 整体描述(本部分来源于 CP2、CP3 的提交物)
2.1 产品描述(来源于 CP2 的“业务需求”和 CP3 的顶层 DFD,但需要补充)
描述 SRS 中所定义的产品的背景和起源;
描述该产品的市场定位与目标客户;
描述客户的“业务需求”;
1
说明该产品是否是下述情况之一:
1) 产品系列的成员
2) 成熟产品所改进的下一代产品
3) 现有应用程序的替代品
4) 新产品
如果该系统只是其它大系统的一个组成部分,则需要说明这部分软件是如何与整个系统
相关联的,并且定义出二者之间的接口。
使用顶层 DFD,来描述该系统与其他系统的关系。
2.2 用户分类及其功能需求(来源于 CP2 的“角色分类”、“功能需求”)
确定可能使用该产品的不同用户类别;
针对每一类用户,概述其对该产品的功能需求;
每一个功能的详细描述将在第三部分给出,这里只需概略的总结;
2.3 功能需求(来源于 CP3 的 0 层 DFD,但需补充)
对 2.2 中给出的各项功能,按照相关联的紧密程度进行分组,将系统划分为若干个子系
统。
用图形表述主要的功能分组以及它们之间的联系(0 层 DFD)。
然后,对每个子系统给出简要陈述。
2.4 非功能需求(来源于 CP2 的“非功能需求”)
列出用户提出的各类非功能需求,如性能、安全性等。
此处不可简略,应详细思考用户到底在哪些非功能方面具有想法。
2.5 设计与实现上的约束(来源于 CP2 的“设计约束”)
描述限制开发人员自由选择的问题,并说明这些问题为什么成为一种约束。
可能的约束包括:
• 必须使用或者避免的特定技术、工具、编程语言和数据库;
• 所要遵循的开发规范或标准;
• 企业策略、政府法规、行业标准;
• 硬件限制;
• 数据转换格式标准;
• 与其他系统之间的接口;
• 审计要求;
2.6 运行环境(来源于 CP2 的“设计约束”)
• 描述软件的运行环境,包括:
• 硬件平台
• 操作系统和版本
• 其他相关联的软件系统
2
2.7 业务规则(来源于 CP2 的“业务规则”)
列出用户提出的各类业务规则。
2.8 未来的需求(from scratch)
列出将在未来的升级版本中才可能支持的需求。
3 需求描述
本章应包括软件需求工程师所了解的全部需求细节,也是 SRS 中片幅最大和最重要的部
分。
3.1 结构化需求分析(来源于 CP3 的 1-n 层 DFD、数据字典、结构化语言)
(根据“2.3 产品功能”中所列出的各个子系统来组织本节)
3.1.1 子系统 1
3.1.1.1 数据流图(DFD)
此处的 DFD 是对 0 层 DFD 中每一个加工的进一步分解得到的 1 层 DFD;
3.1.1.2 外部实体
说明 DFD 中每个外部实体的含义
3.1.1.3 加工过程
输入数据流
内部处理逻辑(结构化英语、判定树)
输出数据流
3.1.1.4 数据流
此处用数据字典的形式加以定义;
3.1.1.5 数据存储
此处用数据字典的形式加以定义数据存储的具体数据属性、名称与含义、数据属性
表示方式等。
3.1.2 子系统 2
…
3.1.3 子系统 n
3.2 面向对象的需求分析(本部分来源于 CP4 的提交物)
3.2.1 用例图
给出用例图,对每一个 use case 写出详细描述。
3.2.1.1 用例 1
3.2.1.2 用例 2
…
3.2.1.3 用例 n
3.2.2 静态结构模型
3.2.2.1 分析类图(简化)
3.2.2.2 分析类图(详细)
给出图形;对每一个边界类和控制类进行说明,解释每一个操作的作用;
3.2.2.3 领域类图(类及其之间的关系)
3
给出图形;对每一个实体类进行说明,解释每一个属性和操作的含义与作用;
3.2.3 动态行为模型
给出时序图,并用文字进行详细描述。
3.2.3.1 用例 1 的时序图
3.2.3.2 用例 2 的时序图
…
3.2.3.3 用例 n 的时序图
3.3 外部接口需求(本部分来源于 CP2 的“外部接口需求”,但需细化之)
确定产品与外部环境要素之间的接口信息,主要包括:
• 硬件接口:包括可能支持的硬件类型、软硬件之间交换的数据和控制信息的性质、
所使用的通信协议、端口号、指令集等;
• 软件接口:包括与 DB、OS、其他软件系统之间的连接,描述每一个软件系统的名
称、版本号等,以及该系统与每一个其他系统之间交换数据或消息的目的、数据等;
• 通讯接口:描述与产品所使用的通信功能相关的需求,如网络通信标准或协议等,
定义消息格式、规定安全或加密方案、数据传输率等。
3.4 数据模型(可选,需使用数据库课程的知识)
用 E-R 或 IDEF1x 模型的形式描述系统中所用到的信息实体及其之间的联系,并用文字
简要说明图中的各数据要素。
4