资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,上海交通大学计算机集成技术开放实验室,2/8/2020,第6讲 软件项目计划,1,软件项目计划,目的,保证在,正确的时间,有,正确的资源,可用,避免,不同的活动,在,相同的时间,竞争,相同的资源,为每个人员分配任务,实际的进度可以有,标准,进行衡量,产生成本消耗计划,根据实际情况,调整项目,可行性研究,协调人员,2,何时计划,计划是一个渐进、迭代的过程,每次迭代,细节更丰富,也更准确,每一此迭代的目的有所不同:,可行性研究阶段:时间和成本估计,项目开始:生成活动计划保证资源分配和资金流,项目进行中:不断监控和调整项目计划,3,项目和活动,项目由一组相关的活动构成,项目在至少有一个活动准备开始时才开始,项目中所有的活动结束项目才结束,活动必须有一个清晰的开始和清晰的结束点,一般以产生一个可交付物为标志,活动需要资源,并假定在活动中资源的需求水平保持一致,活动的持续时间必须可预测,活动之间有优先顺序,4,活动顺序和进度表定义,在整个项目中,我们需要一份能清晰描述活动发生的时间和所需要的资源的计划。,仅仅考虑活动之间的顺序关系,我们称之为活动排序(Sequencing)逻辑设计,考虑资源约束,我们称为调度(Scheduling)物理设计,5,网络计划模型,将项目活动和其关系可以表示成网络,该项技术起源于二十世纪50年代,CPM(关键路径法,Critical Path Method),PERT(计划评审技术,Program Evaluation Review Technique),优先网络(Precedence Networks)是上述两种模型的变种,三种模型是类似的,因而经常被有些人通称为CPM,6,CPM的例子,5,1,2,3,4,6,7,8,9,10,Specify overall system,Specify module A,Specify module B,Specify module C,Specify module D,Check specifications,Design module A,Design module B,Design module C,Design module D,Code Test module A,Code Test module B,Code Test module C,Code Test module D,Integrate test system,7,CPM的构造方法,项目网络只有一个起点,项目网络只有一个终点,连接有持续时间,节点无持续时间,时间从左到右,节点顺序编号,网络不包含圈,8,CPM构造方法,网络不包含悬点,前继是指某活动紧前活动,1,2,4,5,3,Test program,Code program,Design program,Write User Manual,9,练习,下列网络图中哪些存在错误,10,CPM构造方法,哑活动(dummy activity),11,延时活动的表达,1,3,2,4,Test Prototype,Document amendments,1 day,2 days,12,加入时间因素,关键路径法主要关注两个目标:,尽快完成整个项目,识别那些一旦延期将对整个项目周期产生影响的活动,对每一个活动赋予持续时间后,我们可以采用前向路径(forward pass)计算项目和各个活动的最早结束时间,采用反向路径法(backward pass)计算项目和活动的最完开始时间,13,CPM中节点表示,Event number:事件代号,Earliest Date:最早时间,Latest Date:最晚时间,Slack:,Event Number,Earliest date,Latest date,Slack,14,例子,1,2,A=6,3,B=4,4,C=3,D=4,5,E=3,F=10,H=2,6,G=3,15,例子:前向路径计算,1,0,2,6,A=6,3,4,B=4,4,9,C=3,D=4,5,10,E=3,F=10,H=2,6,13,G=3,1,Activity,Duration,(weeks),Earliest start date,Latest start date,Earliest finish date,Latest finish date,Total float,A,6,0,6,B,4,0,4,C,3,6,9,D,4,4,8,E,3,4,7,F,10,0,10,G,3,10,13,H,2,9,11,16,例子:后向路径计算,1,0,0,2,8,6,A=6,3,7,4,B=4,4,11,9,C=3,D=4,5,10,10,E=3,F=10,H=2,6,13,13,G=3,1,Activity,Duration,(weeks),Earliest start date,Latest start,date,Earliest finish date,Latest finish date,Total float,A,6,0,2,6,8,B,4,0,3,4,7,C,3,6,8,9,11,D,4,4,7,8,11,E,3,4,7,7,10,F,10,0,0,10,10,G,3,10,10,13,13,H,2,9,11,11,13,17,关键路径识别,最早开始时间和最晚开始时间的差称为,机动时间,(Slack),它表示一个事件推迟多少时间可以不影响项目的结束。Slack为0的事件为关键事件,将关键事件连接起来的最长路径为关键路径,关键路径的意义:,必须保证关键路径上的资源和关键路径活动顺利执行,要缩短整个项目周期,必须缩短关键路径,1,0,0,2,8,6,A=6,3,7,4,B=4,4,11,9,C=3,D=4,5,10,10,E=3,F=10,H=2,6,13,13,G=3,2,0,3,2,0,0,18,活动的浮动时间,具有slack事件的活动具有浮动时间。总浮动是活动的最早结束时间和最迟结束时间的差。,Activity,Duration,(weeks),Earliest start date,Latest start date,Earliest finish date,Latest finish date,Total float,A,6,0,2,6,8,2,B,4,0,3,4,7,3,C,3,6,8,9,11,2,D,4,4,7,8,11,3,E,3,4,7,7,10,3,F,10,0,0,10,10,0,G,3,10,10,13,13,0,H,2,9,11,11,13,2,19,活动的浮动时间,各个活动的浮动时间是相关的,如果某个活动用了浮动时间,则后续的活动可能就没有了浮动时间。其它浮动时间:,自由浮动(free float),:活动的最早结束时间和紧接活动的最早开始时间的差为自由浮动时间,它不影响其它活动。,阻碍浮动(interfering float),:活动的自由浮动与总浮动之差,它反映了总浮动使用后,活动还能被延时多少而不影响整个项目的结束时间,20,缩短项目时间和识别关键活动,缩短项目时间,活动持续时间的缩短,整个项目过程的重组,识别关键活动,关键路径上的活动,近似关键路径:浮动时间是整个关建路径的10的路径,近似关键路径很容易变为关键路径,21,优先网络,优先网络(precedence networks),优先网络使用节点代表活动,而连接代表依赖关系,Activity label,Duration,Earliest Start,Latest Start,Activity description,Earliest finish,Latest finish,Activity Span,Float,A,Duration,0,2,Hardware design,6,Latest finish,Activity Span,Float,IoE/P/1,34 days,0,0,Specify overall system,34,34,34 days,0 days,IoE/P/2,20 days,34,34,Specify module A,54,54,20 days,0 days,IoE/P/3,15 days,34,39,Specify module B,49,54,20 days,5 days,IoE/P/5,15 days,34,39,Specify module D,49,54,20 days,5 days,IoE/P/4,25 days,34,48,Specify module C,59,73,39 days,14 days,IoE/P/6,2 days,54,54,Check specs,56,56,2 days,0 days,IoE/P/6a,1 day,59,73,Check specs,60,74,15 days,14 days,IoE/P/9,4 days,60,74,Design module C,64,78,18 days,14days,IoE/P/10,4 days,56,64,Design module D,60,78,18 days,14days,IoE/P/8,6 days,56,59,Design module B,62,65,9 days,3 days,IoE/P/7,7 days,56,56,Design module D,63,63,7 days,0 days,IoE/P/11,30 days,63,63,Code test module A,93,93,30 days,0 days,IoE/P/12,28 days,62,65,Code test module B,90,93,31 days,3 days,IoE/P/14,25 days,60,68,Code test module A,85,93,33 days,8 days,IoE/P/11,15 days,64,78,Code test module A,79,93,29 days,14 days,IoE/P/15,6 days,93,93,Code test module A,99,99,6 days,0 days,22,练习,计算自由浮动和阻碍浮动时间,自由浮动(free float),:活动的最早结束时间和紧接活动的最早开始时间的差为自由浮动时间,它不影响其它活动。,阻碍浮动(interfering float),:活动的自由浮动与总浮动之差,它反映了自由浮动使用后,活动还能被延时多少而不影响整个项目的结束时间,Activity,Total float,Free float,Interf.float,A,2,0,2,B,3,0,3,C,2,0,2,D,3,1,2,E,3,3,0,F,0,0,0,G,0,H,2,Activity,Duration,(weeks),Earliest start date,Latest start date,Earliest finish date,Latest finish date,Total float,A,6,0,2,6,8,2,B,4,0,3,4,7,3,C,3,6,8,9,11,2,D,4,4,7,8,11,3,E,3,4,7,7,10,3,F,10,0,0,10,10,0,G,3,10,10,13,13,0,H,2,9,11,11,13,2,1,0,0,2,8,6,A=6,3,7,4,B=4,4,11,9,C=3,D=4,5,10,10,E=3,F=10,H=2,6,13,13,G=3,2,0,3,2,0,0,23,
展开阅读全文