(完整版)需求规格说明书模板4种版本

上传人:guoxi****anyue 文档编号:48369725 上传时间:2022-01-04 格式:DOC 页数:20 大小:159KB
收藏 版权申诉 举报 下载
(完整版)需求规格说明书模板4种版本_第1页
第1页 / 共20页
(完整版)需求规格说明书模板4种版本_第2页
第2页 / 共20页
(完整版)需求规格说明书模板4种版本_第3页
第3页 / 共20页
资源描述:

《(完整版)需求规格说明书模板4种版本》由会员分享,可在线阅读,更多相关《(完整版)需求规格说明书模板4种版本(20页珍藏版)》请在装配图网上搜索。

1、需求规格说明书(ISO标准版)编者说明: 当需求调查、分析工作告一段落时,你就需要将这些需求进行规格化描述,整理成文,即软件需求规格说明书, 也就是 SRS。这是在软件项目过程中最有价值的一个文档。ISO 所提供的标准虽然已经时间久远,但还是颇具参考价值的。1引言1.1 编写的目的说明编写这份需求说明书的目的 ,指出预期的读者。 1.2 背景a.待开发的系统的名称 ;b.本项目的任务提出者、开发者、用户;c.该系统同其他系统或其他机构的基本的相互来往关系。1.3 定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4 参考资料列出用得着的参考资料。 2任务概述2.1 目标叙述该系

2、统开发的意图、 应用目标、 作用范围以及其他应向读者说明的有关该系统 开发的背景材料。解释被开发系统与其他有关系统之间的关系。2.2 用户的特点列出本系统的最终用户的特点, 充分说明操作人员、 维护人员的教育水平和技术专长,以及本系统的预期使用频度。 2.3 假定和约束列出进行本系统开发工作的假定和约束。3需求规定3.1 对功能的规定用列表的方式, 逐项定量和定性地叙述对系统所提出的功能要求, 说明输入什么量、 经怎么样的处理、 得到什么输出, 说明系统的容量 ,包括系统应支持的终端数和应支持的 并行操作的用户数等指标。 3.2 对性能的规定3.2.1 精度 说明对该系统的输入、输出数据精度的

3、要求,可能包括传输过程中的精度。 3.2.2 时间特性要求说明对于该系统的时间特性要求。 3.2.3 灵活性说明对该系统的灵活性的要求,即当需求发生某些变化时,该系统对这些变 化的适应能力。 3.3 输入输出要求 解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对系统的数据输出及必须标明的控制输出量进行解释并举例。 3.4 数据管理能力要求(针对软件系统)说明需要管理的文卷和记录的个数、 表和文卷的大小规模, 要按可预见的增长对数 据及其分量的存储要求作出估算。 3.5 故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要 求。 3.6 其他专门

4、要求如用户单位对安全保密的要求, 对使用方便的要求, 对可维护性、 可补充性、 易读 性、可靠性、运行环境可转换性的特殊要求等。 4运行环境规定1)设备列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:1)处理器型号及内存容量2)外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量3)输入及输出设备的型号和数量,联机或脱机;4)数据通信设备的型号和数量5)功能键及其他专用硬件 2)支持软件列出支持软件,包括要用到的操作系统、编译程序、测试支持软件等。3)接口说明该系统同其他系统之间的接口、数据通信协议等。4)控制说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来

5、源。软件需求规格说明书(RUP版)编者说明:如果在需求分析时采用了用例(Use case)技术,那么该需求规格说明书将更加符合你的需要。当然,你也可以结合 Volere 需求规格说明书对该模板进行必要的修改。4.3.1文档概述 该部分主要是对软件需求规格说明书文档进行基本的描述,包括该文档的目的、 范围、术语定义、参考资料以及概要。 软件需求规格说明书用来系统、完整地记录系统的软件需求。该软件需求说明书的基 础是用例分析技术。因此该文档中应包括用例模型、补充规约等内容。1)目的在此小节中, 主要对软件需求规格说明书的目的做一概要性说明, 通常软件需求规 格说明书应详细地说明应用程序、子系统的外

6、部行为,还要说明非功能性需求、设计约 束,以及其它的相关因素。 1)范围系统是有范围的, 而不是无限扩展的, 对于无限扩展的需求是无法进行描述的。 因 此,在本小节应该对该说明书所涉及的项目范围进行清晰的界定。指定该规格说明书适 用的软件应用程序、特性或者其它子系统分组、其相关的用例模型。当然在此也需要列 出会受到该文档影响的其它文档。 1)定义、首字母缩写词和缩略语与其它文档一样, 该文档也需要将本文档中所涉及的所有术语、 缩略语进行详细的 定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个 文档中都重复很多内容。 1)参考资料在这一小节中, 应完整地列出该文档引用

7、的所有文档。 对于每个引用的文档都应该 给出标题、标识号、日期以及来源,为阅读者查找这些文档提供足够详细的信息。 1)概述在本小节中, 主要是说明软件需求规格说明书各个部分所包含的主要内容,就像一个文章摘要一样。同时也应该对文档的组织方式进行解释。 4.3.2整体说明在本节中,将对整个软件需求进行总体性的描述,以期让读者对整个软件系统的需求 有一个框架性的认识。 也就是说, 该节中主要包括影响产品及其需求的一般因素, 而不列举 具体的需求。主要包括产品总体效果、产品功能、用户特征、约束、假设与依赖关系、需求 子集等方面的内容。 2)用例模型在本小节中, 将列出该软件需求的用例模型, 该模型处于

8、系统级, 对系统的特性进 行宏观的描述。在此应该列出所有的用例和 Actor 的名称列表,并且对其做出简要的说 明,以及在图中的各种关系。 2)假设与依赖关系在软件系统的开发过程中, 存在许多假设和依赖关系。 在本小节中应列举出所有的 重要的技术可行性假设、子系统或构件可用性假设,以及一些可行性的假设。4.3.3具体需求如果说第二章节是框架,那么本节就是血肉。在本节中,应该详细列出所有的软件需 求,其详细程序应使设计人员能够充分理解并且进行设计的要求, 同时也应该给予测试人员 足够的信息, 以帮助他们来验证系统是否满足了这些需求。 整个需求的组织可以采用用例描 述进行。 3)用例描述如果你使用

9、用例建模技术, 那么你已经通过用例定义了系统的大部分功能性需求和 一些非功能性需求。因此,在软件需求规格说明书只需将这些具体的用例描述,整理在 一起,全部放在该小节之中。当然也可以将用例描述做为附件,在此列出引用,只是这 样做并不利于阅读。建议在组织形式上采用以“软件需求”为线索,在每个需求中,填 入对应的 1 个或几个用例描述。 3)补充需求由于用例毕竟主要针对功能性需求, 因此还会有一些其它的补充需求遗漏, 因此在 本小节中就是将这些东西补充出来。这些补充需求大部分集中在非功能需求之上,包括 以下几个方面的内容: 1) 易用性:例如指出普通用户和高级用户要高效地执行某个特定操作所需的培训

10、时间; 指出典型任务的可评测任务次数; 或者指出需要满足的可用性标准 (如 IBM 的 CUA 标准、 Microsoft 的 GUI 标准。2) 可靠性:包括系统可用性(可用时间百分比、使用小时数、维护访问权、降纸 模式操作等) ;平均故障间隔时间( MTBF ,通常表示为小时数,但也可表示 为天数、月数或年数) ;平均修复时间( MTTR ,系统在发生故障后可以暂停 运行的时间) ;精确度(指出系统输出要求具备的精密度、分辨率和精确度) ; 最高错误或缺陷率(通常表示为 bugs/KLOC ,即每千行代码的错误数目或 bugs/function -point ,即每个功能点的错误数目) ;

11、错误或缺陷率 (按照小错误、 大错误和严重错误来分类:需求中必须对“严重”错误进行界定,例如:数据 完全丢失或完全不能使用系统的某部分功能) 。3) 性能:包括对事务的响应时间(平均、最长) ;吞吐量(例如每秒处理的事务 数);容量(例如系统可以容纳的客户或事务数) ;降级模式 (当系统以某种形 式降级时可接受的运行模式) ;资源利用情况:内存、磁盘、通信等。4) 其它:包括用户界面要求、联机帮助系统要求、法律许可、外购构件,以及操 作系统、开发工具、数据库系统等设计约束。4.3.4支持信息 支持信息用于使软件需求规格说明书更易于使用。它包括:目录、索引、附录等。 计算机软件需求说明编制指南(

12、国标版)编者说明: 软件需求规格说明是十分重要的文档, 因此为开发团队提供一份详细的编制指南是十分 有意义和必要的。 本文档就是一个编制指南的例子, 你可以根据该指南, 结合自己的实际情 况进行修改。1引言1)目的和作用 本指南为软件需求实践提供了一个规范化的方法。本指南不提倡把软件需求说明(Software Requirements Specifications,以下简称 SRS)划分成等级,避免把它定义成 更小的需求子集。本指南适用对象:1) 软件客户(Customers),以便精确地描述他们想获得什么样的产品。2) 软件开发者( Su ppliers ) ,以便准确地理解客户需要什么样的

13、产品。 对于任一要实现下列目标的单位和(或)个人:1 )要提出开发规范化的 SRS 提纲;2) 定义自己需要的具体的格式和内容;3) 产生附加的局部使用条款,如SRS 质量检查清单或者 SRS 作者手册等。SRS 将完成下列目标:1 ) 在软件产品完成目标方面为客户和开发者之间建立共同协议创立一个基础。对要实现的软件功能做全面描述, 帮助客户判断所规定的软件是否符合他们的要 求,或者怎样修改这种软件才能适合他们的要求;2) 提高开发效率。编制 SRS 的过程将使客户在设计开始之前周密地思考全部需求,从而减少事后重新设计、重新编码和重新测试的返工活动。在SRS 中对各种需求仔细地进行复查,还可以

14、在开发早期发现若干遗漏、错误的理解和不 一致性,以便及时加以纠正;3) 为成本计价和编制计划进度提供基础。SRS 提供的对被开发软件产品的描述, 是计算机软件产品成本核算的基础,并且可以为各方的要价和付费提供依据。 SRS 对软件的清晰描述,有助于估计所必须的资源,并用作编制进度的依据;4) 为确认和验证提供一个基准。 任何组织将更有效地编制他们的确认和验证计划。作为开发合同的一部分,SRS 还可以提供一个可以度量和遵循的基准(然而,反之则不成立,即任一有关软件的合同都不能作为SRS。因为这种文件几乎不包括详尽的需求说明,并且通常不完全的) ;5) 便于移植。有了 SRS 就便于移值软件产品,

15、以适应新的用户或新的机种。客 户也易于移植其软件到其他部门, 而开发者同样也易于把软件移植到新的客户;6) 作为不断提高的基础。由于 SRS 所讨论的是软件产品,而不是开发这个产品的设计。因此 SRS 是软件产品继续提高的基础。虽然SRS 也可能要改变,但是原来的 SRS 还是软件产品改进的可靠基础。2)范围本指南适用于编写软件需求规格说明,它描述了一个 SRS 所必须的内容和质量, 并且在第 6 章中提供了 SRS 大纲。2引用标准GB 8566 计算机软件开发规范GB 8567 计算机软件产品开发文件编制指南GB/T 11457 软件工程术语3定义GB/T 11457 所列术语和下列定义适

16、用于本指南。合同( contract ):是由客户和开发者共同签署的具有法律约束力的文件。其中包括产 品的技术、组织、成本和进度计划要求等内容。客户( customer ):指个人或单位,他们为产品开发提供资金,通常(但有时也不必) 还提出各种需求。文件中的客户和开发者也可能是同一个组织的成员。语言( language ):是具有语法和语义的通信工具,包括一组表达式、惯例和传递信息 的有关规则。分割( partitioning ):把一个整体分成若干部分。开发者( supplier ):指为客户生产某种软件产品的个人或集团。在本指南中,客户和 开发者可能是同一个组织的成员。用户( user )

17、:指运行系统或者直接与系统发生交互作用的个人或集团。用户和客户通 常不是同一些人。4.编写 SRS 的背景信息5.1 SRS 的基本要求SRS 是对要完成一定功能、 性能的软件产品、 程序或一组程序的说明。 对 SRS 的描 述有两项基本要求:5.1.1必须描述一定的功能、性能;5.1.2必须用确定的方法叙述这些功能、性能。5.2 SRS 的环境必须认识到 SRS 在整个软件开发规范(见 GB 8566)所规定的有关阶段都起作用。 正因为如此, SRS 的起草者必须特别注意不要超出这种作用的范围。这意味着要满足下 列要求:5.1.1.1SRS 必须正确地定义所有的软件需求;5.1.1.2除设计

18、上的特殊限制之外, SRS 中一般不描述任何设计、 验证或项目管理细节。5.3 SRS 的特点5.1.3.1 无歧义性 当且仅当它对每一个需求只有一种解释时, SRS 者是无歧义的。2.%2 要求最终产品的每一个特性用某一术语描述;3.%2若某一术语在某一特殊的行文中使用时具有多种歧义,那么对该术语的每 种含义作出解释并指出其适用场合。需求通常是用自然语言编写的,使用自然语言的SRS 起草者必须特别注意消除其需求的歧义性。提倡使用形式化需求说明语言。5.1.3.2完整性如果一个 SRS 能满足下列要求,则该 SRS 就是完整的:1) 包括全部有意义的要求,无论是关系到功能的、性能的、设计约束的

19、,还 是关系到属性或外部接口方面的需求;2) 对所有可能出现的输入数据的响应予以定义, 要对合法和非合法的输入值 的响应做出规定;3)要符合 SRS 要求。如果个别章节不适用,则在SRS 中要保留章节号;4) 填写 SRS 中的全部插图、 表、 图示标记和参照, 并且定义全部术语和度量 单位。5.2.1关于使用“待定”一词的规定 任何一个使用“待定”的 SRS 都是不完全的。1) 若万一遇到使用“待定”一词时,作如下处理:? 对产生“待定”一词的条件进行描述,使得问题能被解决;? 描述必须干什么事,以删除这个“待定” ;2)包含有“待定”一词的任何 SRS 的项目文件应该:? 标识与此特定文件

20、有关的版本号或叙述其专门的发布号;? 拒绝任何仍标识为待定” 一词的SRS 章节的许诺。5.1.3.3 可验证性当且仅当 SRS 中描述的每一个需求都是可以验证的,该 SRS 才是可以验证的;当且仅当在某一性能价格比可取的有限处理过程,人或机器能通过该过程检查软 件产品能否满足需求时,才称这个需求是可以验证的。5.1.3.4 一致性当且仅当 SRS 中各个需求的描述是不矛盾时SRS 才是一致的。5.1.3.5 可修改性如果一个 SRS 的结构和风格在需求有必要改变时是易于实现的、完整性的、一致的,那么这个 SRS 就是可以修改的。可修改性要求SRS 具备以下条件:1) 具有一个有条不紊的易于使

21、用的内容组织,具有目录表,索引和明确的交 叉引用表;2) 没有冗余。即同一需求不能在 SRS 中出现多次。? 冗余本身不是错误,但是容易发生错误。冗余可增加SRS 的可读性,但是在一个冗余文件被更新时容易出现问题。例如:假设一个明确的 需求在两个地方详细列出,后来发现这个需求需要改变,若只修改一 个地方,于是 SRS就变得不一致了。? 不管冗余是否必须,SRS 一定要包含一个详细的交叉引用表,以便 SRS具备可修改性。5.1.3.6 可追踪性 如果每一个需求的源流是清晰的,在进一步产生和改变文件编制时,可以方便地引证每一个需求,则该 SRS 就是可追踪的。建议采用如下两种类型的追踪:1) 向后

22、追踪(即向已开发过的前一阶段追踪) 。根据先前文件或本文件前面 的每一个需求进行追踪。2) 向前追踪(即是向由 SRS 派生的所有文件追踪)。根据 SRS 中具有唯一的 名字和参照号的每一个需求进行追踪。当 SRS 中的一个需求表达另一个需求的一种指派或者是派生的,向前、向后 的追踪都要提供。例如:1) 从总的用户响应时间需求中分配给数据库操作响应时间;2) 识别带有一定功能和用户接口的需求的报告格式;3) 支持法律或行政上需要的某个软件产品(例如,计算税收)。在这种情况下,要指出软件所支持的确切的法律或行政文件。当软件产品进入运行和维护阶段时, SRS 的向前可追踪性显得特别重要。当 编码和

23、设计文件作修改时,重要的是要查清这些修改所影响的全部需求。5.1.3.7 运行和维护阶段的可使用性SRS 必须满足运行和维护阶段的需要,包括软件最终替换。1) 维护常常是由与原来开发无联系的人来进行的。局部的改变(修正)可以借助于好的代码注释来实现。对于较大范围的改变。设计和需求文件是必 不可少的,这里隐含了两个作用:? 如 435 条指出,SRS 必须是可修改的;? SRS 中必须包括一个记录,它记录那些应用于各个成分的所有具体条 文。例如:它们的危急性(如故障可能危及完全或导致大量财政方面 和社会方面的损失) ;它们仅与暂时的需要相关 (如支持一种可立即恢 复原状的显示) ;它们的来源(如

24、某功能是由已存在的软件产品的全部 拷贝复制而成) 。1)要求在 SRS 中清楚地写明功能的来源和目的,因为对功能的来源和引入该功能的目的不清楚的话,通常不可能很好地完成软件的维护。5.4 SRS 的编制者软件开发的过程是由开发者和客户双方同意开发什么样的软件协议开始的。这种协议要使用 SRS 的形式,应该由双方联合起草。这是因为:5.3.1客户通常对软件设计和开发过程了解较少,而不能写出可用的SRS;5.3.2开发者通常对于客户的问题和意图了解较少,从而不可能写出一个令人满意的 系统需求。5.5 SRS 的改进 软件产品的开发过程中,在项目的开始阶段不可能详细说明某些细节,在开发过程中可能发现

25、 SRS 的缺陷、缺点和错误之类的问题,所以可能要对SRS 进行改进。在 SRS 的改进中,应注意如下事项:1)尽管可以预见校正版本的开发以后不可避免,而对需求还必须尽可能完全、清 楚地描述。2)一旦最初识别出项目的变化,应引入一个正式的改变规程来标识、控制、追踪和报告项目的改变。批准了的需求改变,用如下的方法编入SRS 之中:? 提供各种改变后的正确的、完全的审查记录;? 允许对 SRS 当前的和被替代部分的审查。5.6 SRS 的编制工具编制 SRS 最显而易见的方法是用自然语言来描述。 尽管自然语言是丰富多彩的, 但 不易精确,用形式化的方法较好。6.1形式化说明方法在 SRS 中是否使

26、用形式化方法要依据下列因素:6.1.1程序规模和复杂性;6.1.2客户合同中是否要求使用;6.1.3SRS 是否是一个合同工具或仅仅是一个内部文件;6.1.4SRS 文件是否成为设计文件的根据;6.1.5具有支持这种方法的计算机设备。6.2生产工具 软件产品生产中有多种生产工具。比如,计算机的字处理器就是非常有用的生产辅助工具。一个 SRS 通常有若干作者。可能经历若干版本,并且要进行多次 重新组织内容。故生产工具是必要的。6.3表达工具在 SRS 中有许多词汇,特别是许多名词和动词,专门涉及到系统的实体和许多活动,所以表达 SRS 需要若干工具。比如:6.2.1可以验证实体或活动,无论在 S

27、RS 中什么地方都是同一名字。2)可以标识一个特殊的实体或动作在规格说明中的描述位置。 此外,可以使用若干种形式化方法,以便允许自动处理 SRS 内容,只要作某 些限制就可以做到:用一些表格或图示法来显示需求。 用详细分层体系自动检查 SRS 的需求,这里每一个分层自身是完全的,但是 也可以扩展为下一层,或是上一层的一个组成成分。自动检查 SRS 具有在 4.3 条描述的部分或全部特点。5 软件需求SRS 中每一个软件需求是要求开发软件产品的某些基本功能和性能的一个陈述。6.2.4表达软件需求的方法 软件需求可以用若干种方法来表达:1)通过输入、输出说明;2) 使用代表性的例子;3) 用规范化

28、的模型。1)输入、输出说明 用输入输出序列来描述一个软件产品所要求的特性是很有效的。1)途径 根据被描述的软件的性质,至少有三种不同的途径:1) 有些软件产品(如报表系统)要求着重说明输出。一般情况下,致力于输 出的系统主要是在数据文卷上操作。 用户的输入通常是致力于提供控制信 息和启动数据文卷的处理;2) 有些软件产品需要着重说明输入、输出特性。关注输入、输出的系统主要 是在当前的输入上操作,要求生成与输入相匹配的输出(类似于数据转换 例行程序或一个数学函数包) ;3) 还有一些系统(如过程控制系统)要求记忆它们的状态。可以根据本次输 入和上一次输入进行应答。也就是说,它的行为如同一个有限状

29、态机。在 此种情况下,既要关注输入 /输出对,又要关注这些输入 /输出对的次序。2)困难 多数软件产品可能接收无限的序列作为输入,于是,为了通过输入输出序列 完整地说明产品的特性,就要求 SRS 包括一个无限长的输入和所需的输出充列。 然而,用这样的途径不可能完整地描述软件所要求的一切特性。2)典型例子 一种选择是用典型例子来说明要求的特性。 例如,假设一个系统中当接收 “0” 时用“ 1”来回答。显然,要列出全部输入和输出序列是不可能的。然而,用典型的序列可以十分清楚地理解系统的特性。下面是一组四种对话的典型的例子,用 它描述系统特性。0101 01010101010101 010101 这

30、些对话仅提供了要求的输入和输出之间的关系,但是不能完全描述系统的特性。3)模型 另一种表达需求的方法是模型的方式, 这是表达复杂需求的精确和有效方法。至少可以提出三种可供使用的通用模型:数学型、功能型、计时型。应注意区别 各种模型的应用场合,参考 5.1.3.5。6.3.1数学模型 数学模型是使用数学关系描述软件特性的模型。数学模型对某些特殊应用领 域是特别有用的。例如,导航、线性规划、计量经济、信号处理和气象分析等。用数学模型能够对 5.1.2 中所讨论的典型例子描述如下: (01)*。这里,“ *”号表示括号内的字符串可以重复一次或多次。6.3.2功能模型 功能模型是提供从略语以输出映象的

31、模型。象有限状态机或 Petri网,这些 功能模型可以有助于标识和定义软件的各种特点,或者可以表示系统所要进行的 操作。对前面用数学模型描述的例子。可用图 1 所示的有限状态机形式的功能模型 来描述。图中进入的箭头表示启动状态。双线的方框表示接收状态。在各线记号 x/y 的含义是: x 代表接受的输入,而 y 是产生的输出。6.3.3计时模型 计时模型是一种增加了时间限制的模型。这种模型对于表达软件特性的形式 和细节特别有用。尤其是实时系统或考虑人为因素的系统。计时模型可以把下列限制加到图 1 的模型中去:1 )激活因素 0 将在进入 S1 状态 30S 之内出现;2)响应 1 将在进入 S2

32、 状态 2S 之内出现。6.3.4其他模型除了上面提及的模型外。 对一些特殊的应用还有一些特别有用的模型。 例如, 编译程序的说明可以使用属性文法,工资单系统可以使用表格。要注意的是,对 SRS 使用形式需求语言,通常含有使用特殊模型的意思。6.3.5警告无论使用哪一类型的模型,都要在SRS 中或在 SRS 涉及到的一个文件中对它严格定义。这个定义应该规定:1)模型中的参数所要求的范围;2)使用时的限定值;3)结果的精确度;4)负载的能力;5)要求的执行时间;6)缺省或失败时的响应。必须注意,在需求的定义域内要保持一个模型定义。每当一个SRS 使用一个模型时:1 )它意味着此模型提供一个十分有

33、效和精确的方法说明需求; 2)并不意味着软件产品的实现必须基于这个模型。一个模型用于解释文件所写的需求是有效的,但是对于实际软件的实现可能 并不是最适宜的。6.3.1.5软件需求的注释 有关软件产品的所有需求,并不是同等重要的。某些需求可能是基本的,例如是对 于生命攸关的应用。而另一些可能并不那么重要。SRS 中每一个需求必须进行注释,以便区别其重要的程度。有这种方法注释需求,可以:3.1.1.1帮助客户对每个需求给予更周密的考虑,通常可以在需求中澄清隐藏的假设;3.1.1.2帮助开发者做出正确的设计决定,并对软件产品不同部分作出相应的努力。3.1.1.7稳定性 注释需求的一种方法是使用稳定性

34、量纲。当一个需求在软件预期的生存期间内描述不改变的话,可以认为该需求是稳定的,否则可以认为是易变的。3.1.1.8必要性等级 注释的另一种方法是把需求分成必须保证级、期望级和任选级。5)必须保证是指软件必须和这些需求相一致,否则该软件不可能被接受;6)期望是指这些需求将提高软件产品的功能,但如果缺省的话也是可接受;7)任选是给开发者一个机会, 可以提供某些超出SRS 规定的目标。3.1.1.9注意事项 在注释需求之前,必须彻底理解这种注释的实质性含义。6.3.1.5在表达需求时遇到的共同弊病SRS 的基本点是它必须说明由软件获得的结果,而不是获得这些结果的手段。编写 需求的人必须描述的基本问题

35、是:3.1. 功能所设计的软件要做什么;3.2.性能是指软件功能在执行过程中的速度、 可使用性、响应时间、 各种软件 功能的恢复时间、吞吐能力、精度、频率等等;3.3.强加于实现的设计限制在效果、实现的语言、数据库完整性、资源限制、 操作环境等等方面所要求的标准;3.4. 属性可移植性、正确性、可维护性及安全性等方面的考虑因素;3.5. 外部接口与人、硬件、其他软件和其他硬件的相互关系。编写需求的人应当避免把设计或项目需求写入SRS 之中,应当对说明需求设计约束与规划设计两者有清晰的区别。3.2.1.3 在 SRS 中嵌入了设计在 SRS 中嵌入设计说明,会过多地约束软件设计,并且人为地把具有

36、潜在危 险的需求放入 SRS 中。3.SRS 必须描述在干什么数据上、为谁完成什么功能、在什么地方、产生什 么结果。SRS 应把注意力集中在要完成的服务目标上。通常不指定如下的 设计项目:? 把软件划分成若干模块;? 给每一个模块分配功能;? 描述模块间的信息流程或者控制流程;? 选择数据结构。4.把设计完全同 SRS 隔离开来始终是不现实的。安全和保密方面的周密考虑 可能增加一些直接反映设计约束的需求。例如:? 在一些分散的模块中保持某些功能;? 允许在程序的某些区域之间进行有限的通讯;? 计算临界值的检查和。5.通常应考虑到, 若要为软件选择高层次的设计, 就可能需要大量的资源 (可 能占

37、整个产品开发成本的 10%-20%以上)。有两种选择:? 不顾本指南的警告,在 SRS 中描述了设计。这意味着,或者将一个潜 在不适当的设计作为一个需求进行描述(因为,若要得到好的设计,所花费的时间是不够的),或者在需求阶段花费了过多的时间(因为在SRS 完成之前整个设计分析都要完成);? 采用本指南中 5.1.3 条中的建议,用模型设计描述需求,这种模型设 计只用于辅助描述需求,而不使之成为实际的设计。532 在 SRS 中嵌入了一些项目要求SRS 应当是描写一个软件产品,而不是描述生产软件产品的过程。 项目要求表达客户和开发者之间对于软件生产方面合同性事宜的理解(因此 不应当包括在 SRS

38、 中)例如:1)成本;2)交货进度;3)报表处理;4)软件开发方法;5)质量保证;6)确认和验证的标准;7)验收过程。项目需求在另外文件中描述。 在 SRS 中提供的只是关于软件产品本身的需求。6 SRS 大纲本章着重讨论 SRS 的每一个基本部分,可以作为一个 SRS 的大纲。表 1 给出该大纲目录, 表 2至表 5 给出大纲中第 3 章的具体需求内容。各开发者和客户应当根据所描述的实际情况, 按本指南有关规定编写自己的SRS1 前言1.1目的1.2范围1.3定义、缩写词、略语1.4参考资料2项目概述2.1产品描述2.2产品功能2.3 用户特点2.4 一般约束2.5假设和依据3具体需求(参阅

39、本指南 6.3.2 条中具体需求的组织形式) 附录 索引1.前言(SRS 第 1 章)本章提供整个 SRS 综述。1.%2目的(SRS 的 1.1 条) 在这一条包括下列内容:1)描述实际 SRS 的目的;2)说明 SRS 所预期的读者。2.%2范围(SRS 的 1.2 条)1) 通常应考虑到, 若要为软件选择高层次的设计, 就可能需要大量的资源 (可 能占整个产品开发成本的 10%-20%以上)。有两种选择:2)用一个名字标识被生产的软件产品。比如:XXX数据库系统,报表生成 程序等等;3) 说明软件产品将干什么,如果需要的话,还要说明软件产品不干什么;4) 描述所说明的软件的应用。应当:?

40、 尽可能精确地描述所有相关的利闪、目的、以及最终目标。? 如果有一个较高层次的说明存在,则应该使其和高层次说明中的类似 的陈述相一致(例如,系统的需求规格说明) 。3.%2定义、缩写词、略语(SRS 的 1.3 条)本条中必须提供全部需求的术语、缩写词及略语的定义,以便对SRS 进行适当的解释。这些信息可以由SRS 的附录提供。也可以参考其他的文件。4.%2参考资料(SRS 的 1.4 条)本条应包括:1)在 SRS 中各处参照的文件的全部清单,如经核准的计划任务书,上级机关 批文、合同等;2)列出其他参考资料,如属本项目的其他已发表的文件和主要文献等。每一 个文件、文献要有标题, 索引号或文

41、件号, 发布或发表日期以及出版单位;3)详细说明可以得到该参考文件的来源。 这个信息可以通过引用附录或其他 文件提供。6.2 项目概述(SRS 第 2 章)本章应描述影响产品和其需求的一般因素,本章不说明具体的需求,而仅使需求更 易于理解。2.%2.%3 产品描述 (SRS 的 2.1 条)这一条是把一个产品用其他有关的产品或项目来描述。1) 如果这个产品是独立的,而且全部内容自含,应在此说明;2) 如果 SRS 定义的产品是一个较大的系统或项目中的一个组成部分,那么本条应包括如下内容:? 要概述这个较大的系统或项目的每个组成部分的功能, 并说明其接口; ? 指出该软件产品主要的外部接口。 在

42、这里,不要求对接口详细地描述, 详细描述放在SRS 其他章条中;? 描述所使用的计算机硬件、外围设备。这里仅仅是一个综述性描述。 在本条的描述中,用一个方框图来表达一个较大的系统或项目的主要组成部 分、相互联系和外部接口是非常有帮助的。本条既不用来强迫进行设计方案的描述,也不是描述在解决问题时的设计约 束。本条应对在以后具体需求一章中说明的设计约束提供理由。3.%2.%3 产品功能(SRS 的 2.2 条)本条是为将要完成的软件功能提供一个摘要。 例如,对于一个记帐程序来说, SRS可以用这部分来描述:客户帐目维护、客户财务报表和发票制作,而不必把功能所要求的大量的细节描写出来。有时,如果存在

43、较高层次的规格说明时,则功能摘要可直接从中取得,这个 较高层次的规格说明为软件产品分配了特殊的功能,为了清晰起见,请注意:1)编制功能的一种方法是制作功能表, 以便客户或者第一次读这个文件的人 都可以理解;6.2.2用方框图来表达不同的功能和它们的关系也是有帮助的。但要牢记,这样的图不是产品设计时所需求的,而只是一种有效的解释性的工具。这一条不用作陈述具体需求,只是对后来SRS 中具体需求一章中为什么要描述的某些需求提供理由。623 用户特点(SRS 的 2.3 条)本条要描述影响具体需求的产品的最终用户的一般特点。 许多人在软件生存周期的操作和维护阶段与系统相关。而这些人中有用户、 操作员、

44、维护人员和系统工作人员。这些人的某些特点,象教育水平、经验、技 术、专长等,都是施加于系统操作环境的重要约束。如果系统的大多数用户是一些临时用户,那么就要求系统包含如何完成基本 功能的提示,而不是假设用户已经从过去的会议或从阅读用户指南中了解到这些 细节。这一条的内容不能用来陈述具体需求或强加若干特殊的设计约束,本条应对 在 SRS 的具体需求一章之中的某些具体需求或设计约束的描述提供理由。一般约束(SRS 的 2.4 条)本条对设计系统阳限制开发者选择的其他一些项作一般性描述。而这些项将 限定开发者在设计系统时的任选项。这些包括:管理方针;硬件的限制;与其他应用间的接口;并行操作;审查功能;

45、控制功能;所需的高级语言;通信协议;应用的临界点;安全和保密方面的考虑。本条不陈述具体需求或具体设计约束:而对SRS 的具体需求一章中为什么要确定某些具体需求和设计约束提供理由。假设和依据(SRS 的 2.5 条)本条列出影响 SRS 中陈述的需求的每一个因素。这些因素不是软件的设计约束,但是它们的改变可能影响到SRS 中的需求。例如:假定一个特定的操作系统是在被软件产品指定的硬件上使用的,然而,事实上这个操作系统是不可能使用 的,于是,SRS 就要进行相应的改变。6.3 具体需求(SRS 的第 3 章)本章应包括软件开发者在建立设计时需要的全部细节。这是 SRS 中篇幅最大和最重要的部分。根

46、据本指南第 4 章所规定的准则(如可验证性、无歧义性等) ,对每一个需求 细节作具体描述;在 SRS 的前言、项目概述、附录部分的有关讨论中,要提供对任何一个具体 需求交叉引用的背景;具体需求分类的方法如下:? 功能需求;? 性能需求;? 设计约束;? 属性;? 外部接口需求。本章中要注意的二点是:1) 符合逻辑的和可读的方式组织;2) 详细描述每个需求,使该需求应达到目标能够用指定的方法进行客观的验证。具体需求的内容功能需求 本条描述软件产品的输入怎样变换成输出。即软件必须完成的基本动作。对 于每一类功能或者有时对于每一个功能, 需要具体描述其输入、 加工和输出的需 求。这通常由四个部颁组成

47、:1) 引言 这部分描述的是功能要达到的目标、所采用的方法和技术,还应清楚说明功 能意图的由来和背景。2) 输入 这部分应包括:? 详细描述该功能的所有输入数据,如:输入源、数量、度量单位、时 间设定、有效输入范围(包括精度和公差) ;? 操作员控制细节的需求。其中有名字、操作员活动的描述、控制台或 操作员的位置。例如:当打印检查时,要求操作员进行格式调整;? 指明引用接口说明或接口控制文件的参考资料。6.2.3 加工 定义输入数据、中间参数,以获得预期输出结果的全部操作。它包括如下的说明:? 输入数据的有效性检查;? 操作的顺序,包括事件的时间设定;? 异常情况的响应,例如,溢出、通信故障、

48、错误处理等;? 受操作影响的参数;? 降级运行的要求;? 用于把系统输入变换成相应输出的任何方法(方程式、数学算法、逻 辑操作等);? 输出数据的有效性检查。6.2.4输出 这部分应包括: ? 详细描述该功能所有输出数据, 例如: 输出目的地、 数量、 度量单位、 时间关系、有效输出的范围(包括精度和公差) 、非法值的处理、出错信息;? 有关接口说明或接口控制文件的参考资料。此外,对着重于输入输出行为的系统来说,SRS 应指定所有有意义的输入、输出对及其序列。当一个系统要求记忆它的状态时,需要这个序列,使得它可以根 据本次输入和以前的状态作出响应。也就是说,这种情况犹如有限状态机。设计约束 设

49、计约束受其他标准、硬件限制等方面的影响。1) 其他标准的约束:本项将指定由现有的标准或规则派生的要求。例如:报表格式、数据命名、财务处理、审计追踪等等。2) 硬件的限制:本项包括在各种硬件约束下运行的软件要求,例如,应该包 括:硬件配置的特点(接口数,指令系统等) 、内存储器和辅助存储器的 容量。属性 在软件的需求之中有若干个属性,下面指出其中的几个(注意:对这些决不 应理解为是一个完整的清单) 。1) 可用性:可以指定一些因素,如检查点、恢复和再启动等,以保证整个系 统有一个确定的可用性级别。2) 安全性:这里指的是保护软件的要素,以防止各种非法的访问、使用,修 改、破坏或者泄密。这个领域的

50、具体需求必须包括:? 利用可靠的密码技术;? 掌握特定的记录或历史数据集;? 给不同的模块分配不同的功能;? 限定一个程序中某些区域的通信;? 计算临界值的检查和。3.1.1.3可维护性:这里规定若干需求以确保软件是可维护的。例如:? 软件模块所需要的特殊的耦合矩阵;? 对微型装置指定特殊的数据 / 程序分割要求。3.1.1.4可转移 / 转换性:这里规定把软件从一种环境移植到另一种环境所要求的 用户程序,用户接口兼容方面的约束等等。3.1.1.5警告: 指定所需属性十分重要, 它使得人们能用规定的方法去进行客观的 验证。外部接口要求1) 用户接口:提供用户使用软件产品是地的接口需求。例如,如

51、果系统的用 户通过显示终端进行操作,就必须指定如下要求:? 对屏幕格式的要求;? 报表或菜单的页面打印格式和内容;? 输入输出的相对时间;? 程序功能键的或用性。2) 硬件接口:要指出软件产品和系统硬部件之间每一个接口的逻辑特点。还 可能包括如下事宜:支撑什么样的设备,如何支撑这些设备,有何约定。3)软件接口:在这里应指定需使用的其他软件产品(例如,数据管理系统,操作系统,或者数学软件包) ,以及同其他应用系统之间的接口。 对每 个所需的软件产品,要提供名字、助记符、规格说明号、版本号、来源等 内容。 对于每一个接口,这部分应说明与软件产品相关的接口软件的目 的,并根据信息的内容和格式定义接口

52、, 这里不必详细描述任何已有完整 文件的接口, 只要引用定义该接口的文件即可。4)通信接口:这里指定各种通信接口,例如,局部网络的协议等等。其他需求 根据软件和用户组织的特性等,某些需求放在下面各项中描述。1) 数据库:本项对作为产品的一部分进行开发的数据库规定一些需求,它们 可能包括:? 在 6.3.1.1 条中标识的信息类别;? 用的频率;? 存取能力;? 数据元素和文卷描述符;? 数据元素、记录和文卷的关系;? 静态和动态的组织;? 数据保存要求。注:如果使用一个现有的数据库包,这个包应在“软件接口”中命名,并在那里详细说明其 用法。2) 操作:这里说明用户要求的常规的和特殊的操作。?

53、在用户组织之中各种方式的操作。例如,用户初始化操作;? 交互作用操作的同期和无人操作的周期;? 数据处理支持功能;? 后援和恢复操作。注:这里的内容有时是用户接口的一部分。3) 场合适应性需求:这里包括:? 对给定场合、任务或操作方式的任何数据或初始化顺序的需求进行定 义。例如,栅值,安全界限等等。? 指出场合或相关任务的特点,这里可以被修改以使软件适合特殊配制 的要求。6.3.2 具体要求的组织本条通常是 SRS 所有部分中最大并且最复杂的部分。1) 可以根据软件实现功能的基本类型,将本条分成若干段。例如:考虑一个 大的交互记帐系统, 在里层可以分为操作软件 (它支持近乎实时的事务处 理)

54、、 支撑软件 (联机功能、磁盘备份、 装入磁带等等)以及诊断软件(诊 断硬件、通信等) ,外一层是应收款帐以及应付款帐等等;2) 结构细分的目的是提高 SRS 的可读性,而不是进行概要设计。对于 SRS 中的第 3 章的具体需求部分的最好的组织方案取决于所说明的软件产品的应用范围和性质。 文中最后部分提供了四种可能的组织方案。1) 大纲 1 中首先说明全部功能需求,然后说明四种类型的接口要求,最后是 其他需求;2) 大纲 2 中,把对应每个特定功能的四种接口需求和该功能需求放在一起描 述,然后说明其他需求;3) 大纲 3 中,与功能需求有关的全部内容放在一起首先说明,然后是其他需 求的描述。对

55、每一种外部接口的需求重复上述过程;4) 大纲 4 中,接口需求和其余的需求作为每一个功能需求的附属部分来说明。SRS 的具体需求的组织形式必须选择可读性最好的方法来描述。支持信息支持信息是指目录表,附录和索引。以便使SRS 易于使用。1)目录表和索引很重要,而且应按照可以接受的好的文件规则来编写。2)对一个实际的需求规格说明来说,若有必要应该编写附录。附录中可能包括:? 输入输出格式样本,成本分析研究的描述或用户调查结果;? 有助于理解 SRS 的背景信息;? 软件所解决问题的描述;? 用户历史、背景、经历和操作特点;? 交叉访问表。按先后次序进行编排,使一些不完全的软件需求得以完善(参见 4

56、32 条和 433 条);? 特殊的装配指令用于编码和媒体,以满足安全、输出、初始装入或其他要 求。3)6.4.3 当包括附录时,SRS 必须明确地说明附录是不是需求要考虑的部分。SRS 大纲 13 具体需求3.1 功能需求3.1.1 功能需求 1引言 3.1.1.2 输入 3.1.1.3 力口工 3.1.1.4 输出3.1.2 功能需求 2n 功能需求 n3.2 外部接口需求3.2.1 用户接口 3.2.2 硬件接口3.2.3 软件接口3.2.4 通信接口3.3 性能需求3.4 设计约束3.4.1 其他标准的约束 3.4.2 硬件的限制 .3.5 属性3.5.1 安全性 3.5.2 可维护性

57、 .3.6 其他需求3.6.1 数据库 3.6.2 操作 3.6.3 场合适应性 .SRS 大纲 23 具体需求3.1 功能需求3.1.1 功能需求 13.1.1.1 规格说明引言 3.1.1.1.2 输入 3.1.1.1.3 力口工 3.1.1.1.4 输出3.1.1.2 外部接口用户接口 3.1.1.2.2 硬件接口3.1.1.2.3 软件接口通信接口3.1.2 功能需求 2n 功能需求 n3.2 性能需求3.3 设计约束3.4 属性3.4.1 安全性 3.4.2 可维护性 .3.5 其他需求3.5.1 数据库 3.5.2 操作 3.5.3 场合适应性SRS 大纲 33 具体需求3.1 功

58、能需求3.1.1 功能需求 1引言 3.1.1.2 输入 3.1.1.3 力口工3.1.1.4 输出3.1.1.5 性能需求3.1.1.6 设计约束3.1.161 其他标准的约束3.1.162 硬件的限制 属性3.1.1.7.1 安全性 3.1.1.7.2 可维护性 .3.1.1.8 其他需求3.1.1.8.1 数据库 3.1.1.8.2 操作 3.1.1.8.3 场合适应性3.1.2 功能需求 2n 功能需求 n3.2 外部接口需求3.2.1 用户接口3.2.1.1 性能需求3.2.1.2 设计约束3.2.1.2.1 其他标准的约束3.2.1.2.2 硬件的限制 属性3.2.1.3.1 安全

59、性 3.2.1.3.2 可维护性 .3.2.1.4 其他需求3.2.1.4.1 数据库 3.2.1.4.2 操作 3.2.1.4.3 场合适应性3.2.2 硬件接口 3.2.3 软件接口3.2.4 通信接口SRS 大纲 43 具体需求3.1 功能需求 13.1.1 引言 3.1.2 输入 3.1.3 加工 3.1.4 输出3.1.5 外部接口3.1.5.1 用户接口3.1.5.2 硬件接口3.1.5.3 软件接口3.1.5.4 通信接口3.1.6 性能需求3.1.7 设计约束3.1.8 属性3.1.8.1 安全性 3.1.8.2 可维护性 .3.1.9 其他需求3.1.9.1 数据库 3.1.

60、9.2 操作 3.1.9.3 场合适应性3.2 功能需求 2n 功能需求 n用例说明模板1(经典模板)编者说明:随着 UML 的日益普及,用例(Use case)分析技术也在需求实践中广泛被采用。但是 也有许多团队在使用该技术时, 只画出了用例图, 而缺少了用例说明, 其实这是一个严重的 误区。而本模板就将指导你编写该说明。用例名称简要说明 简要说明用例的作用和目的。该小节的篇幅不要太长。 上下文图在此小节中,有一个只包括本用例和所有与该用例相关的Actor 和其它用例组成的,一个用例图的局部。 事件流基本流当 Actor 采取行动时, 用例也就随即开始。 用例总是由 Actor 启动的, 用

61、例应说明 Actor 的行为及系统的响应,可按照 Actor 与系统进行对话的形式来逐步引入用例。 要注意的是,用例描述应该说明系统内发生的事情,而不是事件发生的方式与原因。 如果进行了信息交换, 则需指出来回传递的具体信息。 例如, 只表述主角输入了客户信息就 不够明确。 最好明确地说主角输入了客户姓名和地址。 当然你也可以通过项目词汇表来定义 这些信息,使得用例中的内容被简化,从而不致于让用例描述陷入过多的细节内容。如果存在一些相对比较简单的备选流,只需少数几句话就可以说明清楚,那么也可以 直接在这一部分中描述。但是如果比较复杂,还是应该单独放在备选流小节中描述。一幅图胜过千言万语,因此建

62、议在这一小节中,除了叙述性文字之外,你还可以引用UML 中的活动图、顺序图、协作图、状态图等手段,对其进行补充说明。备选流3.2.1 第一备选流 正如前面所述,对于较复杂的备选流应单独地说明。3.2.1.1 备选支流 如果能使表达更明确,备选流又可再分为多个支流。第二备选流 在一个用例中很可能会有多个备选流。为了使表达更清晰,应将各个备选流 分开说明。 使用备选流可以提高用例的可读性, 并防止将用例分解为过多的层次。 应切记,用例只是文本说明,其主要目的是以清晰、简洁、易于理解的方式记录 系统的行为。非功能需求在这个小节中,主要对该用例所涉及的非功能性需求进行描述。由于其通常很难以在 事件流中进行表述, 因此单列为一小节进行阐述。 这些需求通过包括法律法规、 应用程序标 准、质量属性(可用性、可靠性、性能、支持性等) 、兼容性、可移植性,以及设计约束等 方面的需求。在这些需求的描述方面,一定要注意使其可度量、可验证,否则就容易流于形 式,形同摆设。 前置条件用例的前置条件是执行用例之前必须存在的系统状态。后置条件用例的后置条件是用例一执行完毕系统可能处于的一组状态。扩展点此用例的扩展点,通常是用例图中的extent 关系。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!