软件需求设计评审之八项注意

一、注意对需求规格说明的正确性进行评审

需求规格说明的正确性通常可以从如下方面得以体现:

是否有需求与其他需求相互冲突或者重复?通常一份长达几百页的需求规格说明书都不会是一蹴而就的,它可能是系统分析师几个夜晚的心血之作。正是因为撰写过程的连续性,可能导致同一份文档中前后名词定义不一致,前后观点上有重叠或差异的情况出现,这需要我们在撰写报告前首先要在思想上形成统一概念, 可使术语列表贯穿整份文档以达提纲挈领之效。

是否清晰、简洁、无二义地表达了每个需求? “清晰”是让人能够读懂;“简洁”是让人愿意去读;“无二义”决定”读”的效果,是让大家对需求描述的理解能够达成一致。需求陈述是“三重门”,这三扇门是否开启决定了需求说明书的质量高低。我们尤其要拒绝“二义性”的名词术语的出现, 似是而非的概念定义是需求书应该避免的。换句话说,如果一份需求说明书没能给人以清晰、简洁和无二义的阐述,则需求评审是没有进行下去的必要,同时也无法进行下去。需求评审的前提是用户读懂了需求说明,并且用户的理解内容就是分析师们所描述的内容。

是否每个需求都通过了演示、测试、评审,分析是否得到了验证? 需求应该是可以测试的,通常通过测试去验证它是不是正确。比如我们完成了“销售员客户佣金提成规则”需求的撰写,如果需求书未能经过原型测试通过,则需求评审是不能得到通过的。面对相当复杂的业务需求,经过测试或演示是让用户信任的一个必要过程。试想一下, 如果连需求都不能很好地被确认,则开发实现阶段更是没有把握控制了。

是否每个需求都在项目的范围内? 划分项目范围和区分系统边界同样是需求说明书的一个任务,不要对需求书作出超范围的论述和延伸,要知道需求书不是分析师卖弄概念、展示时尚的场所,它是软件工程的一个重要环节。

是否每个需求都没有内容和语法上的错误?按照传统的需求列表方式,需求像菜单一样被一条条列出来,构成需求项的主要栏位包括:需求ID、需求描述、优先级、来源和状态等。 通常需求首先要经过“拼写检查”,保证没有拼写上的问题,然后通过逐行浏览修改那些在内容或行文上出现问题的需求。

在现有的资源内, 是否能实现所有的需求? 需求规格说明要考虑可行性的问题。事实上,分析师的关注层面是价值驱动和成本驱动方面。分析师应该明白不是所有的需求都要去实现,一些看上去很明显与涉及用户有冲突的、费力不讨好的需求应该果断地舍弃。国内有专家提出,搞需求也要讲“和谐”即是此中道理。

每一条特定的错误信息,是否都是唯一的和具有含义的? 不要忽视错误信息的定义, 它必须具有唯一性。如果过于笼统地定义错误信息则和没有定义的效果是一样的。

二、注意对需求规格说明的实践性进行评审

所谓实践性是指需求本身是否来源于目前企业的相关业务规则和文件制度,而非源于分析师们经验主义的臆测。实践性是判断需求规格说明是不是理论联系实践、密切和用户联系的一个关键性指标。如果需求规格说明和用户实践脱离,即使看上去写得再天花乱坠,也会使需求说明如同无根之树、无源之水,会大大减低用户对需求报告本身的信任度。

有经验的系统分析师通常会迷信自己的经验,把从前的经验嫁接到目前的企业需求分析中。也许由于行业性质相同,但如果不经过当前的实践调研则给出需求,仍然会无法体现出企业自身的特征。因而不能为企业带来真正的价值,也会造成与用户需求的鸿沟。

笔者也曾经“轻实践重抽象”,我认为系统分析师的工作特点是站在具体案例上的深度抽象,前提是必须获得本企业的一手具体业务背景、流程和规则。

我们在分析比如“任务跟踪”之类的系统时,由于系统的抽象模型是已知的(通过大量同类软件的分析得知),但还是需要分析师把抽象模型演绎到企业当前业务现状。这样的需求分析才会有“实话实说”之效,才能引发评审者的共鸣。否则,在需求评审中评审者是很难读懂你的意图,

自然不会立即通过你的需求报告,导致需要重新返工撰写需求报告。

三、注意对需求规格说明的完整性进行评审

我们经常由下面的问题清单来评审需求说明书是否“完整”。

1 编写的所有需求,其详细程度是否一致和合适?

2 需求是否能为设计提供足够的基础?

3 所有对其他需求的内部引用是否正确?

4 是否包含了每个需求的实现优先级?

5 是否定义了功能说明的内在算法?

6 是否包含了所有已知的客户需求或系统需求?

7 是否遗漏了必要的信息?如果有遗漏的话,把他们标记为待确定的问题(TBD)?

8 是否对所有预期的错误条件所产生的系统行为都编制了文档?

需求说明的完整性主要体现在需求说明的详细程度上,我们怎样判断该需求的描述是否详细呢?我认为需求需要精化,而不是仅仅提出精化功能、对象要考虑涉众参与者、做些什么、需要什么数据信息、受什么业务规则和条件限制、系统会有什么响应,等等。

时间: 2024-10-04 01:04:48

软件需求设计评审之八项注意的相关文章

《软件需求最佳实践:SERU过程框架原理与应用》笔记

最近看了这本书,和实际的结合比较紧密,对实际的需求有一定的指导作用,特别市对于国内的特色需求,有很好的指导. <软件需求最佳实践:SERU过程框架原理与应用> 首先从软件需求实践中出现的主要问题和困难入手,指出了改进的主要方向:然后逐一说明了需求定义.需求捕获.需求分析与建模.编写规约.需求验证等需求开发活动的任务.要点和具体手段:并提出了一个可操作性强.易于上手的SERU过程框架,能够帮助读者清晰地了解整个过程,理解各阶段的关键产物和产物之间的关系. 还对包括需求基线.变更管理.需求跟踪在内

软件需求评审之五个案例和九条建议

软件需求是软件开发的最重要的一个输入,需求风险也常常是软件开发过程中最大的一个风险,降低需求风险的一个重要手段就是需求评审,但是需求评审是所有的评审活动中最难的一个,也是最容易被忽视的一个评审.笔者曾经历过以下的几种失败的需求评审: 案例一 某领域专家A先生就某企业的成本管理系统做用户需求报告的评审工作,在评审会开始时间不长,就被在场的某企业的一位副总B先生打断,认为A先生提出的方案不适合本企业,A先生提出的管理改进方案在企业中无法实施.该副总提完意见后,与会的用户方人员纷纷跟随B先生的提出了他

什么是软件需求

对大多数人来说,若要建一幢数百万元的房子,他一定会与建房者详细讨论各种细节,他们都明白完工以后的修改会造成损失,以及变更细节的危害性.然而,涉及到软件开发,人们却变得"大大咧咧"起来.软件项目中百分之四十至百分之六十的问题都是在需求分析阶段埋下的"祸根"(Leffingwell 1997).可许多组织仍在那些基本的项目功能上采用一些不合规范的方法,这样导致的后果便是一条鸿沟(期望差异)-开发者开发的与用户所想得到的软件存在着巨大期望差异. 在软件工程中,所有的风险承

软件需求说明书

软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础.编制软件需求说明书的内容要求如下: 1 引言 1.1编写目的 说明编写这份软件需求说明书的目的,指出预期的读者. 1.2背景 说明: a.待开发的软件系统的名称: b.本项目的任务提出者.开发者.用户及实现该软件的计算中心或计算机网络: C.该软件系统同其他系统或其他机构的基本的相互来往关系. 1.3定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组. 1.4参考资料 列

需求管理 工具-有哪些好用的软件需求管理工具

问题描述 有哪些好用的软件需求管理工具 请教: 软件需求管理有哪些工具和软件啊?大家都在用什么进行需求管理啊? 解决方案 RationalRequisitePro Rational RequisitePro是一个强大.易用.集成的需求管理产品.而通过与Rational系列软件产品的广泛集成,大大扩展了RequisitePro及其他产品的功能,给软件工程生命周期内的各个阶段都提供了强大.方便的信息查询.跟踪.管理功能.从而能够促进更好的团队沟通.帮助管理变更和评估变更的影响,帮助验证所有的规划需求

软件需求调研“五步法” 收藏

  软件需求调研"五步法" 收藏 摘要 客户需求,是软件生产加工的"原材料",是团队展开工作的"依据",是项目管理的"基石",需求调研是获取这此基础信息的启始阶段,良好开始是成功的一半.在需求调研分析阶段,项目经理和需求分析人员无法推动需求调研,客户参与积极性不高,获取客户需求信息不完整,且没有得到客户的认可.将决定能否奠定项目成功的保障,决定软件项目实施的成败.本文介绍"B项目"需求调研不深入所造成项目经

Linux Framebuffer驱动剖析之一—软件需求

嵌入式企鹅圈将以本文作为2015年的终结篇,以回应第一篇<Linux字符设备驱动剖析>.嵌入式企鹅圈一直专注于嵌入式Linux和物联网IOT两方面的原创技术分享,稍后会发布嵌入式企鹅圈的2015年的年终总结和2016年的分享计划.        本系列文章将分析Linux Framebuffer驱动的作用(需求).框架.接口实现和使用.按笔者一直倡导的Linux学习理念-从软件需求的角度去理解Linux,对于Linux各个子系统,我们首先要理解其软件需求,从中自然会清楚其存在的价值和作用:接下

软件工程之软件需求

       软件需求是什么呢?是不是如同我们渴了,需要喝水一样呢?软件需求可以从以下三个方面进行阐述:首先,用户解决问题或达到目标所需条件或权能,其次,系统或者是系统部件要满足合同.标准.规范或者其他正式规定文档所需具有的条件或权能,最后,一种反映上述两种条件或权能的文档说明.早在八十年代中期的时候,就形成了软件工程的子领域-需求工程,从1993年起每两年举办一次需求工程国际研讨会,自1994年起每两年举办一次需求工程国际会议,可见需求分析的重要性.       需求工程是随着计算机的发展而发

根据软件需求设计软件

问题描述 请大家帮我看看这个软件怎么设计好我数据库就对DB2比较熟悉表我都设计好了但是要做成软件还没有经验请大家指教就是根据软件需求设计出一个友好的软件能在裸机上面跑起来(本人刚刚开始学习JAVA)软件需求:1.登记表不需要是完全的合同内容,只需要登记合同里面的数据.2.主要数据内容就是租赁的东西,租赁东西每个每天的租赁费.租赁东西的起租和退租物品的日期.3.还有数据就是押金与租金,交付多少.4.还有就是登记租赁对象,比如,要登记他的单位,他的姓名,他的电话,以及有效证件号码.5.还要登记负责运