第四章 软件项目成本管理.ppt
《第四章 软件项目成本管理.ppt》由会员分享,可在线阅读,更多相关《第四章 软件项目成本管理.ppt(193页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第四章第四章软件项目成本管理软件项目成本管理0本章内容q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、成本估算q五、成本预算q六、成本控制1成本n项目活动或其他组成部分的货币价值或价格,包括为实施、完成或创造该活动或其组成部分所需资源的货币价值。n项目成本:项目全过程所耗费的各种成本的总和为项目成本。2项目成本管理n在项目实施过程中,为了保证完成项目所花费的实际成本不超过其预算成本而展开的项目成本估算、项目预算编制和项目成本控制等方面的活动。3成本管理n为了确保项目在预算内按时、保质、经济高效的完成项目目标而展开的一种必要的管理活动。n成本管理计划:制定项目成本结构、估算、预
2、算和控制的标准n成本估算:中心环节编制一个为完成项目各活动所需要的资源成本的近似估算n成本预算:项目进度将总成本估算分配到各单项工作活动上n成本控制:项目跟踪控制项目预算的变更4成本失控的原因n成本估算工作和成本预算工作不够准确细致;n许多项目在进行成本估算和成本预算及制定项目成本控制方法上并没有统一的标准和规范可行;n思想上认识上存在误区,认为项目具有创新性,项目实施过程中变化太大,实际成本超支在所难免。5产品全生命周期成本n在产品或系统的整个使用生命期内,在获得阶段、运营与维护以及生命周期结束时对产品的处置所发生的全部成本。一般产品全生命周期成本包括项目全生命周期成本。6成本的类型n可变成
3、本随着生产量、工作量或时间而变的成本。主要是原材料,燃料,动力等生产要素的价值,当一定期间的产量增大时,原材料,燃料,动力的消耗会按比例相应增多,所发生的成本也会按比例增大,故称为可变成本。n固定成本不随着生产量、工作量或时间而变的成本。固定成本总额只有在一定时期和一定业务量范围内才是固定的,这就是说固定成本的固定性是有条件的。这里所说的一定范围叫做相关范围。如业务量的变动超过这个范围,固定成本就会发生变动。7成本的类型n直接成本直接可以归属于项目工作的成本。n间接成本来自一般管理费用科目或几个项目共同担负的项目成本所分摊给项目的费用。8间接成本q不能具体到某个项目中的成本,q可以分摊到各个具
4、体项目中的成本,例如:q培训q房租水电q员工福利q市场费用q管理费q其他等等9成本的单位q货币单位q人民币元q美元q.10管理储备n单独计划出来的成本,以备未来不可预见的事件发生时使用。n成本储备、进度储备。11成本基准n经批准的按时间安排的成本支出计划,并随时反应了经批准的项目成本变更,被用于度量和监督项目的实际执行成本。12学习曲线理论n当重复生产许多产品时,那些产品的单位成本随着数量的增多呈规律性递减。该理论用来估计生产大量产品的项目的成本。13软件项目成本估算的困难n、需求信息的复杂性n、开发技术与工具的不断变化n、同类项目的缺乏n、项目不同人员的不同见解n、缺乏专业和富有经验的人才n
5、、管理层的压力和误解14关于估算q估算不是很准确的,有误差的q经验(历史)数据非常重要q不要太迷信数学模型15估算不准确的原因估算不准确的原因n基础数据不足;基础数据不足;n估算对需求的敏感性;估算对需求的敏感性;n项目中的不确定性因素,变更问题;项目中的不确定性因素,变更问题;n缺乏经验的估算人员;缺乏经验的估算人员;n签约前后的不连贯和低劣的推测技术;签约前后的不连贯和低劣的推测技术;16软件项目规模q软件项目规模即工作量,是从软件项目范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务q包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。17规模的
6、单位qLOC(Loc of Code)q源代码程序长度的测量qFP(Function Point)q用系统的功能数量来测量q人月q人天q人年18软件项目成本q完成软件规模相应付出的代价。q待开发的软件项目需要的资金。q人的劳动的消耗所需要的代价是软件产品的主要成本19软件的规模和成本的关系q规模是成本的主要因素,是成本估算的基础q有了规模就确定了成本20本章内容q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、成本估算q五、成本预算q六、成本控制21成本估算过程估算输入估算结果成本估算方法22成本估算输入q项目需求、WBSq历史项目度量q资源要求(资源编制计划)q资源消耗率:如
7、人员成本:100元/小时q进度规划:项目总进度(一般是合同要求)q学习曲线23资源规划q需要的资源种类、数量等24项目估算结果q估算文件q资源,资源的数量,质量标准,估算成本等信息q单位:一般是货币单位qBAC(Budget At completion)q估算说明q工作范围q估算的基础和依据q估算的假设q估算的误差变动等25估算说明q预测所需要的总工作量的过程。q是一种量化的结果q可以有一些误差q成本估算不同于项目定价q贯穿于软件的生存周期。26什么时候开始成本估算?n当决定竞标的时候n开发WBSn当中途接管一个项目的时候n当项目进行到下一个阶段的时候n项目范围变更的时候27直接成本说明n直接
8、成本=开发成本+管理成本+质量成本n直接成本=规模*人力成本参数n例如:人力成本参数=2万/人月,30人月的项目的直接成本是 60万28间接成本说明n间接成本=直接成本*间接成本系数n间接成本=规模*人力成本参数*间接成本系数n例如:间接成本系数=1.5-329项目总估算成本n估算成本=直接成本+间接成本n估算成本=规模*人力成本参数(1+间接成本系数)n成本系数=人力成本参数*(1+间接成本系数)n简易算法:估算成本=规模*成本系数例如:成本系数=3万/人月30项目总报价项目总报价项目总报价=项目总估算成本项目总估算成本+风险利润风险利润1.项目利润=估算成本*a%2.风险基金=估算成本*b
9、%3.税=估算成本*C%(例如:C为5.5左右)项目总报价=(100+a+b+c)%*估算成本31成本估算容易被忽视的因素n间接成本n学习曲线n项目完成的时限n质量要求n储备32本章内容q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、成本估算q五、成本预算q六、成本控制33估算的基本方法1.代码行、功能点2.类比(自顶向下)估算法3.自下而上估算法4.参数法估算法5.专家估算法34代码行(LOC)从软件程序量的角度定义项目规模。q要求功能分解足够详细的q有一定的经验数据(类比和经验方法)q与具体的编程语言有关35代码行技术的主要优点代码行技术的主要优点n代码是所有软件开发项目
10、都有的代码是所有软件开发项目都有的“产品产品”,而且很容易计算代码行数。,而且很容易计算代码行数。36代码行(LOC)缺点1.对代码行没有公认的可接受的标准定义2.代码行数量依赖于所用的编程语言和个人的编程风格.3.在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量.4.代码行强调编码的工作量,只是项目实现阶段的一部分 37功能点(FP:Function point)q用系统的功能数量来测量其规模q与实现产品所使用的语言和技术没有关系的q两个评估q内部基本功能q外部基本功能q加权和量化 38功能点的公式qFP=UFC*TCFqUFC:未调整功能点计数qTCF:技术复杂度
11、因子39UFC-未调整功能点计数功能计数项:1.外部输入2.外部输出3.外部查询4.外部文件5.内部文件40UFC-未调整功能点计数功能计数项的复杂度等级复杂度权重因素项简单一般复杂外部输入346外部输出457外部查询346外部文件5710内部文件7101541功能点计算实例-UFC功能点项简单一般复杂外部输入6*32*43*6外部输出7*47*50*7外部查询0*32*44*6外部文件5*52*73*10内部文件9*70*102*15总计UFC30142TCF-技术复杂度因子TCF=0.65+0.01(sum(Fi)TCF=0.65+0.01(sum(Fi):Fi:0-5,TCF:0.65-
12、1.35 Fi:0-5,TCF:0.65-1.35技术复杂度因子技术复杂度因子F1可靠的备份和恢复可靠的备份和恢复F2数据通信数据通信F3分布式函数分布式函数F4性能性能F5大量使用的配置大量使用的配置F6联机数据输入联机数据输入F7操作简单性操作简单性F8在线升级在线升级F9复杂界面复杂界面F10 复杂数据处理复杂数据处理F11 重复使用性重复使用性F12安装简易性安装简易性F13 多重站点多重站点F14易于修改易于修改43技术复杂度因子的取值范围调整系数调整系数描述描述0 0不存在或者没有影响不存在或者没有影响1 1不显著的影响不显著的影响2 2相当的影响相当的影响3 3平均的影响平均的影
13、响4 4显著的影响显著的影响5 5强大的影响强大的影响44功能点计算实例qFP=UFC*TCFqUFC=301qTCF=0.65+0.01(14*3)=1.07qFP=301*1.07=32245功能点与代码行的转换语言代码行代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK21SPREADSHEET646估算的基本方法q代码行、功能点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法47类比-定义q估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开
14、发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中q是一种自上而下的估算形式48类比使用情况q有类似的历史项目数据q信息不足(要求不是非常精确)的时候q在合同期和市场招标时49类比特点q简单易行,花费少q具有一定的局限性q准确性差,可能导致项目出现困难50估算的基本方法q代码行、功能点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法51自下而上定义q利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。52自下而上使用情况q项目开始以后,WBS的开发阶段q需要进行准确估算的时候53自下而上特点q这种方法相对比较准确,它的准
15、确度来源于每个任务的估算情况q非常费时,估算本身也需要成本支持q可能发生虚报现象54估算的基本方法q代码行、功能点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法55参数估算法定义q一种使用项目特性参数建立数据模型来估算成本的方法,是一种统计技术,如回归分析和学习曲线。56参数估算法使用情况q存在成熟的项目估算模型q应该具有良好的数据库数据为基础57参数估算法特点q比较简单,而且也比较准确q如果模型选择不当或者数据不准,也会导致偏差58经验导出成本模型q提供工作量(规模)的直接估计q通过过去项目数据,进行回归分析,得出的回归模型59经验导出成本模型q整体公式:E=A+B*SC
16、qE:以人月表示的工作量qA,B,C:经验导出的系数qS:主要的输入参数(通常是LOC,FP等)60经验导出成本模型(续)面向LOC驱动的qWalston-Felix(IBM)qE=5.2*(KLOC)0.91qBalley-BasiliqE=5.5+0.73*(KLOC)1.16q.COCOMOqE=3.2*(KLOC)1.05qDotyqE=5.288*(KLOC)1.04761经验导出成本模型(续)面向FP驱动的qAlbrecht and GaffneyqE=-12.39+0.0545FPqMatson,BarnettqE=585.7+15.12FP62建议掌握模型建议掌握模型q模型(W
17、alston-Felix)qCOCOMO模型(Boehm)63模型1977年,年,IBM的的Walston和和Felix提出了如下的提出了如下的估算公式估算公式E5.2L0.910.91,L是源代码行数是源代码行数(以以KLOC计计),E是工作量(以是工作量(以PM计)计)D4.1L 0.36,D是项目持续时间是项目持续时间(以月计以月计)S0.54E 0.6,S是人员需要量是人员需要量(以人计以人计)DOC49L 1.01。DOC是文档数量是文档数量(以页计以页计)64举例举例采用采用java java 完成项目,完成项目,366366功能点,则功能点,则L=36646=16386L=366
18、46=16386行行 =16.386KLOC=16.386KLOCE E 5.2L 5.2L 0.91 0.91 5.216.386 5.216.386 0.91 0.91 6666人月人月 DOC DOC 49L 49L 1.01 1.01 4916.386 4916.386 1.01 1.01 826826页页 65COCOMO(Constructive Cost model)结构化成本模型结构化成本模型是世界上应用最广泛的参数型软件成本估是世界上应用最广泛的参数型软件成本估计模型计模型由由Barry BoehmBarry Boehm开发的开发的66COCOMO模型发展COCOMO 81
19、COCOMO II 模型系列67COCOMO 81项目类型:项目类型:有机有机:Organic嵌入式嵌入式:Embedded半有机半有机:Semidetached模型类别:模型类别:q基本COCOMOq中等COCOMOq高级COCOMO68模型类别模型类别q基本COCOMOq静态单变量模型q中等COCOMOq基本模型基础上考虑影响因素,调整模型q高级COCOMOq中等COCOMO模型基础上考虑各个步骤的影响69项目类型项目类型有机有机:Organic,各类应用程序,例如数据处理、科学计算各类应用程序,例如数据处理、科学计算等等受硬件的约束比较小,程序的规模不是很大受硬件的约束比较小,程序的规模
20、不是很大嵌入式嵌入式:Embedded系统程序系统程序,例如实时处理、控制程序等,例如实时处理、控制程序等紧密联系的硬件、软件和操作的限制条件下运行,软件紧密联系的硬件、软件和操作的限制条件下运行,软件规模任意规模任意半有机半有机:Semidetached各类实用程序,介于上述两种软件之间,各类实用程序,介于上述两种软件之间,例如例如编译器编译器(程序)(程序)规模和复杂度都属于中等或者更高规模和复杂度都属于中等或者更高70基本COCOMOqE=a(KLOC)exp(b)q其中:qE是所需的人力(人月),qKLOC是交付的代码行qa,b是依赖于项目自然属性的参数:71基本COCOMO系数表方式
21、ab有机2.41.05半有机3.01.12嵌入式3.61.272举例举例一个一个33.3KLOC的软件开发项目,属于中等的软件开发项目,属于中等规模、半有机型的项目,采用基本规模、半有机型的项目,采用基本COCOMOCOCOMO:oa=3.0,b=1.12。oE=3.0L 1.12=3.033.3 1.12=152PM73中等COCOMOqE=a(KLOC)exp(b)*乘法因子qa b是系数q乘法因子是根据成本驱动属性打分的结果,对公式的校正系数 74中等COCOMO系数表方式ab有机2.81.05半有机3.01.12嵌入式3.21.275乘法因子属性1.产品属性2.平台属性3.人员属性4.
22、过程属性P94 表3.1076乘法因子77乘法因子计算每个每个属性属性Fi的的取值范围取值范围为:很低、低、正常、高、很高、极高,共很低、低、正常、高、很高、极高,共六六级。正常情况下正常情况下Fi=1。当当每个每个Fi的的值选定后,乘法因子的定后,乘法因子的计算如算如下下乘法因子乘法因子F1*F2*Fi*Fn78举例(续)举例(续)一个一个33.3KLOC的软件开发项目,属于中等的软件开发项目,属于中等规模、半有机型的项目,采用中等规模、半有机型的项目,采用中等COCOMOCOCOMO模型模型a=3.0,b=1.12。乘法因子乘法因子0.70*0.85*1*1.15=1.09E=3.0L 1
23、.12=3.033.3 1.12PM79高级(详细)COCOMOq将项目分解为一系列的子系统或者子模型 q在一组子模型的基础上更加精确地调整一个模型的属性,80估算的基本方法q代码行、功能点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法81专家估算法q由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值。82PERT(计划评审技术)估计q20世纪50年代美国海军部开发,用于项目进度规划的一种技术。理论基础是假设项目完成时间是随机的,且服从某种概率分布。q假设软件规模满足正态分布,对该软件只需提出2个规模的估算值q可能的最
24、小规模aq可能的最大规模bq计算软件的期望规模 E=(a+b)/2。83PERT(计划评审技术)估计q假设基于分布,对该软件提出3个规模的估算值q最小aq最可能的mq最大bq计算软件期望规模E=(a+4m+b)/684专家估算法-Deiphiq组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算q专家详细研究软件规格说明后,对该软件提出3个规模的估算值(PERT估计)q最小aiq最可能的miq最大biq组织者对专家的表格中的答复进行整理q计算每位专家的Ei=(ai+4mi+bi)/6,85专家估算法-Deiphi(续)q综合结果后:E=E1+E2+En/n(N:表示N 个
25、专家)q再组织专家无记名填表格,比较估算差,并查找原因q如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程,最终可以获得一个多数专家共识的软件规模86专家估算法-举例q某多媒体信息查询系统专家估算q专家1:1,8,9=(1+9+4*8)/6=7(万元)q专家2:4,6,8=(4+8+4*6)/6=6(万元)q估算结果=(6+7)/2=6.5(万元)87估算方法总结q初期q类比q专家估算q计划阶段q自下而上q参数模型q实施阶段(包括变更发生)q自下而上q参数模型88成本估算方法综述q主要考虑三种模型:类比法,自下而上法,参数法.q自下而上法费时费力,参数法比较简单q自下向上法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 软件项目成本管理 第四 软件 项目 成本 管理
限制150内