软件项目管理软件项目进度计划PERT&CPMchapter__70项目进度估算的基本方法基于规模的进度估算(上节)于规模的进度估算节基础PERT chapter__71活动定义(Dfii活动定义(Defining Activities)Aiii)确定为完成项目的各个交付成果所必须进行的诸项具体活动chapter__72活动定义软件产品功能123功能2-子功能1功能2-子功能2功能2-子功能3活动1活动23项目活动排序项目各项活动之间存在相互联系与相互依赖关系, 根据这些关系进行适当的顺序安排前置活动(任务)---〉后置活动(任务)chapter__74任务(活动)之间的关系A结束-开始BA结束-结束BA开始-开始Bchapter__7A开始-结束B5任务(活动)之间排序的依据强制性依赖关系软逻辑关系外部依赖关系里程碑chapter__76进度管理图示网络图甘特图里程碑图资源图chapter__77网络图网络图是活动排序的一个输出展示项目中的各个活动以及活动之间的逻辑关系网络图可以表达活动的历时chapter__78常用的网络图PDM (Precedence Diagramming Method )优先图法,节点法(单代号)网络图箭线法(双代号)网络图ADM (Arrow Diagramming Method )chapter__79PDM图例活动1活动3开始活动2结束chapter__710PDM(Precedence Diagramming PDM(PdDiiMethod)构成PDM网络图的基本特点是节点(Box)节点(Box)表示活动(工序,工作)用箭线表示各活动(工序,工作)之间的逻辑关系.用箭线表示各活动(序,作)之间的逻辑关系可以方便的表示活动之间的各种逻辑关系。
在软件项目中PDM比ADM更通用chapter__711PDM (Precedence Diagramming PDM(PdDiiMethod)-优先图法图例Method )规划项目计划评审需求获取确认设计设计开始码集成测试测试结束chapter__712ADM图例6总体设计项目规划编码集成测试系统测试8134579需求获取2chapter__713ADM(AArrow Diagramming DiiMethod)Method )ADM也称为AOA (activity-on-arrow)或者双代号项目网络图,代号项目网络图在ADM网络图中,箭线表示活动(工序\工作),节点Node(圆圈:circle)表示前一道工序的结束,同时也表示后道序的开始束,同时也表示后一道工序的开始.只适合表示结束-开始的逻辑关系chapter__714甘特图实例甘特图-实例chapter__715甘特图显示基本的任务信息可以查看任务的工期、开始时间和结束时间以及资源的信息。
只有时标,没有活动的逻辑关系chapter__716 里程碑图示AvailableAnnounceTestingCodingDesignSpecification08/98chapter__71711/009/005/9902/9911/98里程碑图示chapter__718里程碑图示里程碑显示项目进展中的重大工作完成里程碑不同于活动活动是需要消耗资源的里程碑仅仅表示事件的标记chapter__719资源图关键路径法估计(CPM关键路径法估计(CPM:CriticalPathMethod)Critical Path Method )根据指定的网络顺序逻辑关系,进行单一的历时估算当估算项目中某项单独的活动,时间比较确定的时候采用chapter__721CPM估计A:100天开始结束B:10天chapter__722项目进度估算的基本方法基于规模的进度估算,CPMchapter__723工程评价技术(PERT)(Program Evaluation and Review Technique)利用网络顺序图逻辑关系和加权历时估算来计算项目历时的技术。
当估算项目中某项单独的活动,存在很大的不确定性时采用。
chapter__724工程评价技术(PERT)它是基于对某项任务的乐观,悲观以及最可能的概率时间估计采用加权平均得到期望值E=(O+4m+P)/6,O是最小估算值:乐观(Optimistic),P是最大估算值:悲观(Pessimistic),是最大估算值悲观(),M是最大可能估算(Most Likely)。
chapter__725PERTFPERT Formula and ExampleldElExample:PERT weighted average == 12 daysdays6where 8 = optimistic time, 10 = most likelytimeand24=pessimistictimelikely time, and 24 = pessimistic timechapter__726PERT的保证率100%保证率8天chapter__724天估计值27PERT的评估进度风险标准差δ =(最大估算值-最小估算值)/622方差δ = [(最大估算值-最小估算值)/6]例如上图: δ =(24-8) /6=2.67chapter__728PERT评估存在多个活动的条路径PERT评估存在多个活动的一条路径ABCD期望值E=E1+E2+….En方差δ=(δ 方差δ (δ1)+(δ +(δ2)+….+ (δ (δn)2222标准差δ =((δ 1)21/2+(δ 2)+….+ (δ n))22chapter__729PERT举例2,3,6J项活动1JKL2O,M,P4,6,8KE3333.3364.1713.5 3δ3/61.073,4,6Lδ41/3630242,3,64,6,83,4,6估计项目总历时标准差与保证率68.3%95.5%chapter__799.7%31PERT举例平均历时E=13.5, δ=1.07范围T1T2T3±δ概率68.3%955%±2 δ95.5%997%±3 δ99.7%从12.4311411.410310.3到14.5715615.616716.7项目在14.57内天完成的概率是多少?成率多chapter__732 PERT举例T=E+δ68.3/2 % =34.2%P=50%+34 2%=84.2%-3 δ-2 δ-1 δE68.3%95.5%chapter__7+1 δ+2 δ+3 δ99.7%33PERT/CPM区别PERT计算历时采用的算法:加权平均(O+4m+P)/6估计值不明确CPM计算历时采用的算法:最大可能值m估计值比较明确chapter__734进度编制的基本方法正推法逆推法时间压缩法赶工(Crash)快速跟进(Fast tracking:搭接)chapter__735关键路径法CPMCPM:CiilPhMhd)Critical Path Method )根据指定的网络图逻辑关系和单一的历时估算,计算每个活动的单的确定的最早和最迟计算每一个活动的单一的、确定的最早和最迟开始和完成日期。
计算浮动时间。
计算网络图中最长的路径。
计算网络图中最长的路径确定项目完成时间chapter__736网络图中任务进度时间参数说明最早开始时间(Early start)最晚开始时间(Late start)最早完成时间(Early finish)最早完成时间(y)最晚完成时间(Late finish)自由浮动(Free Float)自由浮动(FreeFloat)总浮动(Total Float)超前(Lead)滞后(滞后(Lag)g)chapter__737浮动时间(Fl浮动时间(Float))浮动时间是一个活动的机动性,它是一个活动在不影响其它活动或者项目完成的情况下可以延迟的时间量chapter__738自由与总浮动时间总浮动(Total Float)在不影响项目最早完成时间本活动可以延迟的时间在不影响后置任务最早开始时间本活动可以延在影后务最早始时间本活动可迟的时间自由浮动(Free Float)chapter__739CPM估计A:100天开始结束B:10天chapter__740进度时间参数A:100B:10B:10A:ES=0,EF=100LS=0,LF=100B:ES=0,EF=10LS=90 , LF=100TF=LSES=90TF=LS-ES=90TF=LF-EF=90公式: EF= ES+durationLS=LF-LSLFdurationTF=LS-ES =LF-EFchapter__741任务滞后LagA完成之后3天B开始活动A结束---开始Lag=3活动Bchapter__742进度时间参数A:100Lag=5B:ES=0,EF=10LS=80,LF=90TF=LS-ES=80B:10C:5B:10C:5FF= 0CC:ES=15,EF=20LS=95,LF=100TF=LS-ES=80公式: ES(S)= EF(P) + Lag,LF(P) = LS (S) –LagTF=LS-ES, FF= ES(S)-EF(P)-TFLSES, FF ES(S)EF(P)Lagchapter__743FlFloat 例子例子EF(C)=ES (C) +6=14ES(G)EF(C)+014ES(G)=EF(C)+0=14LF(C)=LS(G)0=14LF(C)=LS(G)-0=14LS(C)=LF (C) -6=8TF=8chapter__7FF=144关键路径(CiilPh)关键路径(Critical Path )关键路径是决定项目完成的最短时间。
是时间浮动为0(Float=0)的路径网络图中最长的路径关键路径上的任何任务都是关键任务关键路径上的任何活动延迟,都会导致整个项关键路径上的任何活动延迟都会导致整个项目完成时间的延迟chapter__745 Simple Example of Determining theCiilPhCritical PathnConsider the following project network diagram. CidthfllijttkdiAssume all times are in days.startfinisha. How many paths are on this network diagram?hhikdi?b. How long is each path?c. Which is the critical path?d. What is the shortest amount of time needed to complete this project?chapter__746Determining the Critical Path for ProjectXProject X chapter__747关键路径的其他说明明确关键路径后,你可以合理安排进度关键路径可能不止一条在项目的进行过程中,关键路径可能改变的chapter__748正推法(F正推法(Forward pass)d)按照时间顺序计算最早开始时间和最早完成时间的方法,称为正推法.称为正推法首先建立项目的开始时间项目的开始时间是网络图中第项目的开始时间是网络图中第一个活动的最早开始时间个活动的最早开始时间从左到右,从上到下进行任务编排当一个任务有多个前置时,选择其中最大的最早完成日期作为其后置任务的最早开始日期公式:ES+Duration=EFEF+Lag=ESschapter__749正推法实例ESEFESEFESEF1Duration=7TkATask ALS88Duration=6Task C1414Duration3Duration=3Task G17ESEF17Duration=2TkHTask HLS19FinishStartESEFESEF1Duration=3Task BLS4ESEF4Duration=3Task D77Duration=3Task E10ESEFLS4Duration=2Task FLS6当一个任务有多个前置时,选择其中最大的最早完成日期当个任务有多个前置时选择其中最大的最早完成日期chapter__750作为其后置任务的最早开始日期逆推法(Bk逆推法(Backward pass)d)按照逆时间顺序计算最晚开始时间和最晚结束时间的方法称为逆推法法,称为逆推法.首先建立项目的结束时间项目的结束时间是网络图中最后项目的结束时间是网络图中最后一个活动的最晚结束时个活动的最晚结束时间从右到左,从上到下进行计算当一个前置任务有多个后置任务时,选择其中最小最晚开始日期作为其前置任务的最晚完成日期公式:公式LF-Duration=LSLS-Lag=LFpLSLagLFpchapter__751逆推图示ESEFESEFESEF1Duration=7Task A1LSStartES88Duration=6Task C1414Duration=3Task G178LS8141417ESEF17Duration=2Task H1719FinishEFESEF1Duration=3Task B8LS4ESEF4Duration=3Task D11LSES77Duration=3Task E101911141417EF4Duration=2TaskFTask F12LS146CP:A->C->G->HCp Path:18当一个前置任务有多个后置任务时,选择其中最小最晚开始日当个前置任务有多个后置任务时选择其中最小最晚开始日chapter__752期作为其前置任务的最晚完成日期课堂练习作为项目经理,你需要给一个软件项目做计划安排经过任务分解后得到任务A,B,C,D,安排,经过任务分解后得到任务E,F,G,假设各个任务之间没有滞后和超前,下图是这个项目的PDM网络图。