IEEE 软件工程标准中将需求分析(Requirement Analysis)定义为:(1)用户为了解决问题或达到某些目标所需的条件或权能 (Capability) 。(2)系统或部件为了知足合同、标准、规范或其它正式规定文档所规定的要求而须要具有的条件或权能。(3)反映上面 (1) 或 (2) 所描述的条件或权能的文档化表述。数据库
需求分析是解决“作什么”的问题,是定义“作”的范围和尺度,是将用户要求咱们作什么,变成咱们书面承诺为用户作什么的过程。需求分析结果应确保全部的风险承担者都明白其含义,并造成文档,从而做为下一步工做的基础。归纳来讲,需求分析包括三个要素需求、分析和文档。需求分析员是指负责收集分析客户需求并编写文档,以及负责客户与开发者之间沟通的人。性能
(二)软件需求的三个层次测试
软件需求通常分为三个层次:ui
1、业务需求:反映了组织或客户(Customer)对系统、产品高层次的目标要求。业务需求一般来自项目投资者、实际用户的管理者或产品策划部门。它们在项目视图与范围文档中予以说明,这些文档一般做为合同的附件。编码
2、用户需求:描述了用户(User)使用产品必需要完成的任务。它们通常使用用例文档或者方案提纲(Scenario)予以说明,这些文档一般做为需求调研报告。url
3、功能需求:定义了设计开发人员必须实现的软件功能,使得用户可以经过软件来完成他们的任务,从而也知足了业务需求,用户需求和功能需求。其中也包括非功能性需求,如产品必须听从的标准、规范、性能要求等。它们通常在软件需求规格说明书(Software Requirements Specification SRS)中说明。spa
在这里用一个关于超市会员多倍积分的例子来讲明需求分析的三个层次:设计
业务需求:为了提升会员的忠诚度,使会员在其生日及重大节日当天消费能够获得多倍的会员积分。生命周期
用户需求:为实现业务需求,须要首先制定会员多倍积分规则,而后将该规则宣传给广大会员;经过在系统中设置会员的多倍积分方案,在会员刷卡消费的时候,系统根据会员资料信息自动执行多倍积分方案;用户要求在POS断网的时候也能执行。ci
功能需求:根据用户需求,系统中应该实现的功能是:一个设置会员多倍积分规则的界面;利用通信机制将会员积分方案同步到前台POS;前台POS在会员缴款时自动计算积分;将积分计算结果同步到后台数据库中。相关的非功能需求:用户应该能够自定义通信的间隔时间(范围:1分到24小时);每1000笔销售数据的通信时间不该该超过2分钟;界面易用性等。
(三)需求分析在信息管理软件开发中的重要地位
需求分析是软件工程中最重要的阶段。软件项目的生命周期通常分为计划阶段(项目立项、计划)、开发阶段(需求分析、概要设计、详细设计、编码、测试)、维护阶段(实施投产、维护)。需求分析做为项目开发阶段的开端,具备很是重要的做用,能够说它是软件工程的真正开始。需求分析是全部软件成功要素发挥做用的前提,它的好坏直接影响着后面的各个阶段,关系着软件的成败。软件项目中百分之四十至百分之六十的问题都是在需求分析阶段留下的隐患 。在软件工程的历史中,很长时间里人们都认为需求分析是整个软件工程中最简单的一个步骤,但在实践中人们才愈来愈认识到它是整个软件生命周期中最关键的一个过程。优秀的信息管理软件产品必须创建在优秀的需求基础之上。
需求分析阶段又是在软件工程中全部的风险承担者都 关注 的阶段。这些风险承担者包括客户、用户、商务 及 业务人员、需求分析员、设计人员、编码人员、测试人员、用户文档编写者、项目经理等。这部分工做若是处理很差,可能致使需求误解、开发挫折、项目延期、甚至纠纷和失败;若处理好了,能开发出很出色的 项目,帮助客户实现价值,项目团队成员也 有成就感。