方法/步骤
-
第一章是引言。
描述软件需求规格说明书的纵览,帮助读者理解文档如何编写并且如何阅读和理解,包含五个部分:
1.1 编写目的
//对产品(项目)进行定义,在该文档中详尽说明这个产品的软件需求,包 //括修正或发行版本号。如果这个软件需求规格说明书只与整个系统的一 //部分有关,那么只定义文档中说明的部分或子系统。
1.2 文档约定
//描述编写文档时所采用的标准或排版约定,包括正文风格,提示区或重 //要符号。例如,说明高层需求的优先级是否可以被所有细化分需求所继 //承,或者每个需求陈述是否都有优先级。
1.3 读者对象和阅读建议
//列举软件需求规格说明书所针对的不同读者,例如开发人员、项目经理、 //营销人员、用户、测试人员等。描述文档中剩余部分的内容及其组织结 //构。提出最适合每一类读者阅读文档的建议。
1.4 项目范围
//提供对指定的软件及其目的的简短描述,包括利益和目标。把软件与企业 //目标或业务策略相联系。可以参考项目范围文档,而不是将其内容复制到 //这里
1.5 参考资料
//列举编写软件需求规格说明书时所参考的资料或其它来源。可能包括用户 //界面风格指导、合同、标准、系统需求规格说明书,用户需求、相关产品 //的软件需求规格说明书。这里应给出详细的信息,包括标题名称、作者、 //版本号、日期、出版单位或资料来源,以方便读者查阅这些文献。
-
第二章是总体描述。包含六个部分:
2.1 产品前景
//描述软件需求规格说明书中所定义的产品的背景和起源。说明该产品是否 //是产品系列中的下一个成员,是否是成熟产品所改进的下一代产品,是否 //是现有应用程序的替代品,或者什邡市一个全新的产品。
//如果软件需求规格说明书定义了大系统的一个组成部分,那么就要说明这 //部分软件是怎样与整个系统相关联的,并且要定义出两者之间的接口。建 //议使用系统结构图或者实体关系图表示
2.2 产品的功能
//概述产品所具有的主要功能,详细内容在第4节描述,所以这里只需要概括 //总结,例如用列表的方法给出。很好地组织产品的功能,使每个读者都易 //于理解。用图形表示主要的需求分组以及它们之间的联系。
//建议使用数据流程图(DFD)的顶层图或者类图来实现图形化
2.3 用户类及其特征
//确定可能使用该产品的不同用户类并描述它们相关的特征。有一些需求可 //能只与特定的用户类相关。将该产品的重要用户类与那些不太重要的用户 //类区分开
2.4 运行环境
//描述软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件 //组件或者与其共存的应用程序。
2.5 设计和实现上的约束
//确定影响开发人员自由选择的问题,并说明这些问题为什么成为一种限
//制。可能的限制包括:
//◆必须使用或者避免的特定技术、工具、编程语言、数据库
//◆经费、进度、资源等方面的限制
//◆所要求的开发规范或标准
//◆企业策略、政府法规或工业标准
//◆硬件限制,例如定时需求或存储器限制
//◆数据转换格式标准
//◆其它
2.6 假设和依赖
-
第三章是系统功能。需要列出每个功能点,每个功能点包含以下三个方面:
3.X.1 描述和优先级
3.X.2 请求/响应序列
3.X.3 功能性需求
//详细列出提交给用户的软件功能,用户可以使用所提供的功能执行服务 //或者使用所指定的用例执行任务。并且描述产品如何响应可预知的出错 //条件或非法输入或动作。
-
第四章是外部接口需求。包含四个部分:
4.1 用户界面
//陈述所需要的用户界面。描述每个用户界面的逻辑特征。以下是可能要 //包括的一些特征:
//◆将要采用的用户界面标准或产品系列的风格
//◆屏幕布局或解决方案的限制
//◆将出现在每个屏幕的标准按钮、功能或导航链接
//◆快捷键
//◆错误信息显示标准
//对于用户界面的细节,例如特定对话框的布局,建议写入一个独立的用 //户界面规格说明中,不要写入软件需求规格说明书中
4.2 硬件接口
//描述系统中硬件每个接口的特征。可能包括支持的硬件类型、软硬件之间 //交流的数据和控制信息的性质以及所使用的通信协议
4.3 软件接口
//描述产品与其它外部组件的连接,包括数据库,操作系统,工具库和集成 //的商业组件。明确并描述在软件组件之间交换数据或信息的目的,描述所 //需要的服务及内部组件通信的性质,确定将在组件之间共享的数据。如果 //必须用一种特殊的方法来实现数据共享机制,那么就必须把它定义为一种 //实现上的限制
4.4 通信接口
//描述与产品所使用的通信功能相关的需求,包括电子邮件、WEB浏览器、 //网络通信标准或协议及电子表格等,定义相关的信息格式、规定通信安全 //或加密问题、数据传输速率和同步通信机制
-
第五章是其他非功能性需求。包含四个部分:
5.1 性能需求
//阐述不同的应用领域对产品性能的需求,并解释它们的原理以帮助开
//发人员做出合理的设计选择。确定相互合作的用户数或者所支持的操 //作,响应时间以及与实时系统的时间关系;还要定义容量需求,例如存 //储器和磁盘空间的需求或者存储在数据库中表的最大行数。也可能需要
//针对每个功能需求或特性分别陈述其性能需求
5.2 安全性需求
//陈述与系统安全性、完整性相关的需求,包括产品创建或使用的数据保 //护。明确产品必须满足的安全性或保密性策略。
5.3 软件质量属性
//详细陈述与客户或开发人员至关重要的质量特性。这些特性必须是确定 //的、定量的并可检验的。至少应指明不同属性的相对侧重点。
5.4 其它需求
//定义至今未出现的需求。例如国际化需求、法律上的需求、有关操作、管 //理、维护、安装、配置、启动、关闭、修复、容错、监控等等方面的需求
-
第六章是数据字典。包含两个部分:
6.1 实体关系图
6.2 实体定义
-
第七章是业务规则与业务算法:
7.1业务规则
//列举出有关产品的所有操作规则。例如什么人在特定环境下可以进行何种 //操作。这些规则不是功能需求,但它们可以暗示某些功能需求执行这些规 //则。业务规则的范例如下图所示:
7.2算法说明
//用于实施系统计算功能的公式和算法的描述,类似于业务规则。如神州行
//套餐的计费标准说明。
//a.每个主要算法的概况;
//b.用于每个主要算法的详细公式。
-
文档的最后是附录部分,包括:
附录A:分析模型(包括涉及的数据流图、类图、状态转换图)
附录B:待确定问题的列表
附录C:编写文档的原则
END