1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,上海交通大学计算机系,1,讲座,8,软件项目资源分配,曹健 教授 博士,2,内容,资源分配的目的,资源类型,识别资源需求,资源调度,3,资源分配的目的,活动调度,资源调度,成本调度,4,资源的特性,资源是项目中所需的人员或者任何事物,有些资源在整个项目中都需要,有些则在部分活动中需要,前者管理起来反而比较简单,项目分为:,人力:项目团队成员(经理,分析员,软件开发者,质量保障,其它人员),设备:别忘了还有基本的办公条件(桌椅),物料:软盘等,空间:如要容纳更多的人,要看看房间是否能够容纳,服务:,时间:,
2、钱:,5,识别资源需求,根据需要确定一定需求水平下的各种资源,尽量将资源需求想得更全面一些。,6,资源调度,将资源需求映射到具体的活动上,将活动计划表示称,Bar Chart,从中对每个资源产生,histogram(,柱状图)。,白的代表项目调度时间,灰色代表浮动时间,对分析员的需求,分析员在某些时候没有事干,而有些时候又可能没有足够人员,什么样的资源图最好?,7,资源调度,通过将活动延期或者将活动剖分开,可以使资源图变得均匀,表示第一周:,A,活动需要测试人员,1,个,,B,活动需要,2,个,,C3,个,,D,一个,,E,,三个,但是总共有,5,个人,B,被推后了,D,被剖开了,8,练习,阶
3、段,2,,阶段,4,需要四个分析员,项目经理决定在项目中安排,3,个分析员,如何去调整计划。,对阶段,4,中的资源平衡相对容易,只需要将活动,D,推后到,C,后,对阶段,2,中的资源平衡相对困难,9,资源调度,资源分配给一个活动后,其它活动便不能再分配。因而在多个活动需要同一资源时,需要对活动进行排序。考虑:,总浮动:根据总浮动对活动进行排序,具有最小浮动的活动具有最高优先级。在项目运行后,浮动时间是会发生变化的。因而需要动态调整。,根据一系列指标进行排序:最短关键活动,关键活动,最短非关键活动,具有最小浮动的非关键活动,非关键活动,(Burman),10,资源调度,项目经理发现仅仅有,3,个
4、分析员,对模块,D,的分析就不得不推迟直到对模块,B,的分析工作结束。这样一来,整个项目的时间就要延迟,5,天。她决定重新设计活动图。在原来的活动图中,需要检查完所有的分析工作才能开始设计工作。因此,这是一个瓶颈。因而她决定先检查对模块,A,B,,,D,的分析,然后就开始设计,对,C,的分析的检查另行进行。,11,资源调度,请重新画资源分配图,12,答案,13,生成关键路径,对资源的调度可以生成新的关键路径。由于缺少某一资源而使某一活动推迟,并用完浮动时间,从而该活动成为关键活动。,14,生成关键路径,项目经理决定推迟对模块,C,的分析以保证仅仅需要三个分析员。下图为修改后的棒状图和资源图。请
5、确定关键路径。,15,生成关键路径,IoE/P/4,活动延误了,15,天,以等待分析员。这种情况需要依靠于,IoE/P/3,或,IoE/P/5,能够及时完成。因而即使,IoE/P/3,,,IoE/P/5,不在关键路径上,但他们是关键活动。,16,成本计算,缩短时间,需要增加人员,增加人员,意味着增加成本,因而需要一种,平衡,17,考虑资源特性,在大型建筑领域,人力一般只需要被看作平等的,各人的技能和效率无需考虑,但是对于软件开发领域,技能和经验扮演了重要角色。,可用性(,Availability,),关键性(,Criticality,):将有经验的人分配到关键路径上,风险(,Risk,),训练
6、Training,),团队构造(,Team Building),18,考虑资源特性,项目经理,Amanda,决定谁分析某模块谁就要设计该模块,因为她认为这样可以提高开发人员,Belinda,Tom,和,Daisy,的积极性。,她决定将,Tom,一位刚经过培训的人员,去分析和设计模块,D,因为与它的持续时间相比,该活动具有更大的浮动时间。,C,的分析和设计在关键路径上,她决定将这两个任务分配给,Belinda,,一位资深工程师。,19,成本调度,分类:,人员成本(,Staff Costs),一般管理费用(,Overheads),使用费,(Usage Charges):,使用计算机的费用,20,成本调度,21,调度顺序,22,总结,资源分配的目的,资源类型,识别资源需求,资源调度,