摘要:软件需求分析是软件项目开发的一个重要阶段,在整个软件开发过程中起到十分重要的作用。需求分析是为了深入理解软件的功能和性能,然后用规格说明书的方式表达出来,该过程是一个逐步细化的过程。本文此对软件需求分析的过程作简要探讨,以期能对软件开发人员提供理论借鉴。

  关键词:软件测试;需求分析;

  目前用户对所交付的软件系统不满意的现象时有发生。在有限的时间里,软件开发人员常常还没清晰了解用户需求已经着手编写程序了。软件开发人员必须通过用户提出的对软件功能和性能的要求,进行需求分析,制定软件的需求规格说明书。需求分析是一个逐步细化的过程,因为在软件开发时,客户可能不很明确他们到底需要什么,而有时候是知道却不能准确地表达给开发者,导致造成所开发出来的软件不符合用户的需求。所以开发者需要不断地与客户进行沟通,验证用户的需求,及时做出相应的修改。需求分析阶段可分成4个步骤:(1)问题识别;(2)需求分析;(3)制定规格说明书;(4)评审。事实上,这四个步骤也是需求开发的四个内容:问题获取、综合分析、需求描述、需求确认,需求确认其实是一个评审的过程,以下分别进行讨论。

  一、软件需求分析存在的客观问题

  软件开发的一条主线:客户需求--得出需求--设计编程--测试验收--使用和维护。对于想得到的需求,必须从客户那里获取,并分析这些需求,然后把需求描述出来,得到想要的需求规格说明书。这整个软件开发过程和获得需求的过程中,还需要反复确认、检查及验证需求,后期还要对其进行需求管理,需求管理是指需求出现变化所相应的一切活动。在实际需求分析工作中,由于以下问题的客观存在,要完成一个系统的需求分析并不是那么容易的。(1)问题的复杂性。这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。(2)交流障碍。需求分析涉及人员较多,有用户、工程师、管理员等,这些人具有不同的背景知识,扮演不同的角色,他们难于陈述他们的需求,造成彼此交流的困难。(3)不完备和不一致性。用户对问题的描述一般不完备,甚至可能是矛盾的,需求分析必须要消除矛盾。(4)产品是全新的。还没有用户,也没有人将它用于这类应用。

  二、软件需求分析过程

  (一)问题识别

  通俗来讲,是搞清软件是做什么的,要做到什么程度,比如软件的功能(它是干什么的),软件的性能(它能够适应的大强度),它所处的环境等等。所以相应的一个软件有以下的需求:

  (1)功能需求:是主要的需求,即说明软件应做什么,它列出了软件在功能上必须完成的任务。

  (2)性能需求:软件的技术性能指标,如存储容量、远行时间、安全保密等。

  (3)环境需求:对软件可能运行的环境的描述,比如必须采用什么支持系统运行的系统软件,操作人员必须达到什么样的技术水平等。

  (4)安全保密要求:软件运行在不同的环境中,对安全保密的要求是不同的,对那些保密性安全性要求高的数据.需要在软件开发中进行严格的设计。如银行系统中,人们储蓄的金额,企业贷款的金额.木能随便给人查看、修改,否则乱套了,会给银行带来灾难性的损失。至于需要达到什么样的安全保密度,安全保密要求必须对这方面做出恰当的规定.使软件的安全保密性能得到保证。

  (5)用户界面需求:以人为本的思想在现代社会中越来越受到人们的重视。在软件开发行业中,具有友好界面的软件能使它具有很强的竞争力,所以在用户界面需求中必须对用户界面做细致的规定,以达到客户满意的程度。试想,用户会不会选择一个界面很粗糙的、布局很不合理的软件来使用。

  事实上,软件的需求有功能性需求和非功能性需求。功能性的需求,它描述了系统所应提供的功能和服务,而对于非功能性的需求也不能忽视;非功能性需求反映了软件的特性,包括产品的易用程度,响应时间,异常处理等。这些特性被称为质量属性或质量因数:按照用途,可分为3大类:操作、修改、转移。

  考察质量因素的主要属性有:

  (1)操作。

  正确性:系统中的错误数目。

  可用性:学习系统的容易程度,执行日常任务的有效程度等。

  有效性:也称为性能,它指系统响应的速度,使用资源的多少等。