*正确答案:*B:算法的详细过程;
*正确答案:*C:需求规格说明书;
*正确答案:*A:让软件做什么;
*正确答案:*D:软件可行性研究的依据;
*正确答案:*B:需求评审;
*正确答案:*C:一致性、现实性、完整性、有效性;
*正确答案:*A:用户需求;
*正确答案:*A:确定系统的功能和性能的需求;
*正确答案:*B:完整性和一致性;
*正确答案:*D:定义需求并建立系统模型;
正确答案:
(1) 调查研究 (2) 分析与综合(3) 书写文档(4) 需求分析评审
答案解析:
也可以说:需求获取、需求分析、文档编辑、需求验证
正确答案:
(1) 需求规格说明书(2) 初步用户使用手册(3) 确认测试计划
正确答案:
(1) 用户系统描述 (2) 修正的开发计划
正确答案:
(1) 数据字典
正确答案:
(1) 可验证性
正确答案:
(1) 用户要求
正确答案:
(1) 系统化 (2) 条理化
正确答案:
(1) 问题域
正确答案:
(1) 性能需求 (2) 约束与限制
正确答案:
(1) 范围 (2) 目标
*正确答案:*错
*正确答案:*错
*正确答案:*错
*正确答案:*错
*正确答案:*错
*正确答案:*对
*正确答案:*错
*正确答案:*对
*正确答案:*错
*正确答案:*对
正确答案:
需求工程有以下三个主要任务:①需求工程必须说明软件系统将被应用的环境及其目标,说明用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用方式、方法所施加的限制和约束,也即要同时说明软件需要“做什么”和“为什么”需要做。②需求工程必须将目标、功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明。需求规格说明是需求工程最为重要的成果,是项目规划、设计、测试、用户手册编写等很多后继软件开发阶段的工作基础。③现实世界是不断变化的世界,因此需求工程还需要妥善处理目标、功能和约束随着时间的演化情况。同时,为了节省开支和进行需求规格说明的重用,需求工程还需要对目标、功能和约束在软件产品族中的演化和分布情况进行综合考虑与处理。
正确答案:
在实践和研究过程中,人们发现关于需求定义的具体的错误主要有以下几种:**①需求并没有反映用户的真实需要。**实践表明,获取用户的真实需求是非常困难的。**②模糊和歧义的需求。**在实践中,人们总是会有意和无意地写出模糊和歧义的需求定义。无意中写出模糊和歧义的需求定义往往是因为选词造句不当,导致不同的人对同一项需求产生了不同的理解。③信息遗漏。 信息遗漏也是一类常见的问题,包括明显的信息遗漏和不明显的信息遗漏。明显的信息遗漏,其主要原因在于项目的范围定义不当,可以通过加强对业务需求的处理得以解决。不明显的信息遗漏,是因为相关信息难以发现,只能靠需求工程师的经验来加以避免。**④不必要的需求。**产生不必要需求的原因主要是:其一是用户将一些不必要的需求作为和开发人员谈判的筹码,然后通过自己对不必要需求的要求而在和开发人员的谈判当中取得真正想要的利益,例如金钱。对此问题,唯一需要的就是开发人员代表的谈判技巧。其二是用户在交流中,总是害怕信息有所遗漏,并因此产生不利后果,因此用户总是倾向于表达各种各样的需要。**⑤不切实际的期望。**不切实际的期望也是实践中常见的需求定义问题,而且它在很大程度上影响着项目的成败。面对不切实际的期望,要求软件开发者提供可行性、成本等足够的技术参考信息,帮助用户对其进行取舍和调整。
正确答案:
①问题分析对问题进行分析,定义解决方案②确定系统边界将所有问题的解决方案进行综合,就可以得到整个解系统的功能和边界③需求建模对需求进行建模,完成从问题世界向计算机世界的转换④需求细化明确用户需求的隐含信息,展开为明确的对软件系统的行为期望,即系统需求。⑤确定需求优先级对需求进行分级,保证等级更高的需求得到更多的实现保证⑥需求协商检测冲突的存在,并提供信息以帮助和引导协商活动的开展
正确答案:
软件需求说明书一般包括如下内容:1)引言部分 编写目的;项目背景 (应包括:a.项目的委托单位、开发单位和主管部门;b.该软件系统与其他系统的关系。) ;定义;(列出文档中所用到的专门术语的定义和缩写词的原文。)参考资料。 2)任务概述 目标;运行环境;条件与限制。 3)数据描述 静态数据;动态数据 (包括输入数据和输出数据) ;数据库描述 (给出使用数据库的名称和类型) ;数据词典;数据采集。 4)功能要求 功能划分;功能描述。 5)性能需求 数据精确度;时间特性(如响应时间、更新处理时间、数据转换与传输时间、运行时间等);适应性(在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。) 6)运行需求 用户界面(如屏幕格式、报表格式、菜单格式、输入输出时间等);硬件接口;软件接口;故障处理。 7)其他要求 如可使用性、安全保密、可维护性、可移植性等。 8)附录
*正确答案:*D:数据流图;
*正确答案:*C:一致性、现实性、完整性、有效性;
*正确答案:*A:标识;
*正确答案:*A:用户;
*正确答案:*D:快速原型;
*正确答案:*D:螺旋模型;
*正确答案:*C:需求分析阶段;
*正确答案:*B:瀑布模型;
*正确答案:*D:模型建立;
*正确答案:*C:可以拓展应用;
正确答案:
(1) 需求分析和定义;需求分析(2) 测试(3) 运行
正确答案:
(1) 废弃(2) 进化;追加
正确答案:
(1) 逻辑
正确答案:
(1) 原型法
正确答案:
(1) 语用
正确答案:
(1) 活动图
正确答案:
(1) 交互图
正确答案:
(1) 状态维护
*正确答案:*对
*正确答案:*错
*正确答案:*错
正确答案:*错
*正确答案:*错
*正确答案:*对
*正确答案:*对
*正确答案:*错
*正确答案:*错
*正确答案:*错
正确答案:
需求变更的原因有:①问题放生了改变 ②环境发生了改变 ③需求基线存在缺陷另一些因素:用户变动,用户对软件的认识变化,相关产品的出现一般过程:看书;在形成需求基线之后,进行需求的变更控制看法根据书上内容然后展开。
正确答案:
因为原型是在最终系统产生之前的一个局部真实表现,所以原型方法可以让人们在系统的开发过程中,就能够对一些具体问题进行基于实物的有效沟通,从而帮助人们尽早解决软件开发过程中存在的各种不确定性。不确定性是指人们已经拥有的知识是不充分的,不足以预测将来的事件发展,或者不足以清晰、准确地描述某个事物。实践证明,利用原型有如下好处:①及时、有力地响应用户需求的变化。②减少返工。③帮助控制不完整需求所带来的风险。16 ④可以将一个大的难以处理的开发过程细分成一些更小更容易处理的步骤。⑤减少开发成本,提高经济效益。⑥增加开发者之间的交流,帮助确定技术解决方案的可行性。⑦有效地识别风险和解决风险,帮助进行风险管理。⑧提高用户在软件开发中的参与程度。
正确答案:
(1) 实施步骤
(2) 安排
(3) 进度
正确答案:
(1) 需求分析
正确答案:
(1) 需求获取
正确答案:
(1) 方向
(2) 范围
正确答案:
(1) 目的和意义
(2) 目标(即目标需求)
正确答案:
(1) 向掌握“全局”的负责人调查
(2) 向部门负责人调查
(3) 向业务人员调查
*正确答案:*D:包含、扩展和泛化;
*正确答案:*B:详细的功能需求;
*正确答案:*B:需求管理;
*正确答案:*A:获取笔录、录音或摄像;
*正确答案:*C:事件的情景性;
*正确答案:*D:需求管理;
*正确答案:*错
*正确答案:*对
*正确答案:*错
*正确答案:*错
正确答案:
1、确定需求开发计划;2、确立项目的目标和范围;3、确定调查对象;4、实地收集需求信息;5、确定非功能需求。
正确答案:
1、可以判断用户所提出的需求信息是否对项目合适;2、有些用户需求信息可能是建议,这些建议是项目之外的,但可能有价值,因此可以改变项目范围适应这样的需求,但要考虑对进度、资金的影响。
正确答案:
1、能提出软件需求的用户可能觉得没有时间与开发人员进行交流和讨论;2、有时用户希望通过简单的方法与说明,或者通过简单的回答开发人员的询问后,软件开发人员就能清楚理解他们的需求,而不需要花费太多的时间进行讨论;3、用户和开发人员只考虑自己的利益;4、用户本身不能提出明确的需求;5、开发人员没有相关的业务知识。
正确答案:
1、提出目标需求的用户;2、提出业务需求和功能需求的用户;3、软件开发人员,主要是指系统分析员。
*正确答案:*B:完整性和一致性;
*正确答案:*D:建立需求分析模型;
*正确答案:*B:抽象和分解;
*正确答案:*D:减少;
*正确答案:*C:界限和接口;
*正确答案:*C:交互图、状态图和活动图;
正确答案:
(1) 需求分析
正确答案:
(1) 分析模型
正确答案:
(1) 系统关联图
正确答案:
(1) 成本和性能要求
(2) 可能性
正确答案:
需求分析是利用建模与分析技术对获取笔录的内容进行明确、整理、汇总,建立一个综合考虑问题域特性和需求的系统模型,然后根据系统模型将用户需求转化为系统需求的需求工程活动。
正确答案:
范围指出当前项目是要解决产品长远规划中的哪一部分,范围声明它为项目划定了需求的界线。
正确答案:
在理想的情况下,开发者应该让最终的软件系统完美地满足用户提出来的所有需求。但是这种理想的情况并不总是会在现实中发生,甚至是很少在现实中发生。作为一项工程,软件开发总是在一定的环境限制下进行的,成本效益比是它成功的一个基本衡量标准。因此,在工程环境下,需求与需求之间并不是同等重要的,一些需求应该优于另一些需求得到更多 在实践中,确定优先级的活动尤为重要的情况有:①一个项目的资源(时间、人力、成本等)有限,无法满足用户的所有需求。此时项目管理者就需要确定一种最佳方案,在既定的成本下取得最大的效益。需求优先级就是项目管理者进行此项工作的重要基础。②项目采用了分阶段的开发方式。为了最大化地体现项目的成本效益,项目应该在第一阶段就交付用户最重要和最紧急的需求,并将用户最不重要和最不紧急的需求放在开发的最后一个阶段。这就需要通过确定需求优先级的方式来划分需求的重要性和紧急性等级。③在项目的开始阶段,并不能明确所有的用户需求,或者无法保证会最终满足所有的用户需求。这个情况是实践中最为常见的情况,迭代式的开发基本都属于这种情况。对这种情况,要区分用户需求的优先级,优先迭代级别高的需求,保证项目最终最大程度地满足了用户的需求。
正确答案:
1、建立系统关联图;2、分析需求的可行性;3、构建用户接口原型;4、确定需求的优先级;5、需求建模;6、建立数据字典。
*我的答案:*C:数据说明;*正确答案:*C:数据说明;
*正确答案:*A:数据流图DFD;
*正确答案:*D:减少;
*正确答案:*A:数据字典;
正确答案:
使用 DFD描述系统过程模型是必须遵守一些规则,这些规则可以保证过程模型的正确性。这些规则有:①过程是对数据的处理,必须有输入,也必须有输出,而且输入数据集和输出数据集应该存在差异。如果过程在没有输入的情况下产生了输出,称之为“奇迹”,即输出数据在没有任何可见来源的情况下就奇迹般产生了。如果过程接收了数据输入却没有产生输出,称之为“黑洞”。它浪费了输入的数据资源,却没有做出应有的贡献。过程是对数据的处理,这种处理是要产生附加价值的,即进行了数据的加工和变换,而不是简单的数据转移。②数据流是必须和过程产生关联的,它要么是过程的数据输入,要么是过程的数据输出。③DFD当中所有的对象都应该有一个可以唯一标识自己的名称。过程使用动词,外部实体、数据流和数据存储使用名词。
正确答案:
DFD层次结构的建立的主要步骤是:①创建上下文图。②发现并建立 DFD片断。③根据 DFD片断组合产生 0层图。④对 0层图的过程进行功能分解,产生 N层图。
设定需求优先级的主要目的是什么?
A. 帮助开发团队更好地理解需求
B. 确定首发版中必须包括的需求与可以延后的需求
C. 增加客户的参与度
D. 提高开发团队的工作效率
在设定需求优先级时,以下哪种方法是基于价值、费用和风险的优先级设定方法?
A. 三类优先级划分法
B. 质量功能开发(QFD)
C. 完全质量管理(TQM)
D. B和C都是
风险危害值的计算方式是什么?
A. 风险发生的可能性+潜在损失的规模
B. 风险发生的可能性×潜在损失的规模
C. 风险发生的可能性-潜在损失的规模
D. 风险发生的可能性÷潜在损失的规模
需求优先级计算公式中,以下哪项表述是正确的?
A. 优先级 = 总价值 / (相对费用 + 相对风险)
B. 优先级 = 总价值 × (相对费用 + 相对风险)
C. 优先级 = 总价值 × (相对费用 × 相对风险)
D. 优先级 = 相对费用 / 总价值
以下哪项不属于需求获取阶段的风险?
A. 产品视图与范围不清
B. 需求优先级划分不当
C. 客户对产品需求意见不一致
D. 未明确说明的隐含需求
B(确定首发版中必须包括的需求与可以延后的需求)
D(B和C都是)
B(风险发生的可能性×潜在损失的规模)
A(优先级 = 总价值 / (相对费用 + 相对风险))
B(需求优先级划分不当,属于需求分析阶段的风险)
设定需求优先级的一般方法是将需求分成________类。
质量功能开发(QFD)和完全质量管理(TQM)是两种用于________的方法。
风险管理就是使用某些工具或步骤把项目风险限制在一个________范围内。
需求开发工作应占全部工作量的约________%。
在升级或重做的项目中,开发人员不得不通过现有产品的________来获取需求。
三
设定需求优先级
可接受的
15
逆向工程(reverse engineering)
设定需求优先级是开发者的责任。( )
风险无处不在,因此项目管理者应该具有风险意识并采取预防措施。( )
编写风险文档和制定风险管理计划是同一回事。( )
需求规格说明中,应说明"做什么"而不是"怎么做"。( )
用户积极合作参与可以显著减少需求变更的发生。( )
×(设定需求优先级是客户的责任之一)
√
×(编写风险文档和制定风险管理计划是两个不同的活动)
√
√
简述设定需求优先级的步骤。
解释风险条目跟踪模板中各要素的含义及作用。
列举并简要说明需求获取阶段可能面临的风险。
设定需求优先级的步骤:
列出要设定优先级的所有需求、特性或使用实例
估计每个特性提供给客户或业务的相关利益-价值(1-9分)
估计如果没有实现该特性将带来的损失(1-9分)
计算总价值(相对利润和相对损失的总和)
估计实现每个特性的相对费用(1-9分)
估计与每个特性相关的技术风险程度(1-9分)
计算每个特性的优先级(优先级=总价值/(相对费用+相对风险))
按优先级降序排列特性列表
风险条目跟踪模板要素含义及作用:
序列号:为风险提供唯一标识
确定日期:记录风险被识别出的日期
撤消日期:记录风险被解决或撤销的日期
描述:以"条件-结果"的形式描述风险
可能性:表示风险转变为问题的概率
影响:描述如果风险变成事实将造成的损失
危害值:可能性×影响,用于评估风险的严重程度
降低风险计划:控制、避免或最小化风险的方法
负责人:解决风险的责任承担者
截止日期:完成降低风险措施的时间限制
需求获取阶段可能面临的风险:
产品视图与范围不清:没有对产品功能达成清晰共识
需求开发时间不足:因项目紧张而压缩需求开发时间
需求规格说明不完整或不正确:导致开发方向错误
革新产品的需求获取困难:缺乏市场反馈信息
非功能需求不明确:过于关注功能性需求而忽略非功能性需求
客户对需求意见不一致:不同客户有不同期望
未明确说明的隐含需求:客户有未表达的期望
将已有产品作为需求基线:通过逆向工程获取需求的不足
用户给出期望的解决方案:掩盖了实际需求
结合实际项目经验,论述如何有效地进行需求变更管理以降低项目风险。
分析需求优先级设定与风险管理之间的关系,并探讨如何将两者结合以提高软件项目的成功率。
需求变更管理与项目风险降低:
需求变更是软件项目中不可避免的现象,有效的变更管理对降低项目风险至关重要。首先,应建立正式的变更控制流程,包括变更请求记录、影响分析、评审、批准和实施追踪等环节。其次,将项目视图与范围文档作为变更的参照基准,可以有效控制项目范围蔓延。
实践中,可采用以下策略降低需求变更带来的风险:
(1) 促进用户积极参与:研究表明,用户积极合作参与可把需求变更减少近一半。应在项目早期就让客户代表参与需求获取和验证过程。
(2) 实施早期质量控制:通过需求评审、原型验证等方式早期发现需求错误,可减少后期变更的可能性。
(3) 灵活的设计和实现:对于易变的需求,可采用多种方案实现,并在设计时注重可修改性。
(4) 建立变更管理的纪律和氛围:成立变更控制委员会,使用变更管理工具,确保变更过程的规范化。
(5) 采用增量式开发:对阶段递增式的生存期制定计划,在早期版本中实现核心功能,并在后续阶段逐步增加实现需求。
需求优先级设定与风险管理是软件项目管理中密切相关的两个方面,它们的结合可显著提高项目成功率。
首先,需求优先级设定本身就是一种风险管理策略。通过识别高价值、低风险的需求优先实现,可以确保项目在有限资源条件下交付最有价值的功能,降低项目失败的风险。当项目环境发生变化或者资源受限时,可以基于优先级决定哪些需求可以延后或删除,从而保证项目的关键目标能够实现。
其次,风险管理可以为需求优先级设定提供重要参考。在评估需求优先级时,除了考虑业务价值外,还需考虑实现风险。通过风险分析,可以识别出哪些需求实现难度大、技术风险高,这些信息直接影响需求的优先级计算。例如,在优先级计算公式中,风险是与费用一起作为分母项存在的,风险越高,优先级越低。
两者结合的有效策略包括:
(1) 使用基于价值、费用和风险的优先级设定方法,如QFD或TQM,确保对需求的全面评估。
(2) 建立需求与风险的关联矩阵,识别哪些需求可能带来高风险,并制定相应的风险缓解计划。
(3) 采用增量式开发方法,将高优先级、低风险的需求安排在早期迭代中实现,高风险需求则安排在后期迭代,以便有更多时间进行风险评估和缓解。
(4) 定期回顾和调整需求优先级,响应新发现的风险和项目环境变化。
(5) 与客户密切合作,确保优先级设定和风险评估反映业务实际情况。
正确答案:
(1) 需求规格说明
正确答案:
(1) 发现和修复
正确答案:
(1) 综合性
正确答案:
(1)非正式评审
正确答案:
(1) 需求规格说明
正确答案:
(1) 可视化
正确答案:
1、软件需求规格证明是否正确描述了目标系统的行为和特征;2、从其它来源中(包括硬件的系统需求规格说明书)得到软件需求;3、需求是完整的和高质量的;4、所有人对需求的看法是一致的;5、需求为进一步的软件开发和测试提供了足够的基础。
正确答案:
1、从事软件系统需求开发的相关人员;2、具有编写需求规格说明经验和知识的人员,以及具有评审工作经验的领域专家等;3、客户或同户代表,他们可以保证需求规格说明能正确地和完整的描述他们的需求;4、将依据需求规格说明开展工作的软件开发人员,如设计人员,测试人员,项目经理等。
正确答案:
(1) 需求是否完整? (2)需求是否一致?(3)需求是否可理解? (4)需求是否明确?(5)需求是否可实现? (6)需求是否可跟踪?(7)需求是否易于修改? (8)需求规格说明文档是否完整?
正确答案:
1、开发人员最重要的是后面的开发工作,从而导致需求评审成为“走过场” ;2、需求评审的工作量大;3、过大的评审小组。
*正确答案:*C:验证性;
*正确答案:*B:形式化方法;
*正确答案:*B:技术;
*正确答案:*B:需求;
*正确答案:*B:自然语言;
*正确答案:*A:可视化技术;
A. 完全阻止需求变更
B. 控制和管理需求变更
C. 随意接受所有变更请求
D. 减少项目沟通
A. 变更的技术实现细节
B. 变更的合理性和必要性
C. 变更的具体成本
D. 变更的实施人员
A. 限制需求变更
B. 建立需求与系统元素间的关联关系
C. 降低项目成本
D. 减少项目文档
A. 仅评估财务风险
B. 评估对项目进度、成本和质量的影响
C. 只关注技术风险
D. 忽略所有潜在风险
A. 项目一线开发人员
B. 项目管理委员会
C. 单个项目经理
D. 客户代表
A. 增加文档工作量
B. 为未来参考和追溯提供依据
C. 延长项目周期
D. 限制团队沟通
A. 初步提交
B. 详细评估
C. 实施验证
D. 归档
A. 需求-源可跟踪性
B. 需求-设计可跟踪性
C. 需求-营销可跟踪性
D. 需求-用户界面可跟踪性
A. 随意修改基准需求
B. 控制对基准需求规格说明的变动
C. 完全不允许变更
D. 仅听取开发人员意见
A. 仅技术影响
B. 仅成本影响
C. 多方面影响,如进度、成本、质量、范围等
D. 忽略所有影响
需求变更管理的核心是______和______需求变更。
需求变更请求的生命周期包括提交、、、实施和______等阶段。
进行需求变更控制的关键在于建立明确的______和______机制。
需求跟踪的目的是建立______和______之间的关联关系。
变更请求的状态可能包括:、、______、______和______等。
需求管理的最佳实践包括建立______的变更控制流程和______的文档管理。
变更影响分析应评估对______、______和______的潜在影响。
需求变更控制的重点是______对基准需求规格说明的变动。
项目团队应对______和______的变更保持警惕和谨慎。
需求变更管理的核心原则是______和______。
控制、管理
审核、评估、验证
流程、控制
需求、系统元素
提交、评估、接受、实施、验证
明确、版本化
进度、成本、质量
控制
范围、复杂性
透明、沟通
需求变更管理的目标是完全阻止任何需求变更。()F
每个需求变更请求都应该经过详细的影响分析。()T
项目经理可以随意批准所有变更请求。()F
需求跟踪有助于理解需求的来源和依赖关系。()T
变更控制过程可以完全避免项目风险。()F
需求变更管理应该建立在透明和沟通的基础上。()T
所有的需求变更都应该无条件接受。()F
需求变更的归档对项目管理很重要。()T
变更请求的审批仅需要考虑技术可行性。()F
有效的需求管理能够提高项目的可预测性和成功率。()T
重要性:
- 控制项目范围
- 管理项目风险
- 保持需求一致性
主要任务:变更控制、需求跟踪、影响分析、文档管理
生命周期:
- 变更请求提交
- 初步审核
- 详细评估
- 风险成本分析
关键活动:
- 审批决策
- 实施
- 验证
- 归档
需求跟踪意义:
- 建立需求间关联
- 追踪需求来源
- 理解需求依赖
主要类型:源可跟踪性、理由可跟踪性、需求可跟踪性等
风险评估:
- 分析变更对项目的影响
- 评估技术可行性
- 评估成本和进度影响
- 识别潜在风险
需求变更管理影响:
- 影响项目范围和目标
- 控制项目风险
策略:
* 建立清晰流程
* 定期评估
* 灵活但受控
平衡灵活性和稳定性:
- 建立变更评估机制
- 设置变更门槛
- 保持沟通透明
- 灵活调整但有原则
根据PPT内容,设定需求优先级的原因如下:
- 开发组不能同时交付一个包罗万象且具有高质量的产品,需要区分首发版必须包括的需求与可放入后续版本的需求
- 在资源有限的情况下,必须理解所要求特性、用例和功能需求的相对优先级
- 有助于项目经理解决冲突、安排阶段性交付,并做出必要的取舍
- 当客户期望高、开发时间短且资源有限时,必须尽早确定最重要的功能
- 建立每个功能的相对重要性有助于规划软件构造,以最少费用提供产品的最大功能
- 在时间盒图或渐增式开发中,设定优先级特别重要
- 帮助项目经理在接受新的高优先级需求时,有依据地删除低优先级需求或将其推迟到下一版本
客户角色:
- 负责指明哪些需求必须包括在首发版中,哪些需求可以延期实现
- 设定需求优先级是客户的责任之一
- 往往让可以给他们带来最大利益的需求享有最高优先级
- 可能在了解开发者指出的费用、难度、技术风险等因素后,调整优先级观点
开发者角色:
- 提供关于实现需求的费用、难度、技术风险等方面的信息
- 可能认为需要在早期阶段先实现一些优先级较低的功能,因为它们会影响系统的体系结构
- 评估各需求的技术可行性和对系统架构的影响
双方合作:
- 设定优先级意味着权衡每个需求的业务利益和费用,以及软件结构基础和产品未来评价
- 客户和开发者代表应一起讨论需求优先级设定结果,达成共识
三层规模分类法是将需求分为三个优先级类别:
- 对于产品成功至关重要的功能
- 如果缺少这些功能,产品将无法满足客户的核心需求
- 在首发版中必须实现
- 对产品有重要价值但不是绝对必须的功能
- 这些功能可以提高产品的竞争力和用户体验
- 在资源允许的情况下应当实现
- 如果有时间和资源才实现的功能
- 这些是"锦上添花"的功能,对产品的基本功能影响不大
- 可以延迟到后续版本中实现
这种三层分类是一种简单实用的方法,可以快速对需求进行分类,帮助团队集中在最重要的功能上。PPT中提到,这是设定优先级的一般方法。
根据PPT内容,质量功能展开(QFD)帮助确定产品特性优先级的方式如下:
- QFD是为产品提供用户价值与性能相联系的一种综合方法
- 它用于确定产品开发中各个特性的优先级
- QFD首先识别核心特性,确定哪些特性对于产品交付是必不可少的,这些是最高优先级的特性
- 这些核心特性通常是产品成功所必需的关键功能或性能指标,不适用于优先级排序模型
- 一旦核心特性被识别和固定,其余的可变动特性(非必需但可能增加产品价值的特性)就可以使用优先级设定模型来排序
- QFD通过评估每个特性的市场需求、成本、技术可行性等因素,确定相对优先级,并据此安排开发计划
根据PPT内容,TQM与需求优先级设定的关系如下:
- TQM是以多个重大项目成功的标准来评价每个需求,并计算出一个分值用于编排需求的优先级
- TQM的核心之一是以客户为中心,确保客户需求和期望得到满足
- 在TQM框架中,需求优先级的管理是关键组成部分,帮助组织确定哪些需求对客户满意度最为关键
TQM中的需求优先级管理包括:
PPT中明确指出:"QFD、TQM尽管精确,却很少有公司愿意用它。"虽然PPT没有详细解释原因,但从内容可以推断以下几点:
根据PPT内容,评估需求价值和成本的方法如下:
评估价值:
评估成本:
这种评估方法综合考虑了需求对客户和业务的价值,以及实现需求所需的成本,为优先级排序提供了量化的依据。
根据PPT内容,需求优先级计算公式中的参数含义如下:
优先级 = 价值% / (成本% × 风险%)
其中:
- 价值%:表示该需求的总价值(相对利润+相对损失)占所有需求总价值的百分比,反映了需求的相对重要性
- 成本%:表示实现该需求的费用占所有需求实现费用总和的百分比,反映了需求的相对实现成本
- 风险%:表示与需求相关的技术或其他风险程度占所有需求风险总和的百分比,反映了实现该需求的相对风险
这个公式的核心思想是:优先级最高的需求是那些以最小的费用比例和风险比例产生出最大产品价值比例的需求。价值越高,优先级越高;成本和风险越低,优先级越高。
根据PPT第12页的内容,优先级设定工具的结果只能作为指导策略而非绝对依据的原因是:
PPT强调:"客户和开发者代表应该讨论整个平面图,从而在评价和优先级排序结果上达成共识。"这表明工具只是辅助决策的手段,最终决策仍需要人的判断和共识。
根据PPT内容,软件项目中的风险定义如下:
- 风险是指可能给项目的成功带来威胁或损失的情况
- 在项目中,可能出现差错的事情常常比可能意想不到地正常运行的事情多
- 风险无处不在,需要有风险意识
风险管理的主要活动包括:
PPT强调:“防患于未然:要有预防措施”,表明风险管理的核心是预防而非事后补救。
根据PPT第15页内容,需求在软件项目中扮演核心角色的原因如下:
PPT特别指出:"项目管理者只能通过与客户或客户代表(如市场人员)合作来控制需求风险。"这进一步强调了需求的核心地位,以及在需求问题上必须重视客户合作。
根据PPT第14和18页内容,编写项目风险文档的目的是:
项目风险文档不仅是风险的清单,还包含了风险的详细信息、可能性、影响、降低风险计划等内容,是风险管理的重要工具。
根据PPT内容,风险危害值的计算和作用如下:
计算方法:
- 风险危害值 = 可能性 × 影响
- 其中,可能性是指风险转变为问题的可能性(通常用0-1之间的小数表示)
- 影响是指如果风险变成了事实将造成的损失(通常用1-9的数字表示)
在风险管理中的作用:
例如,PPT中给出的示例风险条目中,风险危害值计算为:0.6(可能性)× 7(影响)= 4.2,这个数值可以用来与其他风险的危害值比较,确定处理优先级。
根据PPT第18-19页内容,风险条目跟踪模板包含以下关键元素:
PPT中给出了一个具体的风险条目示例,展示了如何使用这个模板来记录和跟踪风险。
虽然PPT中没有直接讨论如何确定风险降低计划的有效性,但结合风险管理的一般原则和PPT内容,可以推断以下判断标准:
以PPT提供的示例为例,风险降低计划包括具体的三个步骤:
这个计划有具体的行动、明确的负责人(Helen)和截止日期(在6/16/99前完成JAD会议),这些特性使其成为可能有效的风险降低计划。
根据PPT第21页内容,产品视图与范围不清晰导致项目范围扩大的原因如下:
PPT建议在项目早期就编写一份项目视图与范围文档,将业务需求涵盖在内,并将其作为新的需求及修改需求的指导。这样可以提供一个基准线,帮助控制范围蔓延。
根据PPT第22-23页内容,在处理非功能需求时,开发团队常犯的错误是:
PPT建议的解决方法是:询问客户关于产品性能、使用性、完整性、可靠性等质量特性,编写非功能需求文档和验收标准,作为可接受的标准。
根据PPT第24页内容,当用户给出期望的解决方案而非实际需求时,需求分析师应:
这种方法可以帮助分析师避免被用户的解决方案所限制,更好地理解和满足用户的真实需求。
根据PPT第25页内容,需求理解不同构成项目风险的原因和减轻措施如下:
原因:
减轻风险的方法:
这些措施有助于确保团队成员对需求有一致的理解,减少误解带来的风险。
根据PPT第25页内容,需求规格说明中包含设计元素的危害包括:
PPT建议的解决方法是:“说做什么,而不是说怎么做”。需求规格说明应该清晰地描述系统的功能和行为,而不是规定如何实现这些功能。
根据PPT第26页内容,提高需求审查有效性的方法包括:
有效的需求审查可以早期发现并解决需求中的问题,降低项目风险,提高开发效率和产品质量。
根据PPT第27页内容,需求变更不可避免的原因和减少负面影响的方法如下:
需求变更不可避免的原因(虽未在PPT中明确列出,但可推断):
减少需求变更负面影响的方法:
这些措施不是为了阻止变更,而是为了控制变更的影响,确保变更是有序和可管理的。
根据PPT第27页内容,有效的需求变更过程应包含以下关键要素:
有效的变更过程不是为了阻止变更,而是确保变更是经过充分考虑、评估和控制的,从而减少其负面影响。
根据PPT第28页内容,需求跟踪能力矩阵是一种工具,用于跟踪需求从规格说明到设计、实现和测试的映射关系。
需求跟踪能力矩阵如何帮助解决未实现需求的风险:
通过这些机制,需求跟踪能力矩阵可以有效减少需求未实现或实现不完整的风险,提高项目交付质量。