1、让软件过程更简洁、实用让软件过程更简洁、实用CMMI 实践解析第五部分 需求工程让软件过程更简洁、实用让软件过程更简洁、实用什么是需求?让软件过程更简洁、实用让软件过程更简洁、实用课程概述需求工程概述需求工程概述需求开发(需求开发(RD)需求管理(需求管理(REQM)123需求工程总结需求工程总结4让软件过程更简洁、实用让软件过程更简洁、实用Requirements Development(需求开发)The purpose of Requirements Development(RD)is to produce and analyze customer,product,and product
2、component requirements.需求开发的目的是产生和分析客户,产品和产品组件的需求。相关的PAREQM 获得相关干系人的需求,实现需求,维护需求的双向可跟踪性和需求管理相关。TS 根据需求的结果进行需求精化及进行方案设计和技术实现相关。PI 关于接口需求和接口管理和产品集成相关。让软件过程更简洁、实用让软件过程更简洁、实用Requirements Development(需求开发)相关的PA(续)VER 最终产品结果满足需求方面和验证相关。VAL 最终产品如何满足客户的需要和使用和确认相关。RSKM 识别和管理需求相关的风险活动和风险管理相关。CM 确保关键的工作产品受控和管理
3、方面和配置管理相关。让软件过程更简洁、实用让软件过程更简洁、实用Requirements Development(需求开发)让软件过程更简洁、实用让软件过程更简洁、实用目标之间关系解析 SG1Analyze andValidateRequirements(分析和确认需求)Develop CustomerRequirements(开发客户需求)DevelopProductRequirements(开发产品需求)StakeholdersNeeds(相关干系人)SG1SG2SG3Validated CustomerRequirements(确认的客户需求)Validated Product,Prod
4、uct Component,and Interface Requirements(确认的产品需求)让软件过程更简洁、实用让软件过程更简洁、实用SG1 开发客户需求Develop Customer Requirements(SG1 开发客户需求)干系人的需求干系人的需求SP1.1 引导引导需求需求SP1.2 开发开发客户需求客户需求CustomerRequirements(客户需求)让软件过程更简洁、实用让软件过程更简洁、实用SP1.1 引导需求让软件过程更简洁、实用让软件过程更简洁、实用SP1.1 引导需求需求调研的六边形法则组织结构:企业为进行相应的业务流程所做的人员的组织安排。业务流程:企
5、业开展业务所必须的各个环节及在每个环节中的具体做法。业务数据:企业内部经营信息的存储和流动形式。业务地点分布:反映企业在什么地方开展业务以及业务流程中的各个环节之间的地点关系。业务应用:企业以什么样的应用软件处理业务流程中的各个环节。技术基础设施:企业在信息技术基础设施上的状况。让软件过程更简洁、实用让软件过程更简洁、实用SP1.2 开发客户需求深入浅出对企业的需求调研的要尽可能的全面、细致调研的需求是个全集,系统真正实现的是个子集。调研的细致并不等于在分析时都面面俱到地将调研的内容纳入到新系统中,而有可能实现的很少,但其中在向细处扩充时将会很容易。以流程为主线应该用流程将所有的内容串起来,如
6、单据、信息、组织结构、处理规则等;流程的描述既要有宏观,又要有微观。让软件过程更简洁、实用让软件过程更简洁、实用SP1.2 开发客户需求需求获取过程中的注意事项调查前的准备并落实调研计划在调研前和用户讲清楚调研的意义、过程、以及需要注意的问题 发问时以一人为主,其他人注意记录与查找问题 在用户讲解时,不要中断用户,使对方有充分的演说机会 对询问的问题要有记录,记录要点 调研时可以IPO思想作为总体的主线 让软件过程更简洁、实用让软件过程更简洁、实用目标之间关系解析 SG2Analyze andValidateRequirements(分析和确认需求)Develop CustomerRequir
7、ements(开发客户需求)(开发客户需求)DevelopProductRequirements(开发产品需求)(开发产品需求)StakeholdersNeeds(相关干系人)SG1SG2SG3Validated CustomerRequirements(确认的客户需求)Validated Product,Product Component,and Interface Requirements(确认的产品需求)让软件过程更简洁、实用让软件过程更简洁、实用SG2 开发产品需求Develop Product Requirements(SG2 开发产品需求)开发产品需求)技术实现技术实现Select
8、 Technical Solution选择技术方案选择技术方案SP2.1 建立建立产品和产品和产品组件产品组件的需求的需求SP2.2 分配分配产品产品组件需求组件需求SP2.3 识别识别接口需求接口需求SG2CustomerRequirements(客户需求)Product,Product Component,Requirements(产品和产品组件需求)让软件过程更简洁、实用让软件过程更简洁、实用目标之间关系解析 SG3Analyze andValidateRequirements(分析和确认需求)Develop CustomerRequirements(开发客户需求)DevelopProd
9、uctRequirements(开发产品需求)StakeholdersNeeds(相关干系人)SG1SG2SG3Validated CustomerRequirements(确认的客户需求)Validated Product,Product Component,and Interface Requirements(确认的产品需求)让软件过程更简洁、实用让软件过程更简洁、实用SG3 分析和确认需求Analyze Requirements to Achieve Balance(SG3 分析和确认需求)分析和确认需求)SP3.1 建立建立操作概念操作概念和场景和场景SP3.2 建立建立需求功能需求功
10、能的定义的定义SP3.3 分析分析需求需求SP3.4 分析分析需求达到需求达到平衡平衡SP3.5 确认确认需求需求SG3Customer,Product,Product Component,and Interface Requirements(客户,产品,产品组件需求)Validated Requirements(确认的需求)让软件过程更简洁、实用让软件过程更简洁、实用SP3.1 建立操作概念和场景让软件过程更简洁、实用让软件过程更简洁、实用SP3.2 建立需求功能的定义让软件过程更简洁、实用让软件过程更简洁、实用SP3.3 分析需求完整性:完整描述即将交付使用的功能,发现缺少某项信息,可以采
11、用TBD来标注正确性:经过用户或用户信任的代理人审阅可行性:在已知能力和约束条件中实现必要性:每项需求记录的功能都应是用户真正需要的有优先次序:提供了实现优先级无歧义:对所有读者只有一种一致的解释可验证性:可以设计测试方法来检查让软件过程更简洁、实用让软件过程更简洁、实用如何达到能力等级2级让软件过程更简洁、实用让软件过程更简洁、实用如何达到能力等级3级让软件过程更简洁、实用让软件过程更简洁、实用课程概述需求工程概述需求工程概述需求开发(需求开发(RD)需求管理(需求管理(REQM)123需求工程总结需求工程总结4让软件过程更简洁、实用让软件过程更简洁、实用Requirements Manag
12、ement(需求管理)The purpose of Requirements Management(REQM)is to manage the requirements of the projects products and product components and to identify inconsistencies between those requirements and the projects plans and work products.需求管理的目的是管理项目产品和产品组件的需求,并且识别需求和项目计划及工作产品之间的不一致性。相关PA:RD 获将干系人的需求转换为产
13、品需求并且确定分配需求到产品组件。TS 将需求转换为产品解决方案。PP 需求变更时影响相应的计划修订CM 为需求进行基线和变更控制PMC 基于需求监控工作产品和活动,并且采取适当的纠正措施RSKM 识别及控制需求方面的风险让软件过程更简洁、实用让软件过程更简洁、实用Requirements Management(需求管理)让软件过程更简洁、实用让软件过程更简洁、实用目标之间关系解析 SG1Manage Requirements(管理需求)SG1 Requirements需求需求Bidirectional Traceability of Requirements双向跟踪矩阵双向跟踪矩阵让软件过程
14、更简洁、实用让软件过程更简洁、实用SG1 管理需求需求需求跟踪跟踪距阵跟踪跟踪距阵 Manage Requirements(SG1 管理需求)管理需求)SP1.1 获取和获取和理解需求理解需求SP1.2 获取获取对需求对需求的承诺的承诺SP1.3 管理管理需求变更需求变更SP1.4 维护维护需求的双向需求的双向可跟踪性可跟踪性SP1.5 识别识别工作产品和工作产品和需求的需求的不一致性不一致性SG1让软件过程更简洁、实用让软件过程更简洁、实用SP1.3 管理需求变更是否给变更谁来判断明确变更紧急程度,紧急变更立即处理变更影响分析(Brain Storming)不紧急变更批量处理,建议分三批需求
15、形成基线前设计完成前试运行完成前让软件过程更简洁、实用让软件过程更简洁、实用如何达到能力等级2级让软件过程更简洁、实用让软件过程更简洁、实用如何达到能力等级3级让软件过程更简洁、实用让软件过程更简洁、实用课程概述需求工程概述需求工程概述需求开发(需求开发(RD)需求管理(需求管理(REQM)123需求工程总结需求工程总结4让软件过程更简洁、实用让软件过程更简洁、实用需求开发和需求管理的分界线让软件过程更简洁、实用让软件过程更简洁、实用国内项目面临的最主要问题客户普遍不成熟:项目范围定义不确切,缺乏对项目范围、进度、成本、质量的平衡需求频繁变更主要人员的变动是项目最大风险项目团队不成熟:项目经理
16、基本上全是技术出身,普遍缺乏管理意识和管理方法培训不能正确识别项目相关干系人并管理其参与项目组成员工作勤奋但普遍缺乏正确方法人员变动是项目经理最头疼的问题让软件过程更简洁、实用让软件过程更简洁、实用需求开发我们需要客户方如何做调查前需要客户方落实调研计划,确定参加调研人员,时间,地点,并通知其调研内容(同时要考虑人员变动的备选方案)需要甲方确立内部项目组需求负责人准备调研所用资源会议室白板投影仪及时组织内部人员与乙方确认调研成果让软件过程更简洁、实用让软件过程更简洁、实用需求管理需要客户方如何配合作为客户方,如何做?了解乙方需求变更流程,并与乙方就此流程达成一致;指定专人负责需求变更;内部形成一个需求变更流程;针对内部提交的需求变更,在提交乙方之前横向分析对业务的影响;在提交乙方之前,内部达成一致意见;需求变更必将导致乙方开发成本的增加,为保证项目成功,必要时追加合同资金;让软件过程更简洁、实用让软件过程更简洁、实用常见的需求管理工具DOORS:以数据库为中心RequisitePro:以文档为中心,Rational公司Caliber-RM:以数据库为核心QSS requireit:以文档为中心RTM Workshop:以数据库中心Vital Link:以文档为中心