ISO需求规格说明书1.前言前言提出了对软件需求规格说明书自身的纵览,有助于读者阅读和理解本文档。1.1.目的描述编写本需求规格说明书的目的。如:对*软件产品进行定义,在该文档中详细定义了这个产品的软件需求。如果这个需求规格说明书只针对整个系统的一部分进行描述,那么就是对文档中说明的部分或子系统进行定义。1.2.背景待开发软件产品/项目系统的名称;产品/项目的任务提出者、用户、开发者;该产品与外部系统或组织结构的关系。1.3.目标1.4.读者和阅读建议列出软件需求规格说明书所针对的不同读者,描述本文档的剩余部分的组织结构和针对于每一类型读者的阅读建议。1.5.应用范围对要进行开发的软件产品或项目的目的的简短描述,把该软件产品或项目与应用环境中用户的业务范围及运营方式等进行联系。1.6.定义、缩写、略语、约定给出文档中一些专业词语的定义;对文档中使佣的一些缩写及略语进行解释;对文档中采用的一些标准、排版风格、提示及特殊符号的含义进行说明。1.7.参考资料列出编写文档时所参考的资料和其他资源。可能包括合同、各种规范标准、用户界面的快速原型、其他的在项目(产品)开发过程中已经发布的文档。提供的信息应能指导读者方便的查阅这些资料及资源,包括标题、作者、版本、日期、出版单位或资料来源等。2.系统概述对系统(模块)要实现的功能进行全面的描述。本节要描述的内容可能包括:1.用户类型描述要进行的软件产品或项目的最终使用者范围、类型及特点。2.产品功能概述产品所要具有的主要功能,详细的描述将在下面的章节继续。3.假设和依赖描述软件运行时的一些前提条件和对软件运行时的各种支持环境的一些假设。4.其他对要开发的产品的宏观描述根据系统的实际结构,可以分多个子章节对系统中的模块、子模块进行阐述。3.系统结构全面描述系统的模块结构,并附以相应的图表(如:系统模块结构图)说明,每个模块应有明确的定义和范围的详细说明。通过框图描述每个系统模块及他们之间的关系。如果有与系统特性相关的外部功能模块,也应在框图中说明这些外部功能模块。本节中描述的各功能模块及他们之间的接口必须在本文档或其他相关文档(如:独立的系统接口说明书)中有详细的说明。4.扩展特性当系统中存在一些隐含的需求时,在此描述对系统隐含需求的扩展。5.系统软件需求本节说明每个功能模块的功能需求,每个模块都应有对应的详悉的软件需求规格说明。5.1.标5.2.识号命名5.3.规范此节定义分配到软件的系统功能组件的标识号的命名规范。标识号的命名规范为:(class)-{field1{-field2{…}}}.seq。1.Class表示功能组件的类型、性质、重要性或优先级,可根据软件的实际情况定义。如:P:首要功能,必须实现;I:重要功能,但不必马上实现;S:建议功能,不是客户提出的。2.{field1{-field2{-…}}}根据软件的实际情况自行定义。3.seq需求功能项流水号。如:P-secure.login.001,表示系统安全模块中的登录功能项,该功能项为首要功能,流水号为001。5.4.{系统模块名5.5.称}系统功能模块名称,标识号。本节说明在该模块中要通过软件实现的功能特性。针对不同的软件产品或项目,开发小组可以对本节的内容进行调整,建立自己的文档内容结构及层次。6.系统接口需求(可选)系统接口由两部分组成,包括外部接口和内部模块接口。如果系统中的接口比较复杂,且内容较多,可以形成独立的系统接口说明书做为本文档地补充。6.1.系统外部接口描述本系统与外部其他系统的接口要求。6.2.系统模块接口描述系统内部各模块之间的接口。7.系统环境需求描述软件的运行环境相关因素。包括硬件平台和软件平台的支持。描述硬件平台及软件平台上影响开发人员自由选择的限制,这些限制可能包括:1.必须使用或避免使佣的技术、工具、语言、软件等;2.要求遵守的开发规范或标3.准;4.法律法规、行业标5.准等;6.硬件限制(如:硬件集成由其他组织进行)7.1.硬件平台描述系统中每个模块的硬件功能需求,每个模块都应有详细的硬件功能需求,若所有模块的硬件需求都相同,则只需列出整个系统的硬件需求。对硬件需求的描述可以描述为系统或模块中需要通过硬件实现的功能特性,以及实现这些特性的硬件需求。7.2.软件平台描述系统及各个模块运行所需要的操作系统平台、版本、其他的软件组件、应用程序、应用服务等环境支持。8.其他非功能需求(可选)这部分列举系统中所有非功能性的需求,包括:1.性能需求:描述在目标应用领域中对软件产品性能方面的要求。如:可能存在的用户数量,存储器或磁盘空间的要求,数据库中的容量,对用户操作请求的响应时间等。2.健壮性需求:描述系统中可能发生的异常或将导致异常的不稳定因素,定义必须采取的预防措施和补救方案。确定软件产品必须遵守的安全标准、策略或规则。如:“当并发访问的用户数超过100时,对后来的用户报系统繁忙的信息”。3.安全性需求:陈述与系统的安全、完整、保密相关的问题,这些问题将会影响软件的使用及使用过程中创建的数据的保护。描述系统中必须满足的安全性需求,定义用户身份确认或授权需求。如:“当用户访问某表(或某模块的数据时,必须将访问的动作、访问的数据等相关数据写入安全日志)”。4.质量特性:详细描述对用户和开发人员至关重要的质量特性。这些特性必须是确定的、定量的、可验证的,并指出系统对这些特性的侧重点。下表列出从用户和开发者角度考虑的一些质量特性。对用户重要的质量特性对开发者重要的质量特性有效性(availability)可维护性(maintainability)高效性(efficiency)可移植性(portability)灵活性(flexibility)可重用性(reusability)完整性(integrity)可测试性(testability)互操作性(interoperability)可靠性(reliability)健壮性(robustness)可用性(usability)产品的不同部分对质量特性会有不同的要求。5.业务规则:描述软件产品所要遵守的用户业务的行业规则。如果已经存在明确的行业规则文件,在此进行列表引用。6.用户文档:列出将与软件一同发行的用户文档部分。如:用户手册、在线帮助、教程等。确定所有已知的用户文档的交付格式或规范。9.追溯表说明软件需求规格说明书与其上级需求文档之间的对应关系。需求功能追述表地格式待定。