第二篇第三章软件项目进度计划0软件开发项目管理与CMM第二篇第三章软件项目进度计划主讲教师:邢薇——哈尔滨工程大学计算机学院第二篇第三章软件项目进度计划1承上启下配置管理计划合同计划风险计划沟通计划质量计划成本计划时间计划集成计划范围计划项目结束项目执行控制项目计划项目初始人力计划第二篇第三章软件项目进度计划2时间计划配置管理计划合同计划风险计划沟通计划质量计划成本计划时间计划集成计划范围计划项目结束项目执行控制项目计划项目初始人力计划第二篇第三章软件项目进度计划3项目进度计划第二篇第三章软件项目进度计划4本章要点一、进度管理的基本概念及过程二、进度估算的基本方法三、编制进度计划四、案例分析第二篇第三章软件项目进度计划5进度的定义进度是对执行的活动和里程碑制定的工作计划日期表第二篇第三章软件项目进度计划6进度管理定义进度管理是为了确保项目按期完成所需要的过程.第二篇第三章软件项目进度计划7进度管理的重要性按时完成项目是项目经理最大的挑战之一时间是项目规划中灵活性最小的因素进度问题是项目冲突的主要原因,尤其在项目的后期。第二篇第三章软件项目进度计划8软件项目进度(时间)管理过程活动定义(Activitydefinition)活动排序(Activitysequencing)活动资源估计(Activityresourceestimating)活动历时估计(Activitydurationestimating)制定进度计划(Scheduledevelopment)进度控制(Schedulecontrol)-项目跟踪第二篇第三章软件项目进度计划9活动定义(DefiningActivities)确定为完成项目的各个交付成果所必须进行的诸项具体活动第二篇第三章软件项目进度计划10活动定义活动1活动2功能1软件产品功能2-子功能2功能2功能3功能2-子功能1功能2-子功能3设计说明书编写设计说明书设计评审第二篇第三章软件项目进度计划11项目活动排序项目各项活动之间存在相互联系与相互依赖关系,根据这些关系进行适当的顺序安排前置活动(任务)---〉后置活动(任务)第二篇第三章软件项目进度计划12任务(活动)之间的关系ABAB结束-开始结束-结束AB开始-开始AB开始-结束第二篇第三章软件项目进度计划13任务(活动)之间排序的依据强制性依赖关系软逻辑关系外部依赖关系第二篇第三章软件项目进度计划14进度管理图示网络图甘特图里程碑图资源图第二篇第三章软件项目进度计划15网络图网络图是活动排序的一个输出展示项目中的各个活动以及活动之间的逻辑关系网络图可以表达活动的历时第二篇第三章软件项目进度计划16网络图图例第二篇第三章软件项目进度计划17常用的网络图PDM(PrecedenceDiagrammingMethod)优先图法,节点法(单代号)网络图ADM(ArrowDiagrammingMethod)箭线法(双代号)网络图第二篇第三章软件项目进度计划18PDM图例开始活动1活动3活动2结束第二篇第三章软件项目进度计划19PDM--节点法网络图构成PDM网络图的基本特点是节点(Box)节点(Box)表示活动(工序,工作)用箭线表示各活动(工序,工作)之间的逻辑关系.可以方便的表示活动之间的各种逻辑关系。在软件项目中PDM比ADM更通用第二篇第三章软件项目进度计划20PDM(PrecedenceDiagrammingMethod)-优先图法图例开始(1)需求获取(3)项目规划(2)需求确认(4)项目计划评审(5)总体设计(6)详细设计(7)系统测试(10)集成测试(9)编码(8)结束(11)第二篇第三章软件项目进度计划21ADM图例总体设计需求确认需求获取系统测试集成测试编码详细设计计划评审项目规划123698754第二篇第三章软件项目进度计划22ADM--箭线法网络图ADM也称为AOA(activity-on-arrow)或者双代号项目网络图,在ADM网络图中,箭线表示活动(工序\工作),节点Node(圆圈:circle)表示前一道工序的结束,同时也表示后一道工序的开始.只适合表示结束-开始的逻辑关系第二篇第三章软件项目进度计划23ADM图例-虚活动虚活动为了定义活动为了表示逻辑关系不消耗资源的12AB231AB不正确的ADM图正确的有虚活动的ADM图第二篇第三章软件项目进度计划24甘特图-实例第二篇第三章软件项目进度计划25甘特图显示基本的任务信息可以查看任务的工期、开始时间和结束时间以及资源的信息。只有时标,没有活动的逻辑关系第二篇第三章软件项目进度计划26里程碑图示SpecificationDesign08/9811/98Testing02/995/99AvailableCoding9/0011/00Announce第二篇第三章软件项目进度计划27里程碑图示第二篇第三章软件项目进度计划28里程碑图示里程碑显示项目进展中的重大工作完成里程碑不同于活动活动是需要消耗资源的里程碑仅仅表示事件的标记第二篇第三章软件项目进度计划29人力资源图资源图05010015020025013579111315时间(周)资源(工时)系列2系列1第二篇第三章软件项目进度计划30本章要点一、进度管理的基本概念及过程二、进度估算的基本方法三、编制进度计划四、案例分析第二篇第三章软件项目进度计划31项目进度估算-历时估计项目进度估算是估计任务的持续时间-历时估计每个任务的历时估计项目总历时估计第二篇第三章软件项目进度计划32项目进度估算的基本方法基于规模的进度估算,定额估算法经验导出模型CPMPERT基于进度表的进度估算基于承诺的进度估计Jones的一阶估算准则其它策略第二篇第三章软件项目进度计划33定额估算法T=Q/(R*S)T:活动持续时间Q:活动的工作量R:人力或设备的数量S:产量定额,以单位时间完成的工作量表示例如Q=6人月,R=2人,S=1则:T=3月例如Q=6人月,R=2人,S=1.5则:T=2月第二篇第三章软件项目进度计划34定额估算法方法比较的简单,容易计算。适合项目的规模比较小,比如说小于10000LOC或者说小于6个月的项目第二篇第三章软件项目进度计划35经验导出模型经验导出模型:D=a*Eexp(b):D:月进度E:人月工作量a=2—4b:1/3左右:依赖于项目的自然属性第二篇第三章软件项目进度计划36建议掌握模型Walston-Felix(IBM):D=2.4*Eexp(0.35)基本COCOMO:D=2.5(E)exp(b),b:0.32-0.38举例:项目的规模E=152PM(人月),采用基本COCOMO模型估算的进度D=2.5*E^0.35=2.5*152^0.35=14.5M(月)第二篇第三章软件项目进度计划37经验导出其它模型举例如果:E=65人月,并且a=3,b=1/3则:D=3*65exp(1/3)=12月第二篇第三章软件项目进度计划38项目进度估算的基本方法基于规模的进度估算CPM-关键路径法估算PERT基于进度表的进度估算基于承诺的进度估计Jones的一阶估算准则其它策略第二篇第三章软件项目进度计划39关键路径法估计(CPM:CriticalPathMethod)当估算项目中某项单独的活动,时间很确定的时采用。根据指定的网络顺序逻辑关系和单一的历时估算,计算每一个活动的单一的活动时间。计算网络图中的最长路径,以便确定项目的完成时间估计。第二篇第三章软件项目进度计划40CPM估计开始A:100天B:10天结束第二篇第三章软件项目进度计划41项目进度估算的基本方法基于规模的进度估算,CPMPERT-工程评价技术估算基于进度表的进度估算基于承诺的进度估计Jones的一阶估算准则其它策略第二篇第三章软件项目进度计划42工程评价技术(PERT)(ProgramEvaluationandReviewTechnique)利用网络顺序图逻辑关系和加权历时估算来计算项目历时的技术。当估算项目中某项单独的活动,存在很大的不确定性时采用。第二篇第三章软件项目进度计划43工程评价技术(PERT)它是基于对某项任务的乐观,悲观以及最可能的概率时间估计采用加权平均得到期望值E=(O+4m+P)/6,O是最小估算值:乐观(Optimistic),P是最大估算值:悲观(Pessimistic),M是最大可能估算(MostLikely)。第二篇第三章软件项目进度计划44PERTFormulaandExampleExample:PERTweightedaverage=8workdays+4X10workdays+24workdays=12days6where8=optimistictime,10=mostlikelytime,and24=pessimistictime第二篇第三章软件项目进度计划45PERT的保证率保证率估计值8天24天100%第二篇第三章软件项目进度计划46PERT的度量指标824估计的跨度指标第二篇第三章软件项目进度计划47PERT的评估进度风险标准差δ=(最大估算值-最小估算值)/6方差δ2=[(最大估算值-最小估算值)/6]2例如上图:δ=(24-8)/6=2.67第二篇第三章软件项目进度计划48PERT评估存在多个活动的一条路径期望值E=E1+E2+….En方差δ2=(δ1)2+(δ2)2+….+(δn)2标准差δ=((δ1)2+(δ2)2+….+(δn)2)1/212345ACBD第二篇第三章软件项目进度计划49PERT工程评价技术--举例21432,3,64,6,83,4,6JKL项活动O,M,PEδδ2J2,3,63.334/616/36K4,6,864/616/36L3,4,64.173/69/36估计项目总历时13.51.0741/36=1.14第二篇第三章软件项目进度计划50标准差与保证率-正态概率分布68.3%95.5%99.7%第二篇第三章软件项目进度计划51PERT举例平均历时E=13.5,δ=1.07范围概率从到T1±δ68.3%12.4314.57T2±2δ95.5%11.415.6T3±3δ99.7%10.316.7项目在14.57内天完成的概率是多少?第二篇第三章软件项目进度计划52PERT举例-2δ+2δ-3δ-1δ+1δ+3δ68.3%95.5%99.7%ET=E+δ=13.5+1.07=14.57P=50%+342%=84.2%68.3/2%=34.2%50%第二篇第三章软件项目进度计划53PERT/CPM区别PERT计算历时采用的算法:加权平均(O+4m+P)/6估计值不明确CPM计算历时采用的算法:最大可能值m估计值比较明确第二篇第三章软件项目进度计划54项目进度估算的基本方法基于规模的进度估算,定额计算法经验导出方程CPMPERT基于进度表的进度估算基于承诺的进度估计Jones的一阶估算准则其它策略第二篇第三章软件项目进度计划55基于进度表估算1.可能的最短进度表2.有效进度表3.普通进度表第二篇第三章软件项目进度计划56可能的最短进度表-人员人才库中前10%的最拔尖的人,有几年应用编程语言和编程环境的工作经验,开发人员掌握了应用领域的详细知识,目标明确,努力工作,分享成果,团队和谐不存在人员调整第二篇第三章软件项目进度计划57可能的最短进度表-管理理想的项目管理开发人员可以专著于本职的工作采用矩形员工模式第二篇第三章软件项目进度计划58可能的最短进度表-工具支持有先进的软件开发工具开发人员可以无限制的使用资源工作环境理想,在集中的工作区域开发交流工具畅通第二篇第三章软件项目进度计划59可能的最短进度表-方法使用最时效的开发方法和开发工具设计阶段开始的时候已经完全了解需求需求不变更第二篇第三章软件项目进度计划60可能的最短进度表-压缩尽可能的压缩进度,直到不