浅谈软件需求工程

时间:2022-07-23 05:27:49

浅谈软件需求工程

摘要:软件需求工程是包括创建和维护软件需求文档所必需的一切活动的过程,可分为需求开发和需求管理两大工作。需求开发包括需求获取、需求分析、需求定义和需求验证四个阶段,本文将本别对这几个阶段的活动进行阐述。

关键词:需求获取;需求验证;需求分析

中图分类号:TP311.5 文献标识码:A 文章编号:1007-9599 (2012) 12-0000-01

一、需求的获取的基本方法

将一个软件产品按时而又不超出预算的开发出来的机会有时是很小的,除非软件开发小组的成员对软件产品将做什么意见一致。达到这种全体一致的第一步可能精确的分析客户当前的状态形势。通常在需求获取过程中主要有交流障碍、用户意见不一致、提供不准确信息、需求总是不稳定等常见的问题。

为了避免以上问题,使得需求的获取更加准确。下文选取了两个较好的需求获取技术进行说明。

(一)建立联合分析小组

系统开始进入开发过程时,系统分析员对用户的业务流程和专业术语常常很不熟悉,而反过来用户也不熟悉计算机的处理过程及计算机专业术语。所以要使得双方能够更好的沟通必须建立一个由用户、系统分析员和领域专家参加的联合分析小组。

(二)客户访谈

在实际项目中,只有联合分析小组往往是不够的,分析人员还必须深入的和用户方的业务人员进行多次交流,这种方式可以称作为客户访谈。需要注意的是在与用户交流之前,必须对问题的背景和问题所在系统的环境有全面的了解,并且事先准备一些问题。

(三)问题确认

不要期望用户在一两次交谈中,就会对目标软件的要求阐述清楚,也不能限制用户在回答问题过程中的自由发挥。在每次访谈之后,要及时进行整理,分析用户提供的信息,去掉错误的、无关的部分,整理有用的内容,以便在下一次与用户见面时由用户确认;同时,准备下一次访谈时的进一步更细节的问题。如此循环,一般需要2~5个来回。

二、需求分析阶段的主要任务

需求分析阶段的最根本任务就是解决要求所开发软件做什么,做到什么程度。要想完美的解决这两个问题,就需要完成以下的几种任务。

首先,要收集功能需求,这也是需求分析阶段最主要的一个需求,就是说软件要完成什么样的功能。

其次,要对软件的性能和环境需求给出定义,也就是说软件的技术性能指标以及软件系统运行时所处环境的要求。

再次,软件成本消耗与开发进度需求也是必须考虑的因素,在软件项目立项后,根据合同规定,对软件开发的进度和各步骤的费用提出要求。

最后,安全保密需求和用户界面需求会根据不同的应用环境来对软件界面及安全保密级别进行规定。

三、软件需求的定义

一般来说需求必须被记录成文档,所以说这个步骤也经常被说成是编写需求规格说明书。这一点很重要,在与用户交流和软件系统中的一些标准和规范,都必须以文本的形式规定并记录下来。只有这样才可以让使用系统、编制系统、以及第三方能够更加清晰的了解系统在各个过程中的状态。

很显然,有了事先给出定义,才能保证大家谈论和解决的是同一个问题,才能了解系统编制过程中的一些标准。

四、需求验证的方法

不可能在需求开发阶段真正进行任何测试,因为还没有可执行的软件。然而,你可以在开发组编写代码之前,以需求为基础建立概念性测试用例,并使用它们发现软件需求规格说明中的错误、二义性和遗漏,还可以进行模型分析。

需求验证所包括的活动是为了确定以下几方面的内容:

1.软件需求规格说明正确描述了预期的系统行为和特征。

2.从系统需求或其它来源中得到软件需求。

3.需求是完整的和高质量的。

4.所有对需求的看法是一致的。

5.需求为继续进行产品设计、构造和测试提供了足够的基础。

需求验证步骤通常如下:

1.审查需求文档:对需求文档进行正式审查是保证软件质量的很有效的方法。组织一个由不同代表组成的小组,对需求规格说明书及相关模型进行仔细的检查。另外在需求开发期间所做的非正式评审也是有所裨益的。

2.依据需求编写测试用例:根据用户需求所要求的产品特性写出黑盒功能测试用例。客户通过使用测试用例以确认是否达到了期望的要求。还要从测试用例追溯回功能需求以确保没有需求被疏忽,并且确保所有测试结果与测试用例相一致。同时,要使用测试用例来验证需求模型的正确性,如对话框图和原型等。

3.编写用户手册:在需求开发早期即可起草一份用户手册,用它作为需求规格说明的参考并辅助需求分析。优秀的用户手册要用浅显易懂的语言描述出所有对用户可见的功能。而辅助需求如质量属性、性能需求及对用户不可见的功能则在需求规格说明书中予以说明。

4.确定合格的标准:确定合格的标准让用户描述什么样的产品才算满足他们的要求和适合他们使用的。将合格的测试建立在使用情景描述或使用实例的基础之上。

如果想做好软件需求工程,那么就要严格的执行以上的各个步骤。会从中收到良好的效果。

参考文献:

[1]周伯生译.统一软件开发过程[J].机械工业出版社,2002,1

[2]邵维忠等译.面向对象的分析[J].北京大学出版社,1999,7

[3]邵维忠,杨芙清.面向对象的系统分析[J].广西科技出版社,1998,12

上一篇:谈项目管理在软件开发项目的应用 下一篇:谈建筑工程造价过程控制的若干措施