《软件需求工程(第2版)》一1.4 需求规格说明

1.4 需求规格说明

软件需求规格说明亦称软件需求规约或功能规格说明,可以说是需求工程最终产生的结果。所谓需求规格说明是软件所应满足的全部需求,并可用文档的方式完整和精确地陈述这些需求。需求规格说明是项目相关人员对将要开发的软件系统所达成的共识,是进行系统设计、实现、测试和验收的基本依据,也是整个软件开发过程中最重要的文档[11]。需求规格说明同时代表了权限的移交点:客户对需求规格说明的说明内容拥有最终发言权,而开发人员则需根据软件需求规格说明实施软件系统的开发。因此,最终开发出的软件系统是否能真实、全面地满足客户的要求,取决于需求规格说明是否真实、完整和一致地反映客户的真正意图。
需求规格说明应精确地描述一个软件系统必须提供的功能和性能,以及所要考虑的约束条件与限制。因此,需求规格说明也可以说是集成了13节中所定义的所有软件需求,并使用某种描述语言如自然语言按照规定的书写格式编写的文档。关于需求规格说明的模板和具体内容,将在后面给予详细说明。
需求规格说明在软件系统开发中起着十分重要的作用,但要把用自然语言表达的需求完整无误地表达出来并不是一件容易的工作。因为各人的理解不同,即便是同一个人,他在不同的时间也可能产生不同的理解。因此,作为一个质量较高的需求规格说明,通常应满足如下的特征[12]。
完整性。每一项需求必须将所要实现的功能描述清楚,以便开发人员获得设计和实现这些功能所需的必要信息。
正确性。每一项需求都必须准确地陈述其要开发的功能。做出正确判断的参考是需求的来源,如用户或高层的系统需求规格说明。如果软件需求与对应的系统需求相抵触,则是不正确的。只有用户才能确定需求的正确性。这就是一定要有用户的积极参与的原因。
可行性。每一项需求都必须在已知系统和环境的权能和限制范围内是可以实施的。为避免不可能实现的需求,最好在获取需求(或收集需求)的过程中,始终有一位软件开发小组的成员与需求分析人员或考虑市场的人员在一起,由他负责检查技术的可行性。

必要性。每一项需求都应把客户真正需要的和最终系统所遵从的标准记录下来。“必要性”也可以理解为每项需求都是用来授权你编写文档的“根源”。要使每项需求都能回溯至某项客户的输入,如使用实例或别的来源。
划分优先级。给每项需求、特性或使用实例分配一个实施优先级,以指明它在特定产品中所占的分量。如果把所有的需求都看作同样重要,那么项目管理者在开发、节省预算或调度中就丧失了控制自由度。
无二义性。对所有需求说明都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的语言表达出来。避免二义性的有效方法包括对需求文档的正规审查,编写测试用例,开发原型以及设计特定的方案脚本。
可验证性。检查每项需求是否能通过设计测试用例或其他的验证方法。如用演示、检测等来确定产品是否确实按需求实现了。如果需求不可验证,则确定其实施是否正确就成为主观臆断,而非客观分析了。一份前后矛盾、不可行或有二义性的需求也是不可验证的。

时间: 2024-10-11 14:26:21

《软件需求工程(第2版)》一1.4 需求规格说明的相关文章

《软件需求工程(第2版)》一2.4 软件需求的开发和管理过程

2.4 软件需求的开发和管理过程 针对需求工程应解决的问题和面临的困难,需求工程采用工程化的方法来进行与软件需求相关的活动.需求工程的目标就是给出待开发或待完善的软件系统的一个清晰的.完整的.无二义性的和精确的描述,并最终产生高质量的软件需求规格说明.需求工程怎样达到其目标?这是通过需求工程中一系列的活动完成的.本节将概要地说明需求工程的过程及相关活动,有关这些活动的具体内容.实施方法和相关技术将在本书的后面几章分别给予说明. 软件需求的开发和管理过程是由导出.确认和维护软件系统需求规格说明的一

《软件需求工程(第2版)》一第1章 需求工程概述1.1需求工程的重要性

第1章 需求工程概述 1.1需求工程的重要性 随着计算机应用的不断发展和深入,软件系统的日益大型化.复杂化,软件的开发成本越来越高,软件开发的风险也越来越大.Standish集团公司的研究报告称:在美国,每年用于软件开发的费用在一千亿美元以上,其中,大型公司开发一个软件项目的平均成本为2322万美元,中等大小的公司为1331万美元,小型公司则为434万美元.调查显示,31%的项目在完成之前被取消,进一步研究的结果还表明:527%的项目实际所花费的成本为预算成本的189%[1].根据该公司

《软件需求工程(第2版)》一2.3 需求工程在软件开发中的地位

2.3 需求工程在软件开发中的地位 2.3.1 需求工程对软件开发的影响 从软件工程提出的各种开发模型中可看出,需求工程是软件开发过程中的一个阶段.有些改进的开发模型,如快速原型模型也是因用户需求问题而提出的.需求工程处于软件开发的开始阶段,提供了软件项目其余部分得以实施的根基.显然,如果在开发的后期出现错误,受到影响的只是与后期阶段相关的工作,修正错误通常也是相对容易的事情.然而,如果错误出现在开始的阶段,而且没有立即发现和纠正,那么所有后续阶段的工作都是在错误的基础上进行的,修正错误的成本将

《软件需求工程(第2版)》一3.2 确定项目的目标和范围

3.2 确定项目的目标和范围 此阶段的基本任务是根据项目目标把项目相关人员定位到一个共同的和明确的方向上,并决定软件系统的范围.项目的目标主要包括项目开发的目的和意义,以及软件系统应实现的目标(即目标需求).项目的范围是指软件系统具体应包括和不应包括的部分,以及软件系统所涉及的各个方面,如计算机硬件和其他软件系统等,亦即软件系统在一个完善的环境中最终具有的功能.项目的范围与项目的目标,特别是软件系统的目标需求是密切相关的.如前所述,目标需求代表了需求层次中最高层的需求,为软件系统定义了作用的范围

《软件需求工程(第2版)》一第3章 需 求 获 取3.1确定需求开发计划

第3章 需 求 获 取 在软件计划完成之后,进入需求分析与定义阶段,亦即需求工程的活动开始.软件需求获取(简称需求获取)阶段的任务简单地说就是获取用户的需求信息.需求获取是需求工程的早期活动,也是十分重要的一步.由于需求获取可能是软件开发中最困难.最关键.最易出错和最需要交流的活动,故其只能通过用户与开发人员之间进行高度的合作和交流才能成功.开发人员并不是简单地照抄用户所说的话,需要从用户所提供的大量信息中分析和理解用户真正的需求.需求获取阶段的活动可大致划分为如图31所示的一系列工作.有关这

《软件需求工程(第2版)》一导读

前 言 随着计算机应用的不断发展和深入,人们需要收集和处理的信息规模急剧增大,其中计算机软件在信息收集和处理中起着至关重要的作用.由于软件已成为信息基础设施并具备密集型特点,使得软件一方面日益成为人们生活中的一部分,如电子政府.电子商务和手机等,人们也日益依赖软件.另一方面,一些高尖端的技术领域,如航空航天.国防军事等领域,对软件的质量提出了很高的要求.然而,软件开发的开发状况和质量远未达到人们的期望和要求,例如,大部分软件产品不能在预期计划和预算经费内完成,软件的质量低下等.软件质量所导致的软

《软件需求工程(第2版)》一1.5 需求工程定义

1.5 需求工程定义 需求工程是指应用工程化的方法.技术和规格来开发和管理软件的需求.需求工程的目标就是要获取高质量的软件需求.与软件工程中传统的需求分析概念相比,需求工程突出了工程化的原则,强调以系统化.条理化.可重复化的方法和技术进行与软件需求相关的活动,从而有利于提高所有与软件需求相关的活动及其过程的可管理性,降低需求开发和管理的难度和成本.由于需求工程诞生的时间相对短暂,或者说它还是一个新兴的子学科,因此,对于需求工程来说,并不存在一个得到普遍承认的精确定义.许多不同的研究人员和组织依据

《软件需求工程(第2版)》一3.4 实地收集需求信息

3.4 实地收集需求信息 在确定了需求的来源和调查对象后,下一步就是实地收集需求信息.实地收集需求信息阶段的任务就是到现场实地调查和与用户交流,收集和理解用户需求信息.在收集需求信息的过程中,可能会遇到一些困难和问题,如怎样进行收集等,这些都是此阶段应该考虑的事情. 3.4.1 实地收集需求信息面临的困难 实地收集需求信息并不是件容易的工作,软件开发人员需要与用户进行充分的交流,听取用户对软件系统的看法和意见.但在与用户交流的过程中并非是十分顺利的,特别是需要用户花费时间来讲解他们的业务流程和工

《软件需求工程(第2版)》一2.2 软件开发过程模型

2.2 软件开发过程模型 软件开发过程模型是为获得高质量的软件系统所需完成的一系列任务的框架.它规定了完成各项任务的工作步骤.在软件工程的初期,软件生命期这一概念被提出.这是用标准的形式表示和定义了软件生存过程.所谓软件生命期是指软件从软件计划开始,经历需求分析和定义.设计.编码.测试.运行.维护直到废止为止的期间.由于软件生命期包括了软件的整个生存过程,与软件开发相关的企业和开发组织等都把软件生命期视为软件开发过程模型的依据,工程管理也以该模型为实施依据.当然,这也是模仿其他行业如机器制造业和