第四章软件项目成本计划课件.ppt

上传人:小飞机 文档编号:1834583 上传时间:2022-12-21 格式:PPT 页数:134 大小:758.50KB
返回 下载 相关 举报
第四章软件项目成本计划课件.ppt_第1页
第1页 / 共134页
第四章软件项目成本计划课件.ppt_第2页
第2页 / 共134页
第四章软件项目成本计划课件.ppt_第3页
第3页 / 共134页
第四章软件项目成本计划课件.ppt_第4页
第4页 / 共134页
第四章软件项目成本计划课件.ppt_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《第四章软件项目成本计划课件.ppt》由会员分享,可在线阅读,更多相关《第四章软件项目成本计划课件.ppt(134页珍藏版)》请在三一办公上搜索。

1、chapter_4,0,软件开发项目管理,北京邮电大学软件学院韩万江,chapter_4,1,承上启下,chapter_4,2,成本计划,chapter_4,3,软件开发项目管理,第 4 章软件项目成本计划,chapter_4,4,本章要点,一、软件项目规模成本的概念二、估算的过程三、估算的方法四、成本预算五、项目核心(进度)计划续六、案例分析,chapter_4,5,关于估算,估算不是很准确的,有误差的经验(历史)数据非常重要不要太迷信数学模型,chapter_4,6,软件项目规模,软件项目规模即工作量,是从软件项目范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务包括

2、:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。,chapter_4,7,规模的单位,LOC(Loc of Code)源代码程序长度的测量FP(Function Point)用系统的功能数量来测量人月人天人年,chapter_4,8,软件项目成本,完成软件规模相应付出的代价。待开发的软件项目需要的资金。 人的劳动的消耗所需要的代价是软件产品的主要成本,chapter_4,9,成本的单位,货币单位人民币元美元.,chapter_4,10,软件的规模和成本的关系,规模是成本的主要因素,是成本估算的基础有了规模就确定了成本,chapter_4,11,本章要点,一、软件项目规模成本

3、的概念二、估算的过程三、估算的方法四、成本预算五、项目核心(进度)计划续六、案例分析,chapter_4,12,成本估算过程,估算输入,估算结果,成本估算方法,chapter_4,13,成本估算输入,项目需求、 WBS历史项目度量资源要求(资源编制计划)资源消耗率:如人员成本: 100元/小时进度规划:项目总进度(一般是合同要求)学习曲线,chapter_4,14,资源规划,需要的资源种类、数量等,chapter_4,15,成本估算,直接成本间接成本,chapter_4,16,直接成本,与具体项目相关的成本,chapter_4,17,间接成本,不能具体到某个项目中的成本,可以分摊到各个具体项目

4、中的成本,例如:培训房租水电员工福利市场费用管理费其他等等,chapter_4,18,项目估算结果,估算文件资源,资源的数量,质量标准,估算成本等信息单位:一般是货币单位BAC(Budget At completion)估算说明工作范围估算的基础和依据估算的假设估算的误差变动等,chapter_4,19,估算说明,预测所需要的总工作量的过程。是一种量化的结果可以有一些误差成本估算不同于项目定价贯穿于软件的生存周期。,chapter_4,20,本章要点,一、软件项目规模成本的概念二、估算的过程三、估算的方法四、成本预算五、项目核心(进度)计划续六、案例分析,chapter_4,21,估算的基本方

5、法,代码行、功能点类比 (自顶向下)估算法自下而上估算法参数法估算法专家估算法,chapter_4,22,代码行(LOC),从软件程序量的角度定义项目规模。要求功能分解足够详细的有一定的经验数据(类比和经验方法)与具体的编程语言有关,chapter_4,23,代码行技术的主要优点,代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。,chapter_4,24,代码行(LOC)缺点,对代码行没有公认的可接受的标准定义代码行数量依赖于所用的编程语言和个人的编程风格. 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量. 代码行强调编码的工作量,只是项目实现阶段的一

6、部分,chapter_4,25,功能点(FP: Function point),用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化,chapter_4,26,功能点的公式,FP =UFC*TCFUFC:未调整功能点计数TCF:技术复杂度因子,chapter_4,27,UFC-未调整功能点计数,功能计数项:外部输入外部输出外部查询外部文件内部文件,chapter_4,28,UFC-未调整功能点计数,功能计数项的复杂度等级,chapter_4,29,功能点计算实例-UFC,chapter_4,30,TCF-技术复杂度因子,TCF=0.65+

7、0.01(sum(Fi): Fi:0-5,TCF:0.65-1.35,chapter_4,31,技术复杂度因子的取值范围,chapter_4,32,功能点计算实例,FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=322,chapter_4,33,功能点与代码行的转换,chapter_4,34,估算的基本方法,代码行、功能点类比 (自顶向下)估算法自下而上估算法参数法估算法专家估算法,chapter_4,35,类比-定义,估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后按比例将它分配

8、到各个开发任务单元中是一种自上而下的估算形式,chapter_4,36,类比使用情况,有类似的历史项目数据信息不足(要求不是非常精确)的时候在合同期和市场招标时,chapter_4,37,类比特点,简单易行,花费少具有一定的局限性准确性差,可能导致项目出现困难,chapter_4,38,类比举例,chapter_4,39,类比举例,证券交易网站需求类似历史数据:10万,chapter_4,40,估算的基本方法,代码行、功能点类比 (自顶向下)估算法自下而上估算法参数法估算法专家估算法,chapter_4,41,自下而上定义,利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加

9、起来得出项目总成本。,chapter_4,42,自下而上使用情况,项目开始以后,WBS的开发阶段需要进行准确估算的时候,chapter_4,43,自下而上特点,这种方法相对比较准确,它的准确度来源于每个任务的估算情况非常费时,估算本身也需要成本支持可能发生虚报现象,chapter_4,44,自下而上举例,银行综合业务系统估算结果,chapter_4,45,估算的基本方法,代码行、功能点类比 (自顶向下)估算法自下而上估算法参数法估算法专家估算法,chapter_4,46,参数估算法定义,一种使用项目特性参数建立数据模型来估算成本的方法,是一种统计技术,如回归分析和学习曲线。,chapter_4

10、,47,参数估算法使用情况,存在成熟的项目估算模型应该具有良好的数据库数据为基础,chapter_4,48,参数估算法特点,比较简单,而且也比较准确如果模型选择不当或者数据不准,也会导致偏差,chapter_4,49,参数成本估算实例(适合单价合同),chapter_4,50,经验导出成本模型,提供工作量(规模)的直接估计通过过去项目数据,进行回归分析,得出的回归模型,chapter_4,51,经验导出成本模型,整体公式:E=A+B*SCE:以人月表示的工作量A,B,C:经验导出的系数S:主要的输入参数(通常是LOC,FP等),chapter_4,52,经验导出成本模型(续),面向LOC驱动的

11、Walston-Felix(IBM)E= 5.2*(KLOC)0.91Balley-BasiliE=5.5+0.73*(KLOC)1.16.COCOMOE=3.2*(KLOC)1.05DotyE=5.288*(KLOC)1.047,chapter_4,53,经验导出成本模型(续),面向FP驱动的Albrecht and GaffneyE=-12.39+0.0545FPMatson,BarnettE=585.7+15.12FP,chapter_4,54,建议掌握模型,模型(Walston-Felix)COCOMO模型(Boehm),chapter_4,55,模型,1977年,IBM的Walsto

12、n和Felix提出了如下的估算公式E 5.2L 0.91 ,L是源代码行数(以KLOC计),E是工作量(以PM计) D 4.1L 0.36,D是项目持续时间(以月计) S 0.54E 0.6,S是人员需要量(以人计) DOC 49L 1.01。DOC是文档数量(以页计),chapter_4,56,举例,采用java 完成项目,366功能点,则L = 36646 = 16386行 = 16.386KLOCE 5.2L 0.91 5.216.386 0.91 66人月 DOC 49L 1.01 4916.386 1.01 826页,chapter_4,57,COCOMO(Constructive

13、Cost model),结构化成本模型 是世界上应用最广泛的参数型软件成本估计模型由Barry Boehm开发的,chapter_4,58,COCOMO模型发展,COCOMO 81 COCOMO II 模型系列,chapter_4,59,COCOMO 81,项目类型:有机: Organic嵌入式: Embedded半有机: Semidetached,模型类别:基本COCOMO中等COCOMO高级COCOMO,chapter_4,60,模型类别,基本COCOMO静态单变量模型中等COCOMO基本模型基础上考虑影响因素,调整模型高级COCOMO中等COCOMO模型基础上考虑各个步骤的影响,chap

14、ter_4,61,项目类型,有机: Organic,各类应用程序,例如数据处理、科学计算 等受硬件的约束比较小,程序的规模不是很大 嵌入式: Embedded系统程序,例如实时处理、控制程序等 紧密联系的硬件、软件和操作的限制条件下运行,软件规模任意 半有机: Semidetached各类实用程序,介于上述两种软件之间,例如编译器(程序) 规模和复杂度都属于中等或者更高,chapter_4,62,基本COCOMO,E= a(KLOC)exp(b)其中: E是所需的人力(人月), KLOC是交付的代码行a , b是依赖于项目自然属性的参数:,chapter_4,63,基本COCOMO系数表,ch

15、apter_4,64,举例,一个33.3 KLOC的软件开发项目,属于中等规模、半有机型的项目,采用基本COCOMO:a=3.0,b=1.12。E = 3.0L 1.12 = 3.033.3 1.12 = 152 PM,chapter_4,65,中等COCOMO,E=a(KLOC)exp(b)*乘法因子a b是系数乘法因子是根据成本驱动属性打分的结果,对公式的校正系数,chapter_4,66,中等COCOMO系数表,chapter_4,67,乘法因子属性,产品属性平台属性人员属性过程属性,chapter_4,68,乘法因子,chapter_4,69,乘法因子计算,每个属性Fi的取值范围为:

16、很低、低、正常、高、很高、极高,共六级。正常情况下 Fi=1。当每个Fi的值选定后,乘法因子的计算如下 乘法因子F1*F2* Fi * Fn,chapter_4,70,举例(续),一个33.3 KLOC的软件开发项目,属于中等规模、半有机型的项目,采用中等COCOMO模型 a=3.0,b=1.12。 乘法因子0.70*0.85*1*1.15=1.09E = 3.0L 1.12 = 3.033.3 1.12 PM,chapter_4,71,高级(详细)COCOMO,将项目分解为一系列的子系统或者子模型 在一组子模型的基础上更加精确地调整一个模型的属性,,chapter_4,72,高级(详细)CO

17、COMO,chapter_4,73,估算的基本方法,代码行、功能点类比 (自顶向下)估算法自下而上估算法参数法估算法专家估算法,chapter_4,74,专家估算法,由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。,chapter_4,75,专家估算法-Deiphi,组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算专家详细研究软件规格说明后,对该软件提出3个规模的估算值最小ai最可能的mi最大bi组织者对专家的表格中的答复进行整理计算每位专家的Ei=(ai+4mi+bi)/6,chapter_4,76,专家估

18、算法-Deiphi(续),综合结果后:E=E1+E2+En/n(N:表示N 个专家)再组织专家无记名填表格,比较估算差,并查找原因如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程 ,最终可以获得一个多数专家共识的软件规模,chapter_4,77,专家估算法-举例,某多媒体信息查询系统专家估算专家1:1,8,9=(1+9+4 * 8 )/6=7(万元)专家2: 4, 6 , 8 =(4+8+4*6)/6=6 (万元)估算结果=(6+7)/2=6.5 (万元),chapter_4,78,估算方法总结,初期类比专家估算计划阶段自下而上参数模型实施阶段(包括变更发生)自下而上参

19、数模型,chapter_4,79,成本估算方法综述,主要考虑三种模型:类比法,自下而上法,参数法.自下而上法费时费力,参数法比较简单自下向上法与参数法的估计精度相似类比法通常用来验证参数法和自下而上法的结果各种方法不是孤立的,应该注意相互的结合使用,chapter_4,80,实用软件估算模型,是一种自下而上和参数法的结合模型,步骤如下:对任务进行分解:1,2,i估算每个任务的成本Ei直接成本=E1+E2+ Ei+ En项目总估算成本= 直接成本+间接成本项目总报价=项目总估算成本+风险利润 风险利润=利润+风险基金+税,chapter_4,81,估算每个任务的成本,直接估算成本Ei先估算规模Q

20、i,然后估算成本Ei= Qi *人力成本参数唯一估计值:Qi=AvgPERT算法: Qi=(Max+4Avg+Min)/6,退出,chapter_4,82,直接成本估算,直接成本=规模*人力成本参数直接成本组成开发成本管理成本质量成本例如:人力成本参数=2万/人月,30人月规模的项目的直接成本是 60万,chapter_4,83,直接成本估算简易估算:,开发(工作量)规模:Scale(Dev) (单位:人月)管理、质量(工作量)规模:Scale(Mgn)=a* Scale(Dev)a为比例系数:例如:20%-25%直接成本 Scale(Dev) a* Scale(Dev),退出,chapter

21、_4,84,项目总估算成本,估算成本=直接成本+间接成本间接成本估算:按照企业模型直接估算:简易算法: 间接成本=直接成本*间接成本系数 间接成本= 规模*人力成本参数*间接成本系数 例如:间接成本系数=0.3,chapter_4,85,项目总估算成本,估算成本=直接成本+间接成本估算成本=直接成本+直接成本*间接成本系数估算成本=直接成本(1+间接成本系数)估算成本=规模*人力成本参数(1+间接成本系数)成本系数=人力成本参数* (1+间接成本系数)简易算法:估算成本=规模*成本系数例如:成本系数= 3万/人月,退出,chapter_4,86,项目总报价,项目总报价=项目总估算成本+风险利润

22、项目利润=估算成本*a%风险基金=估算成本*b%税=估算成本*c% (例如:c为5.5左右)项目总报价=(a+b+c) %*项目总估算成本+项目总估算成本,chapter_4,87,总估算成本(BAC),费用,BAC,时间,?,chapter_4,88,本章要点,一、软件项目规模成本的概念二、估算的过程三、估算的方法四、成本预算五、项目核心(进度)计划续六、案例分析,chapter_4,89,成本预算,成本预算是将项目的总成本按照项目的进度分摊到各个工作单元中去。成本预算将总的成本安排到各个任务中 成本预算的目的是产生成本基线,chapter_4,90,项目成本预算,分配项目成本预算包括三种情

23、况:分配资源成本给任务分配固定资源成本给任务分配固定成本,chapter_4,91,分配资源成本,资源成本与资源的基本费率紧密相连设置资源费率标准费率加班费率每次使用费率。,chapter_4,92,分配固定资源成本,当一个项目的资源需要固定数量的资金时,用户可以向任务分配固定资源成本。例如:需要的硬件设备,chapter_4,93,分配固定成本,有些任务是固定成本的类型的任务,也就是说,用户知道某项任务的成本不变,不管任务的工期有多长,或不管任务使用了那些资源。在这种情况下,用户向任务直接分配成本。例如:培训任务,chapter_4,94,成本基线,chapter_4,95,估算准确度,ch

24、apter_4,96,估算不准的原因,基础数据不足缺乏经验的估算人员签约前后不连贯低劣的推测技术估算对需求的敏感性,chapter_4,97,避免低劣估算,避免无准备的估算留出估算的时间,并做好计划使用以前的项目数据使用开发人员提供的数据为基础估算分类法估算详细的较低层次上的估算使用软件估算工具使用几种不同估算技术,并比较它们的结果,chapter_4,98,估算的表达方式技巧,加减限定6个人月,+3人月,-1人月范围5-9人月,chapter_4,99,估算的表达方式技巧,3.风险量化: 见下例,chapter_4,100,估算的表达方式技巧,4.情况: 见下:案例估算的例子,chapter

25、_4,101,软件工程中的真相与假象,真相8:造成软件项目失控最普遍的两个原因之一就是软件估算不足(另外的原因是需求不稳定). 真相9:往往在错误的时间,甚至在没有定义需求也即没有理解问题之前,就进行软件估算. 真相10:往往由错误的人员,即不是由软件开发人员或者项目经理,而是由高层管理或者市场营销,进行软件估算. 真相11:由错误的人员、在错误的时间做出的软件估算不但往往是错误的,也很少随着项目的进行做必要的调整.,chapter_4,102,软件工程中的真相与假象,真相12:虽然软件估算会发生如此错误,但是人们不去关心产生错误的原因,却还在努力按照错误估算的时间进度执行. 真相13:管理人

26、员和技术人员对软件估算的认识是完全隔绝的,因此也难以达到一致的目标. 真相14:很少有真正的可行性研究. 假象6:要估算软件项目开发时间和开发成本,必须首先估算软件项目的代码行数,chapter_4,103,本章要点,一、软件项目规模成本的概念二、估算的过程三、估算的方法四、成本预算五、项目核心(进度)计划续六、案例分析,chapter_4,104,编制项目核心(进度)计划步骤,进度编制资源调整成本预算计划优化调整计划基线,chapter_4,105,成本预算,结合进度重新调整项目成本预算:资源成本固定资源成本固定成本,chapter_4,106,编制项目核心(进度)计划步骤,进度编制资源调整

27、成本预算计划优化调整计划基线,chapter_4,107,计划优化调整,调整资源,解决资源冲突调整进度,优化项目,缩短工期调整项目成本预算,以便减少项目费用.,chapter_4,108,调整资源,解决资源冲突,资源冲突(过度分配)主要有两种表现: 1、分配给一个资源的工时总量大于它的最大可用工时量。 2、同一种资源被分配给时间上重叠的几个任务或项目中。,chapter_4,109,解决资源冲突的方法,资源调配推迟资源开始工作时间替换资源设置资源加班时间调整资源日历只使用资源的一部分工作时间,chapter_4,110,优化进度,缩短工期,项目中各任务的执行时间是否合理,有无冲突现象尽可能缩短

28、项目工期,chapter_4,111,优化进度,缩短工期,分解关键任务给任务增加资源缩减关键任务的工期重叠关键任务设置日历增加工作时间通过分配加班工时来缩短关键任务,chapter_4,112,缩减项目工期,1、分解关键任务注意:通过“分解关键任务”可以缩短任务工期,但有时候,受资源量的限制,有些任务是不能同步进行的,所以这时任务分拆也无助于缩短项目周期。,chapter_4,113,缩减项目工期,2、给任务增加资源注意: 增加的资源数量不能大于资源的最大可用量。增加资源必须是主导项目工期的关键路径上。关键任务的缩短可能会变成非关键任务,因此,此时增加过多的资源是无法达到继续缩短总工期的目的的

29、。,chapter_4,114,缩减项目工期,3、缩减关键任务的工期 注意:在任务已分配了资源的情况下,缩短任务工期意味着增加资源的工作量,可能导致资源的过度分配。,chapter_4,115,缩减项目工期,4、重叠或延迟链接任务 方法有两种: 改变任务的链接关系 在链接任务之间增加负延迟,chapter_4,116,缩减项目工期,5、设置日历增加工作时间可以通过改变资源的日历来调整工期,比如将资源原来的休息时间改变成工作时间来实现。这样通过增加资源的工作时间来缩短任务的工期。,chapter_4,117,缩减项目工期,6 、通过分配加班工时来缩短关键任务 需要在关键任务上为资源设置加班时间,

30、以缩短任务工期。,chapter_4,118,调整项目成本预算,降低预算成本的方法:降低资源的费率减少任务的工时减少加班替换资源减少任务的固定成本删除任务,chapter_4,119,减少项目成本,1降低资源的费率 降低资源的费率往往会打击工作人员的积极性,但可以通过降低其他资源的费率来实现,比如降低能源消耗、设备费用等。 2减少任务的工时 适当的减少工时,可以降低任务的费用。但减少工时同时也影响项目的工期。,chapter_4,120,减少项目成本,3减少加班 加班需要支付加班费率,这通常要高于资源费率,所以减少加班可以有效的减少任务成本。,chapter_4,121,减少项目成本,4替换资

31、源用廉价的资源替换比较高价的资源,但有一个前提,那就是替换的资源同样能胜任这项任务。 5减少任务的固定成本固定成本就是任务本身所需要的成本。,chapter_4,122,减少项目成本,6删除任务确认删除改任务对项目没有影响或影响在可控制范围内才可采用。,chapter_4,123,Most likely forgotten areas in development planning?,Establish Development EnvironmentPlatformMachine allocationSoftware licenseInstallation and setupEstablish

32、 build scheduledaily buildweekly builddevelopment buildtest buildQuality managementConfiguration management,chapter_4,124,Most likely forgotten areas in development planning?,InstallInstallation design, coding and testingMultiplatform considerationDocumentation PlanHow many books?getting startedadmi

33、nistration guideapplication and programming referenceinstallation guide release notereadmesoft-copy? hard-copy?other?,chapter_4,125,最后审查,角色是否每个任务都有完整的角色,如果需要就增加角色人员这些角色都做什么?必要的分配任务技能分配任务的人是否具备应有的能力可行性什么时候真的需要这些人,chapter_4,126,项目计划的渐进性,chapter_4,127,编制项目核心(进度)计划步骤,进度编制资源调整成本预算计划优化调整计划基线,chapter_4,128

34、,比较基准计划,BCWS(Budgeted cost of work scheduled:计划工作成本),费用,时间,资源,BAC (Budget At Completion),chapter_4,129,Ms Project Plan,项目计划实例,chapter_4,130,本章要点,一、软件项目规模成本的概念二、估算的过程三、估算的方法四、成本预算五、项目核心(进度)计划续六、案例分析,chapter_4,131,案例分析,“校务通系统”项目成本估算项目估算结果,chapter_4,132,小结,成本估算的过程成本估算的方法掌握成本估算的技巧,chapter_4,133,核心计划小结,合同,需求,WBS,活动,活动排序,活动历时估计,编制计划,成本估算,成本预算,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号