第七章 软件项目的成本管理

上传人:飞*** 文档编号:6548198 上传时间:2017-08-08 格式:PPT 页数:75 大小:541KB
返回 下载 相关 举报
第七章 软件项目的成本管理_第1页
第1页 / 共75页
第七章 软件项目的成本管理_第2页
第2页 / 共75页
第七章 软件项目的成本管理_第3页
第3页 / 共75页
第七章 软件项目的成本管理_第4页
第4页 / 共75页
第七章 软件项目的成本管理_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《第七章 软件项目的成本管理》由会员分享,可在线阅读,更多相关《第七章 软件项目的成本管理(75页珍藏版)》请在金锄头文库上搜索。

1、第七章 软件项目成本估算,学习目标,1、软件项目规模成本的概念2、成本估算过程3、成本估算过程,第一节 软件项目规模成本的概念,主要内容:,一、基本概念和术语二、成本管理过程,一、基本概念和术语,1、成本2、成本管理3、成本类型4、学习曲线5、收益递减规律,1、成本,就是为了获取商品或服务而支付的货币总量。软件项目的成本,就是为了使软件项目如期完成,而支付的所有费用 。软件项目成本可以从以下两个方面来看: 1成本与质量、时间的关系。 2在预算框架内控制成本。,2、成本管理,就是为保障项目实际发生的成本不超过项目预算,使项目在批准的预算内按时、按质、经济高效地完成既定目标而开展的项目管理活动。,

2、3、成本类型可变成本:随规模变化的成本,如人员工资。固定成本:不随规模变化的非重复成本,如办公室租赁费用。直接成本:能够直接归属于项目的成本,如项目组旅行费用、项目组人员工资和奖金等。间接成本:需要几个项目共同分担的成本,如员工福利、保安费用、行政部门和财务部门费用等;沉入成本:那些在过去发生的费用,就像沉船一样不能回收的部分。当决定继续投资项目时,不应该考虑这部分费用。当决定项目是否该继续时,许多人像赌徒一样的心理指望能够收回沉入成本,这是不可取的。机会成本:如果选择另一个项目而放弃这一项目收益所引发的成本。,4学习曲线理论当重复作某种类似的项目时,每次项目的成本会逐步下降;学习曲线理论认为

3、,当作某事的次数翻倍时所花费的时间也会以一种有规律的方式递减,可以使用回归模拟的方式确定下降的速度。5收益递减规律投入的资源越多,单位投入的回报率就越低,有时甚至会呈现负增长。例如,在软件项目中,将编程人员增加一倍,项目总共的编程时间并不会减少一半。,二、成本管理过程,资源计划编制:确定项目需要的资源种类和数量成本估算:中心环节编制一个为完成项目各活动所需要的资源成本的近似估算成本预算:项目进度将总成本估算分配到各单项工作活动上成本控制:项目跟踪控制项目预算的变更,关于估算,估算不是很准确的,有误差的经验(历史)数据非常重要不要太迷信数学模型,软件项目规模,软件项目规模即工作量,是从软件项目范

4、围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。,规模的单位,LOC(Loc of Code)源代码程序长度的测量FP(Function Point)用系统的功能数量来测量人月人天人年,软件项目成本,完成软件规模相应付出的代价。待开发的软件项目需要的资金。 人的劳动的消耗所需要的代价是软件产品的主要成本,成本的单位,货币单位人民币元美元.,软件的规模和成本的关系,规模是成本的主要因素,是成本估算的基础有了规模就确定了成本,第二节 成本估算过程,成本估算过程,估算输入,估算结果,成本估算方法,成本估算输

5、入,项目需求、 WBS历史项目度量资源要求(资源编制计划)资源消耗率:如人员成本: 100元/小时进度规划:项目总进度(一般是合同要求)学习曲线,资源规划,需要的资源种类、数量等,Sample Resource Histogram for a Large IT Project,成本估算,直接成本间接成本,直接成本,与具体项目相关的成本,间接成本,不能具体到某个项目中的成本,可以分摊到各个具体项目中的成本,例如:培训房租水电员工福利市场费用管理费其他等等,项目估算输出,估算文件资源,资源的数量,质量标准,估算成本等信息单位:一般是货币单位BAC(Budget At completion)估算说明

6、工作范围估算的基础和依据估算的假设估算的误差变动等,估算说明,预测所需要的总工作量的过程。是一种量化的结果可以有一些误差成本估算不同于项目定价贯穿于软件的生存周期。,第三节 成本估算方法,估算的基本方法,代码行、功能点、对象点、用例点自下而上估算法(WBS)参数法估算法专家估算法,1、代码行,代码行:指源代码的总行数。包括无注释的源代码行NCLOC及注释的源代码行CLOC。源代码的总行数LOC包括NCLOC与CLOC之和。 在评估时,可以分别根据LOC和NCLOC做为评估值。,一代码行(1LOC)的价值和人均代码行可以体现一个软件生产组织的生产能力,组织可以根据对历史项目的评审来核算组织的单行

7、代码价值。(我们国内公司的私人老板不愿意这样做及有量化的东西,否则不好剥削)。,代码行(LOC),从软件程序量的角度定义项目规模。要求功能分解足够详细的有一定的经验数据(类比和经验方法)与具体的编程语言有关,代码行(LOC)缺点,对代码行没有公认的可接受的标准定义代码行数量依赖于所用的编程语言和个人的编程风格. 在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量. 代码行强调编码的工作量,只是项目实现阶段的一部分,2、功能点,功能点度量是在需求分析阶段基于系统功能的一种规模估计方法,该方法通过研究初始应用需求来确定各种输入、输出、查询、外部文件、内部文件的数目,从而确定

8、功能数量。,为计算功能点数,首先要计算未调整的功能点数(UFC,Unadjusted Function Points)。其计算如下:(1)计算所需要的输入、输出、查询、外部文件、内部文件的数量。(2)根据以上五个功能项的数量,再由估计人员对项目的复杂性做出判断,大致划分为简单、一般、复杂三种情况,然后根据表1求出功能项的加权和,即为UFC。,功能点FP是由未调整功能点数UFC与技术复杂因子(TCF,Technical Complexity Factor)相乘得到的。表2有14个UFC,即A1A14,则计算:TCF=0.65+0.01*(SUM(Ai)。TCF的值为0.651.35之间,对应TC

9、F的值为0与5。最后,计算FP=UFC*TCF。,功能点有助于在软件项目的早期做出规模估计,但无法自动度量。一般的做法是在早期估计中使用功能点,然后依据经验将功能点转化为代码行,再用代码行继续进行估计。,功能点度量在以下情况下特别有用: 估计新的软件开发项目。 应用软件包括很多输入输出或文件活动。 拥有经验丰富的功能点估计专家。拥有充分的数据资料,可以相当准确地将功能点转化为LOC。,功能点(FP: Function point),用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化,功能点的公式,FP =UFC*TCFUFC:未调整功能

10、点计数TCF:技术复杂度因子,UFC-未调整功能点计数,功能计数项:外部输入外部输出外部查询外部文件内部文件,UFC-未调整功能点计数,功能计数项的复杂度等级,功能点计算实例-UFC,TCF-技术复杂度因子,TCF=0.65+0.01(sum(Fi): Fi:0-5,TCF:0.65-1.35,技术复杂度因子的取值范围,功能点计算实例,FP=UFC*TCFUFC=301TCF=0.65+0.01(14*3)=1.07FP=301*1.07=322,功能点与代码行的转换,3、WBS基础上的全面详细估算,利用WBS方法,先把项目任务进行合理的细分,分到可以确认的程度,如某种材料,某种设备,某一活动

11、单元等。然后估算每个WBS要素的费用。采用这一方法的前提条件或先决步骤是: 对项目需求作出一个完整的限定。制定完成任务所必需的逻辑步骤。编制WBS表,项目需求的完整限定应包括工作报告书、规格书以及总进度表。工作报告书是指实施项目所需的各项工作的叙述性说明,它应确认必须达到的目标。如果有资金等限制,该信息也应包括在内。规格书是对工时、设备以及材料标价的根据。它应该能使项目人员和用户了解工时、设备以及材料估价的依据。总进度表应明确项目实施的主要阶段和分界点,其中应包括长期定货、原型试验、设计评审会议以及其他任何关键的决策点。如果可能,用来指导成本估算的总进度表应含有项目开始和结束的日历时间。,一旦

12、项目需求被勾划出来,就应制定完成任务所必需的逻辑步骤。在现代大型复杂项目中,通常是用箭头图来表明项目任务的逻辑程序,并以此作为下一步绘制CPM或PERT图以及WBS表的根据。编制WBS表的最简单方法是依据箭头图。把箭头图上的每一项活动当作一项工作任务,在此基础上再描绘分工作任务。,进度表和WBS表完成之后,就可以进行成本估算了。在大型项目中,成本估算的结果最后应以下述的报告形式表述出来: 对每个WBS要素的详细费用估算。还应有一个各项分工作、分任务的费用汇总表,以及项目和整个计划的累积报表。,每个部门的计划工时曲线。如果部门工时曲线含有“峰”和“谷”,应考虑对进度表作若干改变,以得到工时的均衡

13、性。逐月的工时费用总结。以便项目费用必须削减时,项目负责人能够利用此表和工时曲线作权衡性研究。,逐年费用分配表。此表以WBS要素来划分,表明每年(或每季度)所需费用。此表实质上是每项活动的项目现金流量的总结。,采用这种方法估算成本需要进行大量的计算,工作量较大,所以只计算本身也需要花费一定的时间和费用。但这种方法的准确度较高,用这种方法作出的这些报表不仅仅是成本估算的表述,还可以用来作为项目控制的依据。最高管理层则可以用这些报表来选择和批准项目,评定项目的优先性。,4、建议掌握模型,COCOMO模型(Boehm),COCOMO(Constructive Cost model),由Barry B

14、oehm开发的详见:www.usc.edu(南加州大学网站),COCOMO,项目类型:有机(组织): Organic嵌入式: Embedded半有机(半分离): Semidetached,模型类别:基本COCOMO中等COCOMO高级COCOMO,模型类别,基本COCOMO静态单变量模型中等COCOMO基本模型基础上考虑影响因素,调整模型高级COCOMO中等COCOMO模型基础上考虑各个步骤的影响,项目类型,有机: Organic,各类应用程序,例如数据处理、科学计算 等受硬件的约束比较小,程序的规模不是很大 嵌入式: Embedded系统程序,例如实时处理、控制程序等 紧密联系的硬件、软件和

15、操作的限制条件下运行,软件规模任意 半有机: Semidetached各类实用程序,介于上述两种软件之间,例如编译器(程序) 规模和复杂度都属于中等或者更高,基本COCOMO,E= a(KLOC)exp(b)其中: E是所需的人力(人月), KLOC是交付的代码行a , b是依赖于项目自然属性的参数:,基本COCOMO系数表,举例,一个33.3 KLOC的软件开发项目,属于中等规模、半有机型的项目,采用基本COCOMO:a=3.0,b=1.12。E = 3.0L 1.12 = 3.033.3 1.12 = 152 PM,中等COCOMO,E=a(KLOC)exp(b)*乘法因子a b是系数乘法

16、因子是根据成本驱动属性打分的结果,对公式的校正系数,中等COCOMO系数表,成本驱动因子,乘法因子计算,每个属性Fi的取值范围为: 很低、低、正常、高、很高、极高,共六级。正常情况下 Fi=1。Boehm推荐的Fi取值范围 0.70, 0.85, 1.00, 1.15, 1.30, 1.65当每个Fi的值选定后,乘法因子的计算如下 乘法因子F1*F2* Fi * Fn,举例(续),一个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,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号