需求管理最佳实践1惟一地标识每一个需求:应该给每一个需求分配一个惟一的标识符或者引用数字,可以用于在需求文档的其他部分或在其他系统文档中指向该需求。主要效益:明确地引用特定需求是可能的引入成本:很低应用成本:很低定义需求管理的策略:定义了需求管理的目标,应该遵循的过程和应该使用的标准。主要效益:对所有参与需求管理的人提供指导引入成本:中等应用成本:低需求管理最佳实践2定义可跟踪性策略:应定义应用维护哪些可跟踪性的信息以及该信息应该怎样表示,可跟踪性信息是可以发现需求间、需求和系统设计、组件和文档间依赖性的信息。主要效益:维护所有系统的一致的可跟踪性信息引入成本:中等应用成本:中等-高维护可跟踪性手册:它是对需求文档的一个补充,包含了在项目中使用的特定的跟踪性策略和需求的可追踪性信息。主要效益:作为所有特定项目的可跟踪性信息的中心记录引入成本:低应用成本:中等-高需求管理最佳实践3使用数据库来管理需求:建立一个需求数据库,把单个需求作为条目存储进数据库,而不要用文本文档来维护需求。主要效益:使管理大量的需求变得容易引入成本:中等-高应用成本:中等实施指南:需求是怎么表达的?自然语言、图形模型、数学表达式?一般需要管理多少需求?需求总是由在同一地方工作、使用相同类型电脑的小组开发和管理的吗?已经使用一个支持软件工程的数据库了吗?有内部的数据库专家吗?需求工程师负责数据库管理吗?需求管理最佳实践4定义变更管理策略:陈述了变更是以何种形式提出、分析和评审的。然后实现已接爱的变更,产生一个新版本的需求文档。主要效益:提供一个系统地评估变更提议的框架引入成本:中等-高应用成本:低-中等实施指南:应包括变更请求过程和处理每个变更请求所需的信息;用来分析变更的影响和成本以及相关的可跟踪性信息的过程;正式考虑变更请求的成员人数;变更控制的软件支持需求管理最佳实践5标识全局系统需求:是在总体上说明了系统想要的或者必须的属性。它们不能够赋予单独的子系统。主要效益:找到变更成本最大的需求引入成本:低应用成本:低标识易变的需求:应该维护一个易变的需求列表,即那些最可能发生变更的需求。如果可能,应该对这些需求的变更进行预测。主要效益:简化需求变更管理引入成本:低应用成本:低记录丢弃的需求主要效益:当其再次提出时,保存再分析结果引入成本:低应用成本:低软件开发中的V字模型详细设计编码单元测试集成测试概要设计系统测试功能需求用户需求验收测试时间需求评审:方法非正式评审:同级桌面检查:请一位同事检查轮查:同时请若干同事分别检查走查:作者向评审人员描述,并要求做出评论正式评审同级评审(审查):最有效的软件质量技术需求评审:方法非正式评审:同级桌面检查:请一位同事检查轮查:同时请若干同事分别检查走查:作者向评审人员描述,并要求做出评论正式评审同级评审(审查):最有效的软件质量技术需求审查过程参与者需求规格说明书的作者、同级伙伴提供规格说明信息的人:分析员、客户要根据规格书开展工作的人:开发人员…负责相关接口工作的人总人数:=6人角色作者主持人读者记录员需求审查:开始标准文档遵循标准模板文档已经进行过拼写检查作者已经检查了文档在版面上的错误已经获得了审查前需要阅读的文档或参考文档在文档中标上了行号,便于查阅所有未解决问题已标上了TBD主持人检查10分钟后,找不出3个以上重大错误需求审查:主要阶段规划:谁参加?准备什么材料?总体会议:确定审查的背景、假设及目标准备:审查员阅读材料审查会议:主持人引导返工:审查结果修改跟踪:确定错误已修正规划总体会议准备审查会议返工跟踪初始工作产品完成基线的产品需求审查:要点需求的完整性是否存在遗漏的内容是否对所有风险承担者都有考虑需求的可追踪性惟一标识符号类型说明对用例的引用冲突描述一致使用术语需求审查:要点是否与目标相关产品将维护一个查询表,记录一年中日出和日落时间检查验收标准在限制条件下是否可行是需求还是解决方案顾客价值与镀金需求需求蔓延产品大小工作量/费用需求蔓延的影响生产率原规模新大小变更管理应确保的事项应仔细评估已建议的变更挑选合适的人选对变更做出决定变更应及时通知所有涉及的人员项目要按一定的程序来采纳需求变更控制项目范围的扩展对许多项目而言,需求的改进是合理且不可避免首先应把新系统的视图、范围、限制文档化并作为业务需求的一部分对于控制范围扩展的方法是要敢于说“不”基线+变更过程是解决项目范围扩展的重要手段变更控制过程好的变更控制过程给项目风险承担者提供了正式的建议需求变更机制变更控制过程并不是给变更设置障碍,而是提供一个渠道和过滤器控制需求变更同项目的其他配置管理决策是紧密相连的,管理需求变更类似于跟踪错误和做出相应决定的过程变更控制策略所有需求变更必须遵循的过程,按照此过程如果一个变更需求未被采纳,则其后过程不再予以考虑对于未批准的变更,除可行性论证之外,不应再做其他设计和实现工作简单请求一个变更不能保证能实现变更,要由项目变更控制委员会(CCB)决定实现哪些变更项目风险承担者应该能够了解变更数据库的内容绝不能从数据库中删除或修改变更请求的原始文档每一个集成的需求变更必须能够跟踪到一个经核准的变更请求变更控制步骤每个变更控制步骤由4个组件组成:开始条件:在执行过程或步骤前应该满足的条件过程和步骤中所包含的不同任务及项目中负责完成它们的角色验证任务正确完成的步骤结束条件:指出过程或步骤完成的条件描述变更控制步骤概述:说明此步骤的目的,确定步骤能够应用的范围角色和责任:列出参与变更控制活动的项目组成员并且描述他们的责任(CCB主席、CCB、评估者、修改者、建议者、项目管理者、请求接受者、验证者)变更请求状态开始条件任务验证退出条件变更控制状态报告变更需求状态转换变更控制工具可以定义变更请求的数据项可以定义变更请求生存期的状态转换图可以加强状态转换图使经授权的用户仅能做出所允许的状态变更记录每一种状态变更的数据,确认做出变更的人员可以定义在提交新请求或请求状态被更新后应该自动通知的设计人员可以根据需要生成标准的或定制的报告和图表变更控制委员会(CCB)CCB是业界的最佳实践,可以由一个小组或多个不同的组担任,负责做出决定究竟将哪一些已建议需求变更或新产品特性付诸应用负责对项目中任何基线工作产品的变更做出决定CCB的组成:项目管理部门产品管理或需求分析部门开发部门测试或质量保证部门市场或客户代表用户文档部门技术支持部门配置管理部门测量变更活动软件测量是深入项目、产品、处理过程的调查研究需求变更活动的下列方面值得考虑:1)接收、未作决定、结束处理的变更请求数量2)已实现需求变更的合计数量3)每个方面发出的变更请求的数量4)每一个已应用的需求建议变更和实现变更的数量5)投入处理变更的人力、物力可以通过线划图、直方图来表示需求跟踪跟踪能力(联系)链使你能够跟踪一个需求使用期限的全过程四类需求跟踪能力链需求跟踪联系链需求跟踪动机审核:跟踪能力信息可帮助审核确保所有需求被应用变更影响分析:跟踪能力信息在增、删、改需求时可以确保不忽略每个受到影响的系统元素维护:可靠的跟踪能力信息使得维护时能够正确、完整地实施变更,从而提高生产率项目跟踪:认真记录跟踪能力数据,可以获得计划功能当前实现状态的记录再设计:可以列出传统系统中将要替换的功能,记录它们在新系统的需求和软件组件中的位置重复利用、减少风险、测试需求跟踪矩阵用户需求功能需求设计元素代码模块测试用例UC-28catalog.query.sortcatalog类catalog.sort()search.7search.8UC-29catalog.query.importcatalog类catalog.import()catalog.validate()search.12search.13search.14……………功能需求用例UC-1UC-2UC-3UC-4FR-1FR-2FR-3跟踪能力联系链可能的信息源链的源对象链的目的对象信息源系统需求软件需求系统工程师用例功能性需求需求分析员功能性需求功能性需求需求分析员功能性需求软件体系结构元素软件体系结构(设计)者功能性需求其他设计元素开发者设计元素代码开发者功能性需求测试实例测试工程师需求跟踪能力过程决定定义哪几种联系链选择使用的跟踪能力矩阵的种类确定对产品哪部分维护跟踪能力信息通过修订过程和核对表来提醒开发者在需求完成或变更时更新联系链制定标记性的规范确定提供每类联系链信息的个人培训项目组成员一旦有人完成某项任务就要马上更新跟踪能力数据在开发过程中周期性地更新数据变更影响分析变更请求ID号:.标题:.描述:.分析人员:.日期:.优先级评估:相对收益:(1~9)相对损失:(1~9)相对费用:(1~9)相对风险:(1~9)计算出的最终优先级:(相对于其他待处理需求)估计的总工作量:(人时)估计损失的总工作量:(人时)估计对进度的影响:(天)额外的成本影响:(元)质量影响:受影响的其他需求:爱影响的其他任务:集成问题:生存期费问题:检查可能要变更的其他组件:基于文档存储需求方法的限制很难保持文档与现实的一致通知受变更影响的设计人员是手工过程不太容易做到为每一个需求保存增补的信息很难在功能需求与相应的用例、设计、代码、测试和项目任务之间建立联系链很难跟踪每个需求的状态常用的商业需求管理工具DOORS:以数据库为中心RequisitePro:以文档为中心,Rational公司Caliber-RM:以数据库为核心QSSrequireit:以文档为中心RTMWorkshop:以数据库中心VitalLink:以文档为中心使用需求管理工具的好处管理版本和变更:提供了灵活的基线设定功能存储需求属性:对每个需求可以保存相关属性帮助影响分析:可以找到需求关联跟踪需求状态:可以很容易地知识某个产品包含的所有需求访问控制:可以对个人、用户小组确定访问权限与风险承担者进行沟通:可以通过邮件自动通知重用需求:需求保存之后可以实现需求重用,避免信息冗余商业需求管理工具的主要特点允许定义不同种类的数据库元素,如业务需求、用例、功能需求、硬件需求、非功能需求…在某种程度上实现了Word的集成,最常见的方式是在Word中添加工具籅有统一的内部标识符,支持层次编码的数字标签,例如UR00x表示用户需求,DOORS中还能够看到层次结构的软件需求说明书工具的输出能力包括以用户自定义格式或表单报告格式,Caliber-RM提供了强大的文档加工功能有在需求同其他系统元素之间定义联系链的跟踪能力商业需求管理工具的互集成性RequisitePro不仅可以建立需求与Rose的用例之间的联系,还可以与RationalTeamTest中的测试实例建立联系DOORS能够建立需求与RationalRose的设计元素之间的联系RequisitePro和DOORS能够建立需求与Project中项目任务间的连接Caliber-RM通过一个中央通信框架,实现多种方面的联系建立