5第四章_软件项目成本管理_1_ppt课件_第1页
5第四章_软件项目成本管理_1_ppt课件_第2页
5第四章_软件项目成本管理_1_ppt课件_第3页
5第四章_软件项目成本管理_1_ppt课件_第4页
5第四章_软件项目成本管理_1_ppt课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程管理第四章 软件工程本钱管理.本章内容提要软件工程规模本钱的概念本钱估算本钱预算本钱控制.第一节 软件工程规模本钱的概念软件工程规模度量单位:LOC(Lines of Code):源代码程序长度的丈量FP(Function Point):系统功能数量的丈量软件工程任务量是指为了提供软件的功能而必需完成的软件工程义务量。其度量单位为:人月、人天、人年:人在单位时间内完成的义务量.为了确定任务量度量单位,可设定一个“规范程序员,例如具有1518个月开发阅历的程序员。任务量与规模严密相关,此外还与工程和产品特性如复杂性相关。在不会引起混淆的情况下,任务量和规模这两个概念可不做区别。.软件工程

2、本钱完成软件工程任务量相应付出的代价,即待开发软件工程所需求的资金。人的劳动耗费所需求的代价是软件产品的主要本钱。本钱普通采用货币单位来计算,如人民币、美圆等。.任务量和本钱的关系任务量是本钱的主要思索要素,工程的任务量估算和本钱估算经常同时进展。假设确定了单位任务量的本钱,那么可根据工程任务量直接计算出工程本钱。 例如:假设一个软件工程的任务量是20人月,而企业的人力本钱参数是2万元/人月,那么工程的本钱是40万元。.本章内容提要软件工程规模本钱的概念本钱估算本钱预算本钱控制.引言本钱估算方法一种适用的工程本钱估算过程第二节 本钱估算.2.1 引言本钱估算是对完成工程所需费用的估计,它是工程

3、本钱管理的中心。本钱估算可以有一些误差。估算结果可用一个范围表示,例如$10000$1000。本钱估算所根据的信息包括:工程需求和WBS,资源要求、资源耗费率资源单价、工程进度规划、历史工程数据等。 .工程本钱的构成直接本钱:与详细工程的开发直接相关的本钱。如人员的工资、外包外购本钱等。又可细分为开发本钱、管理本钱、质量本钱等。间接本钱:不归属于一个详细的工程,是企业的运营本钱,分摊到各个工程中。如房租、水电、保安、税收、福利、培训,等等。.2.2 本钱估算方法代码行、功能点类比估算法参数估算法专家估算法.代码行LOC从软件程序量的角度定义工程规模。要求功能分解足够详细。有一定的阅历数据类比和

4、阅历方法。与详细的编程言语有关。.优点: 直观、准确在有代码的情况下、易于计算可运用代码行统计工具。缺陷:对代码行度量没有公认的规范定义。代码行数量依赖于所用的编程言语和个人的编程风格。在工程早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量。代码行LOC.功能点FP用系统的功能数量来丈量其规模,与实现产品所运用的言语和技术没有关系。对系统的外部功能和内部功能进展计数。根据技术复杂度因子权对它们进展调整,产消费品规模的度量结果。.功能点计算公式FP =UFC*TCFUFC(Unadjusted Function Point Count) 未调整功能点计数TCF(Technic

5、al Complexity Factor) 技术复杂度因子.UFC的计算方法首先计算功能计数项,对以下五类元素计数:外部输入:由用户输入的面向运用的数据项。外部输出:向用户提供的输出数据项。外部查询:要求系统回答的交互式输入。外部接口文件:与其它系统的接口数据文件。内部文件:系统运用的内部固定文件。.UFC的计算方法然后对各功能计数项加权并求和,得到UFC。 功能计数项复杂度权重简单中等复杂外部输入346外部输出457外部查询346外部接口文件5710内部文件71015.案例分析某学院安装了一个工资系统,人事处要求创建一个子系统来分析每门课程的人力资源本钱。要求该子系统提供查询每门课程人力资源

6、本钱的功能。每名教师所得工资的细节可以经过工资系统中的文件得到,教师花在教每门课上的小时数可经过一个基于计算机的计时表系统中的文件得到。该子系统将计算结果存放到由总会计系统读取的一个文件中,并产生一个报告,来显示每名教师每门课的课时数及这些课时数相应的本钱。.案例分析问题:计算该子系统的UFC。子系统产生的报告复杂度为高,其它一切元素的复杂度均为中等 .案例分析答案:UFC=1*7+1*4+3*7=32功能计数项计数复杂度权重外部输入无外部输出报告 17外部查询14外部接口文件工资文件 1,计时表文件 1,计算结果文件 17内部文件无.TCF的计算方法技术复杂度影响因素F1可靠的备份和恢复F2

7、数据通信F3分布式函数F4性能F5大量使用的配置F6联机数据输入F7操作简单性F8在线升级F9复杂界面F10 复杂数据处理F11重复使用性F12安装简易性F13多重站点F14易于修改.TCF=0.65+0.01(sum(Fi): Fi:0-5,TCF:0.651.35TCF的计算方法每个技术复杂度影响要素的取值范围:取值对系统的影响0不存在或者没有影响1不显著的影响2相当的影响3平均的影响4显著的影响5强大的影响.案例分析案例中技术复杂度影响因素的取值F1可靠的备份和恢复1F2数据通信5F3分布式函数0F4性能3F5大量使用的配置1F6联机数据输入0F7操作简单性1F8在线升级0F9复杂界面1

8、F10 复杂数据处理4F11重复使用性0F12安装简易性3F13多重站点0F14易于修改3sum(Fi)=22TCF=0.65+0.01(sum(Fi)=0.65+0.01*22=0.87.该子系统的功能点为: FP=UFC*TCF=32*0.87=27.8案例分析.功能点与代码行的转换语言代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK21SPREADSHEET6.本钱估算方法代码行、功能点类比估算法参数估算法专家估算法.类比估算法也称为基于案例的推理,估算人员根据以往完成的类似工

9、程源案例所耗费的总本钱或任务量,来推算将要开发的软件目的案例的总本钱或任务量。需提取工程的一些特性作为比较因子,如工程类型MIS系统、实时系统等、编程言语、工程规模、开发人员数量、软件开发方法等。.在工程初期信息缺乏时例如市场招标和合同签署适于采用类比估算法。该方法简单易行,破费少,但准确性差。类比估算法.本钱估算方法代码行、功能点类比估算法参数估算法专家估算法.参数估算法运用工程特性参数建立阅历估算模型来估算本钱。阅历估算模型是经过对大量的工程历史数据进展统计分析如回归分析而导出的。阅历估算模型提供对工程任务量的直接估计。该方法简单,而且比较准确,但假设模型选择不当或提供的参数不准确,也会产

10、生较大的偏向。.阅历估算模型模型方式:E=A+B*SCE:以人月表示的任务量A,B,C:阅历导出的系数S:主要的输入参数(通常是LOC,FP等).面向LOC的:Walston-Felix(IBM)模型 E= 5.2*(KLOC)0.91Balley-Basili模型 E=5.5+0.73*(KLOC)1.16Boehm简单模型 E=3.2*(KLOC)1.05Doty模型 E=5.288*(KLOC)1.047阅历估算模型.面向FP的: Albrecht and Gaffney 模型E=-13.39+0.0545FP Matson,BarnettE=585.7+15.12FP阅历估算模型.Wa

11、lston-Felix(IBM)模型1977年,IBM的Walston和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是文档数量(以页计) .COCOMOConstructive Cost model构造性本钱模型,是世界上运用最广泛的参数型软件本钱估计模型。由Barry Boehm利用加利福尼亚的一个咨询公司的大量工程数据推导出的一个本钱模型。该模型于1981年初次发表,于1994年又推出了COC

12、OMO II。.模型类别根本COCOMO 静态单变量模型。中等COCOMO 在根本模型根底上思索各种影响要素任务量驱动因子,调整模型。高级COCOMO 中等COCOMO模型根底上思索软件工程中各个步骤的影响。.根本COCOMOE=a*(KLOC)exp(b)E是工程的任务量以人月计KLOC是软件产品的代码行数a、b是依赖于工程自然属性的参数.根本COCOMO系数表系统类型ab有机2.41.05半相连3.01.12嵌入式3.61.20.系统类型有机Organic各类运用程序,例如数据处置、科学计算等。受硬件的约束比较小,接口环境灵敏;软件的规模不是很大。嵌入式Embeded系统程序,例照实时处置

13、、控制程序等。在硬件和软件的严厉约束条件下运转,对系统进展变卦的代价很高;软件的规模恣意。半相连Semidetached介于上述两种系统之间。.根本COCOMO举例一个33.3 KLOC的软件开发工程,属于半相连型的工程,采用根本COCOMO进展任务量的估算:a=3.0,b=1.12E = 3.0L 1.12 = 3.033.3 1.12 = 152 PM .中等COCOMOE=a(KLOC)exp(b)*任务量系数 任务量系数是根据本钱驱动因子的打分计算得出,是对公式的校正系数。.中等COCOMO系数表系统类型ab有机3.21.05半相连3.01.12嵌入式2.81.20.本钱驱动因子驱动因

14、子类型编码成本驱动因子产品属性RELY需要的软件可靠性DATA数据库规模CPLX产品复杂度计算机属性TIME执行时间限制STOR主存限制VIRT操作系统变更的程度TURN计算机恢复时间要求.本钱驱动因子续驱动因子类型编码成本驱动因子人员属性ACAP分析员能力AEXP应用经验PCAP程序员能力VEXP虚拟机(如操作系统)经验LEXP编程语言经验项目属性MODP现代编程实践的使用TOOL软件工具的使用SCED需要的开发进度.任务量系数的计算规定每个本钱驱动因子的取值范围,将其取值划分为非常低、低、正常、高、非常高等级别,每个级别对应一个值。例如,软件组织可以决议运用以下系数来评价分析员才干(ACA

15、P)的影响: 非常低very low 1.46 低low 1.19 正常nominal 1.00 高hign 0.80 非常高very hign) 0.71.当每个本钱驱动因子Fi的值选定后,任务量系数的计算如下: 任务量系数=F1*F2*Fi*Fn 典型取值0.9-1.4之间任务量系数的计算.中等COCOMO举例一个33.3 KLOC的软件开发工程,属于半相连型的工程,采用中等COCOMO进展任务量的估算: a=3.0,b=1.12任务量系数=0.70*0.85*1*1.15=1.09E = 3.033.3 1.12 1.09166 PM .高级详细COCOMO思索了各本钱驱动因子对分析、设

16、计等各工程阶段的影响。.本钱估算方法代码行、功能点类比估算法参数估算法专家估算法.专家估算法由多位对运用领域和开发环境有丰富阅历的专家进展本钱估算。为防止单个专家产生偏见,尽量由多位专家进展估算,获得多个估算值,最后得出综合的估算值。.专家估算法-Delphi组织者发给每位专家一份软件系统的规格阐明和一张记录估算值的表格,请他们估算。专家详细研讨软件规格阐明后,对该软件提出3个任务量或本钱的估算值:最小值ai 最能够值mi 最大值bi组织者对专家的表格中的回答进展整理,计算每位专家的平均估算值Ei=(ai+4mi + bi)/6和总的平均值E=(E1 +E2+En)/n (n表示n个专家)。.

17、组织专家无记名填表格,比较估算差,并查找缘由。假设各个专家的估算差别超出规定的范围例如:15%,那么需反复上述过程 ,最终可以获得一个多数专家共识的软件任务量或本钱估计值。专家估算法-Delphi.专家估算法举例某管理信息系统-专家估算专家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万元 .在工程初期特别是合同阶段,工程的需求不很明确,且需求尽快得出本钱估算结果,此时可采用类比估算法或专家估算法。需求确定之后,开场规划工程时,可采用参数估算法。在工程的实施阶段,特别是在发生变卦时,需重新估算工程的本钱,这时可采用参数估算法

18、和专家估算法。本钱估算方法总结.2.3 一种适用的软件本钱估算过程该过程步骤如下:1.对工程进展义务分解:1,2,i,n2.估算每个义务的本钱Ci3.工程的直接本钱=C1+C2+Ci+Cn4.工程总估算本钱= 直接本钱+间接本钱5.工程总报价=工程总估算本钱+风险利润 .估算每个义务的本钱先估计义务的任务量Ei 普通以人月为单位。然后估算义务本钱Ci= Ei*人力本钱参数。.直接本钱估算直接本钱的构成:开发本钱、管理本钱、质量本钱管理和质量本钱的简易估算法:开发任务量:Effort(Dev) 管理和质量任务量:Effort(Mgn)=a*Effort(Dev) a为比例系数,可根据企业的详细情

19、况而定,例如20%-25%。直接本钱= Effort(Dev) + a*Effort(Dev).间接本钱估算根据企业详细的本钱模型进展计算。简易估算方法:间接本钱=直接本钱*间接本钱系数间接本钱系数根据企业的详细情况而定,例如取0.3。.工程总估算本钱总估算本钱=直接本钱+间接本钱 =直接本钱+直接本钱*间接本钱系数 =直接本钱(1+间接本钱系数) =任务量*人力本钱参数1+间接本钱系数本钱系数=人力本钱参数*1+间接本钱系数总估算本钱=任务量*本钱系数 例如:某工程的任务量是40人月,本钱系数为2万元/人月,那么工程的总估算本钱为40*2=80万元。.工程总报价风险利润包括风险基金、工程税费

20、和税后利润等。风险利润=工程总估算本钱*a% a是利润系数,根据企业、工程的不同而不同。工程总报价=工程总估算本钱+工程总估算本钱*a% =工程总估算本钱1+a%.2.4 本钱估算的准确度类型准确度说明量级估算:合同前Order of magnitude-25+75%概念和启动阶段,决策预算估算:合同期Budget-10+25%编制初步计划确定性估算:WBS后Definitive-5+10%工作分解后的详细计划.估算不准确的缘由根底数据缺乏估算对需求的敏感性软件工程存在许多变卦和不确定要素缺乏有阅历的估算人员签约前后的不衔接.防止低劣的估算留出估算的时间,并做好方案留意积累工程数据,以开发人员

21、提供的阅历数据为根底进展估算分类法估算进展详细的较低层次上的估算运用估算工具运用几种不同估算技术,并比较它们的结果.估算的表达方式加减限定表示 6个人月的任务量可表示为6+3、6-1人月。范围表示 6个人月的任务量可表示为59人月。.估算的表达方式风险量化估算:6个人月,+3,-2+1人月:延迟交付转换子系统-1人月:新成员的工作效率高+1人月:采用的新工具没有预计的好-1人月:采用的新工具比预计的好+0.5人月:员工病事假+0.5人月:低估规模.本章内容提要软件工程规模本钱的概念本钱估算本钱预算本钱控制.第三节 本钱预算 本钱预算是将工程总估算本钱分摊到各个任务单元中去,主要包括三个步骤:将工程的总估算本钱分摊到各项活动。根据工程的本钱估算确定工程的总预算本钱后,将总预算本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论