华中科技大学软件学院THESCHOOLOFSOFTWAREENGINEERINGOFHUST第8章软件项目跟踪控制2THESCHOOLOFSOFTWAREENGINEERINGOFHUST本章内容提要软件项目跟踪控制概述8.1软件项目跟踪控制的标准8.2软件项目监控和报告体系8.3软件项目跟踪控制过程8.4软件项目评审8.5软件项目计划修改8.6本章小结8.7复习思考题8.83THESCHOOLOFSOFTWAREENGINEERINGOFHUST8.1软件项目跟踪控制概述项目跟踪控制——保证项目能够按照预先设定的计划轨道行驶,使项目不要偏离预定的发展进程。跟踪控制是一个反馈过程,需要在项目实施的全过程对项目进行跟踪控制。项目跟踪控制的基本步骤–建立标准即建立项目正确完成应该达到的目标–观察项目的性能建立项目监控和报告体系,确定为控制项目所必需的数据–测量和分析结果将项目的实际结果与计划进行比较–采取必要措施当实际的结果同计划有误差时,必要时修正项目计划–控制反馈如果修正计划,应该通知有关人员和部门4THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制概述项目跟踪控制过程5THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制概述项目跟踪控制的重要性如果没有项目控制,则可能出现:项目的范围会很大成本会成倍增长风险也会增加进度也会推迟6THESCHOOLOFSOFTWAREENGINEERINGOFHUST本章内容提要软件项目跟踪控制概述8.1软件项目跟踪控制的标准8.2软件项目监控和报告体系8.3软件项目跟踪控制过程8.4软件项目评审8.5软件项目计划修改8.6本章小结8.7复习思考题8.87THESCHOOLOFSOFTWAREENGINEERINGOFHUST8.2软件项目跟踪控制的标准建立控制标准——在对项目进行跟踪控制时,应该确定偏差的接受准则,比如进度、成本、质量等计划与实际的偏差比例等。三个主要的基准计划–范围(质量)计划–进度计划–成本计划基准计划是优化后并批准的计划,它作为项目实施考核的依据8THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制的标准需求(范围)控制标准9THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制的标准进度控制标准10THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制的标准成本控制标准11THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制的标准质量控制标准12THESCHOOLOFSOFTWAREENGINEERINGOFHUST本章内容提要软件项目跟踪控制概述8.1软件项目跟踪控制的标准8.2软件项目监控和报告体系8.3软件项目跟踪控制过程8.4软件项目评审8.5软件项目计划修改8.6本章小结8.7复习思考题8.813THESCHOOLOFSOFTWAREENGINEERINGOFHUST8.3软件项目监控和报告体系项目信息采集——建立项目监控和报告体系的首要任务是项目信息跟踪采集。跟踪采集是依据规定的规范对项目开发过程中的有关数据进行收集和记录,作为观察分析项目性能、标识偏差的依据。跟踪采集主要是在项目生存期内,根据项目计划中规定的跟踪频率按照规定的步骤对项目管理、技术开发和质量保证活动进行跟踪监控项目实际情况,记录反映当前项目状态的数据项目度量实施过程14THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目监控和报告体系确立采集对象——采集对象主要是对项目有重要影响的内部和外部因素。内部因素指项目基本可以控制的因素,例如变更、范围、进度、成本、资源、风险等外部因素指项目无法控制的因素,比如法律法规、市场价格、外汇牌价等一般要根据项目的具体情况选择采集对象。如果项目比较小,可以集中在进度、成本、资源、产品质量等内部因素;只有项目比较大的时候才可以考虑外部因素。跟踪采集的具体对象可以参见度量计划中的相关度量指标。15THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目监控和报告体系采集过程实例依据项目计划的要求确定跟踪频率和记录数据的方式按照跟踪频率记录实际任务完成的情况(包括进度或完成时间,质量等)按照跟踪频率记录完成任务所花费的人力和工时根据实际任务进度和实际人力投入计算实际人力成本和实际任务规模记录除人力成本以外的其他成本消耗记录关键资源的使用情况记录项目进行过程中风险发生的情况及处理对策按期按任务性质统计项目任务的时间分配情况收集其它的要求的采集信息以及必要的度量信息等16THESCHOOLOFSOFTWAREENGINEERINGOFHUST本章内容提要软件项目跟踪控制概述8.1软件项目跟踪控制的标准8.2软件项目监控和报告体系8.3软件项目跟踪控制过程8.4软件项目评审8.5软件项目计划修改8.6本章小结8.7复习思考题8.817THESCHOOLOFSOFTWAREENGINEERINGOFHUST8.4软件项目跟踪控制过程项目监控分析的对象–项目范围监控–项目成本监控–项目进度监控–项目资源监控–项目质量监控–项目风险监控18THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程项目范围监控——其输入是软件项目的计划需求范围(即需求规格)和实际执行过程中的范围及其控制标准。在项目范围控制过程中,通过与计划的需求规格比较,如果出现范围变化,即出现增加/修改/删除部分需求范围,就需要通过范围变更控制系统来实现变更,以保证项目范围在可以接受的范围内进行。方法:范围变更控制系统输入:范围控制标准计划范围实际范围输出:范围修改决定基线变更控制系统19THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程范围控制注意点——防治不合理的范围扩张–范围蔓延(ScopeCreeping)–客户无限制地增加需求–镀金(Gold-plating)–开发人员无限制地美化功能20THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程项目进度、成本、资源控制——根据跟踪采集的进度、成本、资源等数据,并与原来的基准计划比较,对项目的进展情况进行分析,以保证项目在可以控制的进度、成本、资源内完成。方法:图解控制法挣值分析法输入:计划进度、成本、资源实际进度、成本、资源输出:进度、成本、资源修改决定21THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程项目性能分析方法图解控制法——能清楚确定项目状况,但没有量化信息–进度---甘特图–成本—累计费用曲线图–人力物力资源—资源载荷图挣值分析法(盈余分析法、已获取价值分析法)——EaredValueAnalysis利用成本会计评估项目进展情况的一种方法,可以提供更多量化的信息22THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程图解控制法-图例23THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程已获取价值分析模型输入:1.BCWS2.BCWP3.ACWP4.BAC输出:1.CV2.CPI3.SV4.SPI5.EAC6.VAC7.SAC已获价值分析24THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程输入–BCWS(Budgetedcostofworkscheduled)–计划工作成本–ACWP(Actualcostofworkperformed)–实际工作成本–BCWP(Budgetedcostofworkperformed)–已获值(EarnedValue)–BAC(BudgetAtCompletion)–预算总值(估算结果)25THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程已获价值分析原理时间费用当前日期BCWSACWPBCWPCVSV26THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程分析未来趋势–一切顺利:ACWP,BCWP,BCWS,应该重合或接近重合–项目在控制下按照计划进行:ACWP,接近BCWSBCWP的计算——已获价值分析的难点是计算BCWP–方法一:自下而上-很麻烦–方法二:公式计算方法–50/50规则当一项工作开始时,假定已经获得一半的价值。–0/100规则当一项工作开始时,没有产生价值,直到结束获得全部价值。–经验加权法27THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程输出——已获值导出度量-1–进度差异:SV(ScheduleVariance)=BCWP-BCWS–=0:按照进度进行–0:落后于进度–0:超前于进度–费用差异:CV(CostVariance)=BCWP-ACWP–=0:按照预算进行–0:低于于预算–0:超出于预算28THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程实例时间任务B:$100任务C:$100任务D:$100任务A:$100计划实际开始结束共计今天$50$50$100$50$50$100$50$50$100$50$0$50已获价值=$350BCWS=$400,BCWP=$350,则SV=-$50如果ACWP=$700,则CV=-$35029THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程输出——已获值导出度量-2–成本效能指数:CPI(CostPerformanceIndex)=BCWP/ACWP–费用的支出速度–=1:按照预算进行–1:低于预算–1:超出预算–进度效能指标:SPI(SchedulePerformanceIndex)=BCWP/BCWS–已完成工作百分比–=1:按照进度进行–1:超前于进度–1:落后于进度30THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程输出——已获值导出度量-3–工作完成的预测成本EAC(EstimateAtCompletion)=BAC/CPI–其它借鉴公式EAC=BAC/(CPI*SPI)EAC=ACWP+(BAC-BCWP)EAC=ACWP+剩余工作的新估计–工作完成的成本差异–VAC(VarianceAtCompletion)=BAC-EAC–项目完成的预测时间–SAC(ScheduleAtCompletion)=完成时的进度计划/SPI31THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程性能分析实例时间任务B:$100任务C:$100任务D:$100任务A:$100计划实际开始结束共计今天$50$50$100$50$50$100$50$50$100$50$0$50已获价值=$350则:BCWS=$400,BCWP=$350;若BAC=$1000,则:SV=-$50,CV=-$350;SPI=87.5%;CPI=50%假设目前ACWP=$700,则:EAC=1000/0.5=$200032THESCHOOLOFSOFTWAREENGINEERINGOFHUST软件项目跟踪控制过程练习题–你被指定负责一个软件项目,其中有4部分,项目总预算为53000,A任务为26000,B任务为12000,C任务为10000,D任务为5000,截止到5月31日,A任务已经全部完成,B任务过半,C任务刚开始,D任务还没有开始,采用50/50规则计算截止到5月31日的CV,SV,CP