《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013

上传人:A*** 文档编号:25228392 上传时间:2017-12-12 格式:PDF 页数:6 大小:156.59KB
返回 下载 相关 举报
《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013_第1页
第1页 / 共6页
《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013_第2页
第2页 / 共6页
《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013_第3页
第3页 / 共6页
《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013_第4页
第4页 / 共6页
《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013》由会员分享,可在线阅读,更多相关《《软件需求管理》美K.E.维格斯Karl+E.Wiegers著013(6页珍藏版)》请在金锄头文库上搜索。

1、下载第 1 3章 设定需求优先级关于“化学制品跟踪系统”的大部分用户需求编写成文档以后,项目经理 D a v e和需求分析员 L o r i接见了两个产品代表。 Ti m代表了药剂师群体,而 R o x a n n e则代表了化学制品仓库人员。“就像你们所知道的那样” , D a v e开始说: “产品代表为化学制品跟踪系统收集了许多需求,但我们不能在产品的首发版中包含你们所需的全部功能。由于大部分需求来自药剂师和化学制品仓库,所以我想与你们谈一谈关于设定需求优先级的问题。 ”Ti m感到很困惑。 “你为什么要设定需求优先级?它们全都很重要,否则我们不会向你们提出这些需求。 ”D a v e解

2、释说: “我知道它们都很重要,但我们不能做到同时交付一个包罗万象并且具有高质量的产品。由于没有更多的可用资源,所以我们需要为下一季度末就要交付的产品确定最重要的需求。我们希望你们帮助我们把首发版中必须包括的需求与可以放入以后版本的需求区分开。 ”“我知道卫生和安全办公室已向政府提交的化学制品使用和销毁的报表必须在这个季度末完成” R o x a n n e指出, “如果有必要的话,我们可以多使用几个月化学制品仓库现行的存货清单系统。但是条形码标签和扫描功能是必须的,这比药剂师所需的可查找的供应商目录更为重要。 ”Ti m提出抗议: “我已向药剂师保证,为他们提供在线的目录查询功能,以节省他们的

3、时间。所以目录查询从项目刚开始就必须考虑” 。分析员 L o r i说: “当我与药剂师共同探讨使用实例时,有一些使用实例似乎经常执行而其它的则很少有人使用。我们可以分析全部的使用实例,并确定那些你们不会马上就用到的使用实例吗?如果我们可以这样做,那么可以推迟决定那些高优先级的使用实例。对于必须等待系统部分功能的实现, Ti m和 R o x a n n e并没有感到很惊讶。然而他们意识到如果开发组不能在发行 1 . 0版本时实现全部需求,那么最好每个人都赞成首先实现需求的子集。每一个具有有限资源的软件项目必须理解所要求的特性、使用实例和功能需求的相对优先级。设定优先级有助于项目经理解决冲突、

4、安排阶段性交付,并且做出必要的取舍。本章将讨论设定需求优级的重要性,并且提出一个基于价值、费用和风险的设定优先级方案。13.1 为什么要设定需求的优先级当客户的期望很高、开发时间短并且资源有限时,你必须尽早确定出所交付的产品应具备的最重要的功能。建立每个功能的相对重要性有助于你规划软件的构造,以最少的费用提供产品的最大功能。如果你正在做时间盒图或者进行渐增式开发,那么设定优先级就特别重要,因为在这些开发中,交付进度安排很紧迫并且不可改变日期,你需要排除或推迟一些不重要的功能。一个项目经理必须权衡合理的项目范围和进度安排、预算、人力资源以及质量目标的约束。一个实现这种权衡的方法是:当接受一个新的

5、高优先级的需求或者其它项目环境变化时,删除低优先级的需求,或者把它们推迟到下一版本中去实现。如果客户没有以重要性和紧迫性来区分它们的需求,那么项目经理就必须自己作出决策。由于客户可能不赞成项目经理所设定的优先级,所以客户必须指明哪些需求必须包括在首发版中,而哪些需求可以延期实现。当你有很多选择可以完成一个成功的产品时,应尽早在项目中设定其优先级。让每一个客户都来决定他们的需求中哪一些是最重要的,这是很难做到的;要在众多具有不同期望的客户之间达成一致意见就更难了。人们心中都存在个人的利益,并且他们并不总能与其它群体的利益相妥协。然而,就像第 2章所讨论的那样,在客户 开发者的合作关系中,设定需求

6、优先级是客户的责任之一。客户和开发者都必须为设定需求的优先级提供信息。客户总是让可以给他们带来最大利益的需求享有最高优先级。然而,一旦开发者指出费用、难度、技术风险,或其它与特定需求相关的权衡时,客户可能会觉得他们最初所想的需求似乎变得不必要了。开发者也可能认为在早期阶段必须先实现那些优先级较低的功能,因为它们会影响系统的体系结构。设定优先级意味着权衡每个需求的业务利益和它的费用,以及它所牵涉到的结构基础和产品的未来评价。13.2 不同角色的人处理优先级对客户请求的“膝跳” ( k n e e - j e r k)响应设定优先级, “我需要所有的特性,只要以某种方式使它发生即可。 ”如果用户知

7、道低优先级需求可能不会实现,那么就很难说服用户设定需求的优先级。一个开发者曾经告诉我,优先级是不必要的,因为如果他把需求写入软件需求规格说明中,那么他就会不遗余力地去实现这些需求。然而,这并没有考虑到每个功能何时实现的问题。开发者更喜欢避开设定优先级,因为他们觉得建立优先级与它们要向客户和经理表示的“我们可以全部完成产品”的态度相冲突。现实中,一些特性比其它特性更重要。项目接近尾声时,在极其简单的“快速开发阶段” ,当开发者抛弃掉一些不必要的功能以保证按时完工的时候,这表现得尤为明显。在项目的早期阶段设定优先级有助于你逐步作出相互协调的决策,而不是在最后阶段匆忙决定。在你判断出需求的低优先级之

8、前,如果你已经实现了将近一半的特性,那这将是一种浪费。如果让客户自己设计,那么他们将会把 8 5 %的需求设定为高优先级, 1 0 %的需求设定为中等优先级, 5 %的需求设定为低优先级。这没有给项目经理很多灵活性。通过废除那些不必要的需求并且简化那些不必要的复杂部分,这被视为是快速软件开发的最佳实践( McConnell 1996) 。在一个大的项目中,以管理为指导的开发组对系统分析员设定需求优先级的意见表现出极大的厌烦。经理指出,他们可以不需要一些特殊的特征,但另外的特征需要用于弥补遗漏的需求。如果他们拖延实现太多的需求,那么目标系统将达不到业务计划中所反映的情况。当你评价优先级时,应该看

9、到不同需求之间的内在联系,以及它们与项目业务需求的一致性。13.3 设定优先级的规模设定优先级的一般方法是:把需求分成三类。表 1 3 - 1描述了实现的三层规模的方法。这第 1 3章 设定需求优先级 111下载些是主观上的并且是不精确的,因此,所涉及到的每个人必须在他们所使用的规模中每一层的含义上达成一致意见。如果人们混淆了高、中、低这样的术语,那么就要更多地使用如提交、允许时间、和将来发行版本等确定的词语。表 13-1 多种设定需求优先级的规模命 名 意 义 参 考高 支 一个关键任务的需求;下一版本所需求的 中 支 支持必要的系统操作;最终所要求的,但如果有必要的话,可以延迟到下一个版本

10、低 支 功能或质量上的增强;如果资源允许的话,实现这些需求总有一天使产品更完美基本的 支 只有在这些需求上达成一致意见,软件才会被接受 (IEEE 1998)条件的 支 实现这些需求将增强产品的性能,但如果忽略这些需求,产品也是可以被接受的可选的 支 一个功能类,实现或不实现均可3 支 必须完美地实现 ( Kovitz 1999)2 支 需要付出努力,但不必做得太完美1 支 可以包含缺陷每一个需求的优先级必须写入软件需求规格说明或使用实例的说明中。为你的软件需求规格说明建立一个规则,这样读者就可以知道分配给一个高层需求的优先级是否被其所有下层需求所继承,或者每个用户需求是否应该有它自己的优先级

11、属性。即使是一个中等大小的项目也会有成千上万个功能需求,以至于不能从分析和一致性角度对这些需求进行分类。为了使需求易于管理,你必须为设定优先级选择一个合适的抽象层次 使用实例、特性或详细功能需求。在一个单一的使用实例中,某些特定的可选过程可能比其它过程具有更高的优先级。你可能决定在特性层上进行最初的优先级设定,然后在特定的特性中分别设定功能需求的优先级。这有助于你从可以延期实现的精化需求中识别核心功能。文档则同等对待所有低优先级的需求,因为它们的优先级可能后来还要被改变,并且知道关于这些需求的信息有助于开发者提前规划将来软件的升级版本。13.4 基于价值、费用和风险的优先级设定在一个小项目中,

12、风险承担者们可以随意赞成需求的优先级。对于大的、有争议的项目则需要一种更加结构化的方法,采用这种方法可以消除一些情感、政策以及处理过程中的推测。人们提出许多分析上和数学上的技术用于辅助需求优先级的确定,这些方法包括建立每个需求的相对价值和相对费用。优先级最高的需求是那些以最小的费用比例产生出最大产品价值比例的需求( Karlsson and Ryan 1997; Jung 1998) 。当需求多于 2 4个时,通过两两比较来主观地估计费用和价值就变得不合实际了。另一种方法是质量功能开发( Q F D) ,它是能够为产品提供用户价值与性能相联系的一种综合方法。第三种方法来自完全质量管理( T Q

13、 M) ,它以多个重大项目成功的标准来评价每个需求,并且计算出一个分值用于编排需求的优先级。然而,尽管 Q F D与 T Q M具有精确性,却很少有公司愿意使用它。112 第二部分 软件需求工程 下载表 13-2 “化学制品跟踪系统”优先级设计的矩阵范例相对权值: 2 1 1 0 . 5相对利润 相对损失 总价值 价值 % 相对费用 费用 % 相对风险 风险 % 优先级5 3 1 3 8 . 4 2 4 . 8 1 3 . 0 1 . 3 4 59 7 2 5 1 6 . 2 5 11 . 9 3 9 . 1 0 . 9 8 75 5 1 5 9 . 7 3 7 . 1 2 6 . 1 0 .

14、 9 5 72 1 5 3 . 2 1 2 . 4 1 3 . 0 0 . 8 3 34 9 1 7 11 . 0 4 9 . 5 4 1 2 . 1 0 . 7 0 84 3 11 7 . 1 3 7 . 1 2 6 . 1 0 . 7 0 26 2 1 4 9 . 1 4 9 . 5 3 9 . 1 0 . 6 4 69 8 2 6 1 6 . 9 7 1 6 . 7 8 2 4 . 2 0 . 5 8 63 4 1 0 6 . 5 4 9 . 5 2 6 . 1 0 . 5 1 77 4 1 8 11 . 7 9 2 1 . 4 7 2 1 . 2 0 . 3 6 55 4 4 6 1

15、5 4 1 0 0 4 2 1 0 0 3 3 1 0 0 - - - - -表 1 3 - 2描述了一个简单的数据表,该数据表有助于估计使用实例、产品特性或个人功能需求集合的相对优先级。这个例子描述了“化学制品跟踪系统”的许多特性。这个图解来自于 Q F D关于客户价值的概念,客户价值取决于两个方面:一方面,如果实现了特定的产品特性,那么将为客户提供利益;另一方面,如果不能实现产品特性,就要受到损失( P a r d e e1 9 9 6) 。特性的诱人之处是与它所提供的价值成正比,而与实现该特性时的费用和技术风险成反比。一切都是平等的,只有那些具有最高的价值 /费用比率的特性才应当具有最高

16、的优先级。这个方法在连续的区间上分配估计的优先级,而不只是把它们分成几个不同的优先级层次上。你只能把这个设定优先级的图解应用于非最高优先级的可变动的特性上。例如,不能把实现产品核心业务功能的特性和被视为产品的独特之处或者那些为符合政府规定所要求的特性作为该优先级图解的分析项。无论如何,必须首先实现这些特性。一旦分清对于产品交付必不可少的特性,就可以对其它的特性采用模型来确定其相对优先级。在设定优先级的过程中典型的参与者有: 项目经理、他指导全过程,解决冲突,并且在必要的时候调整其它参与者的方案。第 1 3章 设定需求优先级 113下载特 性1. 查询供应商订单的状态2 .建立化学制品仓库存货清单报表3 .查看一个特定化学制品容器的历史记录4 .打印化学制品安全数据表5 .维护危险化学制品列表6 .更改未定的化学制品请求7 .建立个人实验室存货清单报表8.在供应商目录中查询 一个特定的化学制品9.在训练数据库中查询一种危险化学制品训练记录1 0.从结构绘图工具导入化学制品的结构总 计114 第二部分 软件需求工程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号