14设定需求优先级.ppt
20页软件需求工程 Software Requirements Engineering ( SRE ) 第二部分 软件需求开发 第十四章 设定需求优先级龚 永 罡Date1第 14 章 设定需求优先级SQE-GYG学习目标在学完本章内容之后,你应该能够: 1) 理解设定需求优先级的作用与 意义;2) 学会设定优先级规模的方法;3)掌握基于价值、费用和风险的 优先级设定的过程与方法 2/20第 14 章 设定需求优先级SQE-GYG14.1 为什么要设定需求的优先级ü 每一个具有有限资源的软件项目必须理解所 要求的特性、使用实例和功能需求的相对优先 级ü 设定优先级意味着权衡每个需求的业务利益 和它的费用,以及它所牵涉到的结构基础和对 产品的未来评价ü 设定优先级有助于项目经理解决冲突、安排 阶段性交付,并且做出必要的取舍P1733/20第 14 章 设定需求优先级SQE-GYG14.1 为什么要设定需求的优先级ü 当客户的期望很高、开发时间短并且资源有 限时,必须尽早确定出所交付的产品应具备的 最重要的功能ü 建立每个功能的相对重要性有助于规划软件 的构造,以最少的费用提供产品的最大功能。
ü 当采用渐增式开发方式时,设定优先级就特 别重要,因为在开发过程中,交付进度安排很 紧,并且日期不可改变必须排除或推迟一些 不重要的功能 P1734/20第 14 章 设定需求优先级SQE-GYG14.1 为什么要设定需求的优先级ü 项目经理必须权衡合理的项目范围和进度安排 、预算、人力资源以及质量目标的约束ü 一个实现这种平衡的方法是:当接受一个新的 高优先级的需求或者其它项目环境变化时,删 除低优先级的需求,或者把它们推迟到下一版 本中去实现ü 如果客户没有以重要性和紧迫性来区分它们的 需求,那么项目经理就必须自己作出决策P1735/20第 14 章 设定需求优先级SQE-GYG14.2不同角色的人处理优先级 1) 客户的态度和做法ü 如果客户知道低优先级需求可能不会实现,那 么就很难说服客户讨论需求的优先级ü 如果让客户自己设计优先级,那么他们将会把 85%的需求设定为高优先级,10%的需求设定 为中等优先级,5%的需求设定为低优先级6/20第 14 章 设定需求优先级SQE-GYG14.2 不同角色的人处理优先级 2) 开发人员的态度和做法ü 不成熟的开发人员往往对系统分析员设定需求优先 级的意见表现出极大的厌烦。
ü 开发人员认为优先级对它来说是不必要的,因为他 并不关心系统提交的时间、开发成本和系统范围ü 开发人员认为,他们的责任和能力是,不遗余力地 去实现写入软件需求规格说明中功能ü 开发者更喜欢避开设定优先级,因为他们觉得建立 优先级与他们要向客户和经理表示的“我们可以全部完 成产品”的态度相冲突7/20第 14 章 设定需求优先级SQE-GYG14.2 不同角色的人处理优先级 3) 系统分析员的态度和做法ü 在需求分析阶段,分析人员应该明确的提出需求的 优先级和处理策略,并在SRS中明确说明ü 应当在项目的早期阶段设定优先级,这有助于逐步 作出相互协调的决策,而不是在最后阶段匆忙决定 ü 你评价优先级时,应该看到不同需求之间的内在联 系,以及它们与项目业务需求的一致性ü 在判断出需求的低优先级之前,如果开发人员已经 实现了将近一半的特性和功能,那这将是一种浪费 ,这个责任应该由分析人员承担8/20第 14 章 设定需求优先级SQE-GYG14.3 设定优先级的方法ü 与在客观世界人们对事务的分类习惯与方法 相一致,系统需求的优先级设定分成三类 例如:高、中、低;基本的、条件的、可选的、A、B、C; 1、2、3 ;上、中、下;必选、待选、可选。
9/20第 14 章 设定需求优先级SQE-GYG14.3 设定优先级的方法命 名意 义 高一个关键任务的需求;下一版本所需求的 中支持必要的系统操作;最终所要求的,但如果有必要的话 ,可以延迟到下一个版本 低功能或质量上的增强;如果资源允许的话,实现这些需求 总有一天使产品更完美 基本的只有在这些需求上达成一致意见,软件才会被接受 条件的实现这些需求将增强产品的性能,但如果忽略这些需求, 产品也是可以被接受的 可选的一个功能类,实现或不实现均可 3必须完美地实现 2需要付出努力,但不必做得太完美 1可以包含缺陷 表14-1 多种设定需求优先级规模的方法10/20第 14 章 设定需求优先级SQE-GYG14.3 设定优先级的方法ü 涉及到的每个人必须对所采用的优先级的 含义达成一致意见ü 如果混淆了高、中、低这样的术语,那么 就要更多地使用确定的词语,如提交、允许 时间、和将来发行版本等ü 为了使需求易于管理,必须为设定优先级 选择一个合适的使用实例、特性或详细功能 需求11/20第 14 章 设定需求优先级SQE-GYG14.3 设定优先级的方法ü 在一个单一的使用实例中,某些特定的可选过程可 能比其它过程具有更高的优先级。
ü 通过在特性层上进行最初的优先级设定,然后在特 定的特性中分别设定功能需求的优先级有助于从可 以延期实现的精化需求中识别核心功能ü 以同等对待所有低优先级的方法进行需求文档的编 写和整理,由于低优先级的需求,使得这些需求可能 后来还要被改变,并且知道关于这些需求的信息有助 于开发者提前规划将来软件的升级版本12/20第 14 章 设定需求优先级SQE-GYG14.4 基于价值、费用和风险的优先级设定ü 对于大的、有争议的项目,需要 一种结构化的方法来设定需求优先 级,用以消除一些情感、政策以及 处理过程中的推测ü 人们提出许多分析上和数学上的 技术用于辅助需求优先级的确定, 这些方法包括如下3种:13/20第 14 章 设定需求优先级SQE-GYG14.4 基于价值、费用和风险的优先级设定1) 费用与价值比方法:计算每个需求的相对 价值和相对费用优先级最高的需求是以最 小的费用比例产生出最大产品价值比例的需 求2) 质量功能开发(QFD)方法:为产品提供 用户价值与性能相联系的一种综合方法3) 完全质量管理方法:它以多个重大项目成功 的标准来评价每个需求,并且计算出一个分 值用于编排需求的优先级。
14/20第 14 章 设定需求优先级SQE-GYG14.4 基于价值、费用和风险的优先级设定ü 质量功能开发方法的图表和步骤XX XXX %XXX %XXX %XXXXn. XXXXX优先 级 风险 % 相对 风险 费用 % 相对 费用 价值 % 总价 值 相对 损失 相对 利润 需求/特性XX XXX %XXX %XXX %XXXX1. XXXXX总计XXXX相对权值在一个平面中列出要设定优先级的所有需求、特性或使用实例;在这个 例子中,我们将使用特性来设定优先级 所有项都必须在同一抽象级别上;不要把个人需求与产品特性混合在一 起如果某些特性有逻辑上的联系(例如,只有包括特性A的情况下才能 实现特性B)那么在分析中只要列出驱动特性就可以了 这种模型在其有效范围内可以容纳几十种特性如果你有更多的项,那 么就把相关的特性归成一类,并建立一个可管理的初始化列表如果你 需要的话,可以在更详细的级别上进行第二轮分析估计每一个特性提供给客户或业务的相关利益,并用1 ~ 9划分等级,1 代表可忽略的利益,9代表最大的价值 这些利益等级表明了与产品的业务需求的一致性客户代表是判断这些 利益的最佳人选。
在缺省情况下,利润和损失的权值是相等的,作为一种精化,你可以更 改这两个因素的相对权值估计出如果没有把应该实现的特性包括到产品中,将会 给客户或业务上带来的损失 使用1 ~ 9划分等级,这里1代表基本无损失, 9代表严 重损失总价值=相对利润+相对损失价值%=总价值/总计价值×100 根据需求的复杂度,所需求的用户界面的实现情况、重用当前代码 的潜在能力、所需要的测试量和文档等等,开发者可以估算出费用 估计实现每个特性的相对费用,使用1(低)~ 9(高)划分等级 平面图将计算出由每一个特性所构成的总费用的百分比开发者应该要估计出与每个特性相关的技术或风险相对程度,并利用1 ~ 9划分等级 1级表示你可以轻而易举地实现编程,而9级表示需要极大地关注其可 行性、缺乏具有专门知识的人员,或者使用不成熟或不熟悉的工具和 技术 平面图将计算出每个特性所产生的风险百分比在缺省情况下,利润 损失,费用和风险的权值是相等的,但是你可以在平面图中调整其权 值 如果你无需在模型中考虑风险,就把风险的权值设为0 价值% 优先级=(费用%×费用权值)+(风险%×风险权值)15/20第 14 章 设定需求优先级SQE-GYG14.4 基于价值、费用和风险的优先级设定相对权值2110.5 需求/ 特性相对 利润 相对 损失 总 价值 价值 % 相对 费用 费用 % 相对 风险 风险 % 优先级 1. 查询供应商订单的状态 53138.424.813.01.3452 .建立仓库存货清单报表 972516.2511.939.10.9873 .查看一特定容器历史记录 55159.737.126.10.9574 .打印化学制品安全数据表 2153.212.413.00.8335 .维护危险化学制品列表 491711.049.5412.10.7086 .更改未定的化学制品请求 43117.137.126.10.7027 .建立个人实验室存货清单报表 62149.149.539.10.6468.在供应商目录中查询特定化学 制品 982616.9716.7824.20.5869.查询一危险化学制品训练记录 34106.549.526.10.51710.从结构绘图工具导入化学制品 结构 74811.7921.4721.20.365总计54461541004210033100表14-2 “化学制品跟踪系统” 优先级设计的矩阵范例 16/20第 14 章 设定需求优先级SQE-GYG14.4 基于价值、费用和风险的优先级设定ü 质量功能开发(QFD)方法基于客户价值的 概念。
ü 客户价值取决于两个方面:一方面,如果实 现了特定的产品特性,那么将为客户提供利益 ;另一方面,如果不能实现产品特性,就要受 到损失ü 特性与它所提供的价值成正比,而与实现该 特性时的费用和技术风险成反比17/20第 14 章 设定需求优先级SQE-GYG14.4 基于价值、费用和风险的优先级设定ü 只有那些具有最高的价值/费用比率的特性才应当具 有最高的优先级ü 只能把QFD方法应用于非最高优先级的可变动的特性上,一旦分清对于产品交付必不可少的特性,就可以对 其它的特性采用QFD方法来确定其相对优先级ü 这种半定量方法从数学上讲并不严密,并且其准确程 度受到对每个项目的利润、损失、费用和风险的估算能 力的影响因此,只能把计算出来的优先级序列作为一 种指导策略18/20第 14 章 设定需求优先级SQE-GYG本章小结ü 设定优先级意味着权衡每个需求的业务利益和它的费 用,以及它所牵涉到的结构基础和对产品的未来评价ü 设定优先级有助于项目经理解决冲突、安排阶段性交 付,并且做出必要的取舍ü 与在客观世界人们对事务的分类习惯与方法相一致, 系统需求的优先级一般设定为三类ü 人们提出许多分析上和数学上的技术用于辅助需求优 先级的确定,这些方法包括如下3种:费用与价值比方 法、质量功能开发方法和完全质量管理方法。
19/20第 14 章 设定需求优先级SQE-GYG第十四章 结 束谢谢大家 20/20。





