资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件项目管理,第四章 软件项目成本管理,本章内容提要,软件项目规模成,本,本的概念,成本估算,成本预算,成本控制,第一节 软件项,目,目规模成本的概,念,念,软件项目规模度,量,量单位:,LOC(Lines of Code):源代,码,码程序长度的测,量,量,FP(Function Point):系统,功,功能数量的测量,软件项目工作量,是,是指为了提供软,件,件的功能而必须,完,完成的软件工程,任,任务量。其度量,单,单位为:,人月、人天、人,年,年:人在单位时,间,间内完成的任务,量,量,为了确定工作量,度,度量单位,可设,定,定一个“标准程,序,序员”,例如具,有,有1518个,月,月开发经验的程,序,序员。,工作量与规模紧,密,密相关,此外还,与,与项目和产品特,性,性(如复杂性),相,相关。,在不会引起混,淆,淆的情况下,,工,工作量和规模,这,这两个概念可,不,不做区别。,软件项目成本,完成软件项目,工,工作量相应付,出,出的代价,即,待,待开发软件项,目,目所需要的资,金,金。,人的劳动消耗,所,所需要的代价,是,是软件产品的,主,主要成本。,成本一般采用,货,货币单位来计,算,算,如人民币,、,、美元等。,工作量和成本,的,的关系,工作量是成本,的,的主要考虑因,素,素,项目的工,作,作量估算和成,本,本估算常常同,时,时进行。,如果确定了单,位,位工作量的成,本,本,则可根据,项,项目工作量直,接,接计算出项目,成,成本。,例如:如果一,个,个软件项目的,工,工作量是20,人,人月,而企业,的,的人力成本参,数,数是2万元/,人,人月,则项目,的,的成本是40,万,万元。,本章内容提要,软件项目规模,成,成本的概念,成本估算,成本预算,成本控制,引言,成本估算方法,一种实用的项,目,目成本估算过,程,程,第二节 成本,估,估算,2.1 引言,成本估算是对,完,完成项目所需,费,费用的估计,,它,它是项目成本,管,管理的核心。,成本估算可以,有,有一些误差。,估,估算结果可用,一,一个范围表示,,,,例如$10000$1000。,成本估算所依,据,据的信息包括,:,:项目需求和WBS,资源,要,要求、资源消,耗,耗率(资源单,价,价)、项目进,度,度规划、历史,项,项目数据等。,项目成本的构,成,成,直接成本:与,具,具体项目的开,发,发直接相关的,成,成本。如人员,的,的工资、外包,外,外购成本等。,又,又可细分为开,发,发成本、管理,成,成本、质量成,本,本等。,间接成本:不,归,归属于一个具,体,体的项目,是,企,企业的运营成,本,本,分摊到各,个,个项目中。如,房,房租、水电、,保,保安、税收、,福,福利、培训,,等,等等。,2.2 成本,估,估算方法,代码行、功能,点,点,类比估算法,参数估算法,专家估算法,代码行(LOC),从软件程序量,的,的角度定义项,目,目规模。,要求功能分解,足,足够详细。,有一定的经验,数,数据(类比和,经,经验方法)。,与具体的编程,语,语言有关。,优点:,直观、准确(,在,在有代码的情,况,况下)、易于,计,计算(可使用,代,代码行统计工,具,具)。,缺点:,对代码行度量,没,没有公认的标,准,准定义。,代码行数量依,赖,赖于所用的编,程,程语言和个人,的,的编程风格。,在项目早期,需,需求不稳定、,设,设计不成熟、,实,实现不确定的,情,情况下很难准,确,确地估算代码,量,量。,代码行(LOC),功能点(FP,),),用系统的功能,数,数量来测量其,规,规模,与实现,产,产品所使用的,语,语言和技术没,有,有关系。,对系统的外部,功,功能和内部功,能,能进行计数。,根据技术复杂,度,度因子(权),对,对它们进行调,整,整,产生产品,规,规模的度量结,果,果。,功能点计算公,式,式,FP =UFC*TCF,UFC(Unadjusted FunctionPointCount),未调整功能点,计,计数,TCF(Technical ComplexityFactor),技术复杂度因,子,子,UFC的计算,方,方法,首先计算功能计数项,对以下五类,元,元素计数:,外部输入:由,用,用户输入的面,向,向应用的数据,项,项。,外部输出:向,用,用户提供的输,出,出数据项。,外部查询:要,求,求系统回答的,交,交互式输入。,外部接口文件,:,:与其它系统,的,的接口数据文,件,件。,内部文件:系,统,统使用的内部,固,固定文件。,UFC的计算,方,方法,然后对各功能,计,计数项加权并,求,求和,得到UFC。,功能计数项,复杂度权重,简单,中等,复杂,外部输入,3,4,6,外部输出,4,5,7,外部查询,3,4,6,外部接口文件,5,7,10,内部文件,7,10,15,案例分析,某学院安装了,一,一个工资系统,,,,人事处要求,创,创建一个子系,统,统来分析每门,课,课程的人力资,源,源成本。要求,该,该子系统提供,查,查询每门课程,人,人力资源成本,的,的功能。每名,教,教师所得工资的细节可以通,过,过工资系统中,的,的文件得到,,教,教师花在教每,门,门课上的小时,数,数可通过一个,基,基于计算机的计时表系统中的文件,得,得到。该子系,统,统将计算结果存放到由总会,计,计系统读取的,一,一个文件中,,并,并产生一个报,告,告,来显示每,名,名教师每门课,的,的课时数及这,些,些课时数相应,的,的成本。,案例分析,问题:计算该子系,统,统的UFC。,(,(子系统产生,的,的报告复杂度,为,为高,其它所,有,有元素的复杂,度,度均为中等),案例分析,答案:UFC=1*7+1*4+3*7=32,功能计数项,计数,复杂度权重,外部输入,无,外部输出,报告 1,7,外部查询,1,4,外部接口文件,工资文件 1,计时表文件 1,计算结果文件 1,7,内部文件,无,TCF的计算,方,方法,技术复杂度影响因素,F1,可靠的备份和恢复,F2,数据通信,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.35,TCF的计算,方,方法,每个技术复杂,度,度影响因素的,取,取值范围:,取值,对系统的影响,0,不存在或者没有影响,1,不显著的影响,2,相当的影响,3,平均的影响,4,显著的影响,5,强大的影响,案例分析,案例中技术复杂度影响因素的取值,F1,可靠的备份和恢复,1,F2,数据通信,5,F3,分布式函数,0,F4,性能,3,F5,大量使用的配置,1,F6,联机数据输入,0,F7,操作简单性,1,F8,在线升级,0,F9,复杂界面,1,F10,复杂数据处理,4,F11,重复使用性,0,F12,安装简易性,3,F13,多重站点,0,F14,易于修改,3,sum(Fi)=22,TCF=0.65+0.01(sum(Fi)=0.65+0.01*22=0.87,该子系统的功,能,能点为:,FP=UFC*TCF=32*0.87=27.8,案例分析,功能点与代码,行,行的转换,语言,代码行/FP,Assembly,320,C,150,COBOL,105,FORTRAN,105,PASCAL,91,ADA,71,PL/1,65,PROLOG/LISP,64,SMALLTALK,21,SPREADSHEET,6,成本估算方法,代码行、功能,点,点,类比估算法,参数估算法,专家估算法,类比估算法,也称为基于案,例,例的推理,估,算,算人员根据以,往,往完成的类似,项,项目(源案例,),)所消耗的总,成,成本(或工作,量,量),来推算,将,将要开发的软,件,件(目标案例,),)的总成本(,或,或工作量)。,需提取项目的,一,一些特性作为,比,比较因子,如,项,项目类型(MIS系统、实,时,时系统等)、,编,编程语言、项,目,目规模、开发,人,人员数量、软,件,件开发方法等,。,。,在项目初期信,息,息不足时(例,如,如市场招标和,合,合同签订)适,于,于采用类比估,算,算法。,该方法简单易,行,行,花费少,,但,但准确性差。,类比估算法,成本估算方法,代码行、功能,点,点,类比,估,估算,法,法,参数,估,估算,法,法,专家,估,估算,法,法,参数,估,估算,法,法,使用,项,项目,特,特性,参,参数,建,建立,经,经验,估,估算,模,模型,来,来估,算,算成,本,本。,经验,估,估算,模,模型,是,是通,过,过对,大,大量,的,的项,目,目历,史,史数,据,据进,行,行统,计,计分,析,析(,如,如回,归,归分,析,析),而,而导,出,出的,。,。,经验,估,估算,模,模型,提,提供,对,对项,目,目工,作,作量,的,的直,接,接估,计,计。,该方,法,法简,单,单,,而,而且,比,比较,准,准确,,,,但,如,如果,模,模型,选,选择,不,不当,或,或提,供,供的,参,参数,不,不准,确,确,,也,也会,产,产生,较,较大,的,的偏,差,差。,经验,估,估算,模,模型,模型形式,:,:,E=A+B*S,C,E:以人,月,月表示的,工,工作量,A,B,C:经验,导,导出的系,数,数,S:主要,的,的输入参,数,数(通常,是,是LOC,FP等),面向LOC的:,Walston-Felix(IBM)模型,E= 5.2*(KLOC)0.91,Balley-Basili模型,E=5.5+0.73*(KLOC)1.16,Boehm简单模,型,型,E=3.2*(KLOC)1.05,Doty,模,模型,E=5.288*(KLOC)1.047,经验估算,模,模型,面向FP,的,的:,AlbrechtandGaffney,模,模型,E=-13.39+0.0545FP,Matson,Barnett,E=585.7+15.12FP,经验估算,模,模型,Walston-Felix(IBM)模型,1977,年,年,IBM的Walston和Felix提,出,出了如下,的,的估算公,式,式:,E 5.2L 0.91,,,,L是源,代,代码行数(以KLOC计),,,,E是工,作,作量(以PM计),D 4.1L 0.36,,,,D是项,目,目持续时,间,间(以月,计,计),S 0.54,E 0.6,,,,S是人,员,员需要量(以人计),DOC, 49,L 1.01。DOC是文档,数,数量(以,页,页计),COCOMO(ConstructiveCostmodel),构造性成,本,本模型,,是,是世界上,应,应用最广,泛,泛的参数,型,型软件成,本,本估计模,型,型。,由Barry Boehm,利,利用加利,福,福尼亚的,一,一个咨询,公,公司的大,量,量项目数,据,据推导出,的,的一个成,本,本模型。,该,该模型于1981,年,年首次发,表,表,于1994年,又,又推出了COCOMO,II,。,模型类别,基本COCOMO,静态单变,量,量模型。,中等COCOMO,在基本模,型,型基础上,考,考虑各种,影,影响因素,(,(工作量,驱,驱动因子,),),调整,模,模型。,高级COCOMO,中等COCOMO,模,模型基础,上,上考虑软,件,件工程中,各,各个步骤,的,的影响。,基本COCOMO,E=a,*,(KLOC)exp(b),E是项目,的,的工作量,(,(以人月,计,计),KLOC,是,是软件产,品,品的代码,行,行数,a、b是,依,依赖于项,目,目自然属,性,性的参数,基本COCOMO,系,系数表,系统类型,a,b,有机,2.4,1.05,半相连,3.0,1.12,嵌入式,3.6,1.20,系统类型,有机(Organic),各类应用,程,程序,例,如,如数据处,理,理、科学,计,计算等。,受硬件的,约,约束比较,小,小,接口,环,环境灵活,;,;软件的,规,规模不是,很,很大。,嵌入式(Embeded),系统程序,,,,例如实,时,时处理、,控,控制程序,等,等。,在硬件和,软,软件的严,格,格约束条,件,件下运行,,,,对系统,进,进行变更,的,的代价很,高,高;软件,的,的规模任,意,意。,半相连(,Semidetached,),介于上述,两,两种系统,之,之间。,基本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),*,工作量系,数,数,工作量系,数,数是根据,成,成本驱动,因,因子的打,分,分计算得,出,出,是对,公,公式的校,正,正系数。,中等COCOMO,系,系数表,系统类型,a,b,有机,3.2,1.05,半相连,3.0,1.12,嵌入式,2.8,1.20,成本驱动,因,因子,驱动因子类型,编码,成本驱动因子,产品属性,RELY,需要的软件可靠性,DATA,数据库规模,CPLX,产品复杂度,计算机属性,TIME,执行时间限制,STOR,主存限制,VIRT,操作系统变更的程度,TURN,计算机恢复时间要求,成本驱动,因,因子(续,),),驱动因子类型,编码,成本驱动因子,人员属性,ACAP,分析员能力,AEXP,应用经验,PCAP,程序员能力,VEXP,虚拟机(如操作系统)经验,LEXP,编程语言经验,项目属性,MODP,现代编程实践的使用,TOOL,软件工具的使用,SCED,需要的开发进度,工作量系,数,数的计算,规定每个,成,成本驱动,因,因子的取,值,值范围,,将,将其取值,划,划分为非,常,常低、低,、,、正常、,高,高、非常,高,高等级别,,,,每个级,别,别对应一,个,个值。例,如,如,软件,组,组织可以,决,决定使用,以,以下系数,来,来评估分,析,析员能力(ACAP)的影,响,响:,非常低(verylow,),)1.46,低(low)1.19,正常(nominal)1.00,高(hign)0.80,非常高(veryhign)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.09,E =3.0,33.3 1.12,1.09166 PM,高级(详,细,细)COCOMO,考虑了各,成,成本驱动,因,因子对分,析,析、设计,等,等各项目,阶,阶段的影,响,响。,成本估,算,算方法,代码行,、,、功能,点,点,类比估,算,算法,参数估,算,算法,专家估,算,算法,专家估,算,算法,由多位,对,对应用,领,领域和,开,开发环,境,境有丰,富,富经验,的,的专家,进,进行成,本,本估算,。,。,为避免,单,单个专,家,家产生,偏,偏见,,尽,尽量由,多,多位专,家,家进行,估,估算,,取,取得多,个,个估算,值,值,最,后,后得出,综,综合的,估,估算值,。,。,专家估,算,算法-Delphi,组织者,发,发给每,位,位专家,一,一份软,件,件系统,的,的规格,说,说明和,一,一张记,录,录估算,值,值的表,格,格,请,他,他们估,算,算。,专家详,细,细研究,软,软件规,格,格说明,后,后,对,该,该软件,提,提出3,个,个工作,量,量(或,成,成本),的,的估算,值,值:,最小值,a,i,最可能,值,值m,i,最大值b,i,组织者,对,对专家,的,的表格,中,中的答,复,复进行,整,整理,,计,计算每,位,位专家,的,的平均,估,估算值E,i,=(,a,i,+4m,i,+ b,i,)/6,和,和总的,平,平均值E=(E1+E2+En)/n(n,表,表示n,个,个专家)。,组织专,家,家无记,名,名填表,格,格,比,较,较估算,差,差,并,查,查找原,因,因。,如果各,个,个专家,的,的估算,差,差异超,出,出规定,的,的范围,(,(例如,:,: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(万,元,元),在项目,初,初期(,特,特别是,合,合同阶,段,段),,项,项目的,需,需求不,很,很明确,,,,且需,要,要尽快,得,得出成,本,本估算,结,结果,,此,此时可,采,采用类,比,比估算,法,法或专,家,家估算,法,法。,需求确,定,定之后,,,,开始,规,规划项,目,目时,,可,可采用,参,参数估,算,算法。,在项目,的,的实施,阶,阶段,,特,特别是,在,在发生,变,变更时,,,,需重,新,新估算,项,项目的,成,成本,,这,这时可,采,采用参,数,数估算,法,法和专,家,家估算,法,法。,成本估,算,算方法,总,总结,2.3,一,一种,实,实用的,软,软件成,本,本估算,过,过程,该过程,步,步骤如,下,下:,1.对,项,项目进,行,行任务,分,分解:1,2,i,n,2.估算每,个,个任务,的,的成本Ci,3.项目的,直,直接成,本,本=C1+C2+,+Ci+,+Cn,4.项目总,估,估算成,本,本=,直,直接成,本,本+间,接,接成本,5.项目总,报,报价=,项,项目总,估,估算成,本,本+风,险,险利润,估算每,个,个任务,的,的成本,先估计,任,任务的,工,工作量,E,i,(一般,以,以人月,为,为单位,),)。,然后估,算,算任务,成,成本C,i=,E,i,*,人力成,本,本参数,。,。,直接成,本,本估算,直接成,本,本的构,成,成:开,发,发成本,、,、管理,成,成本、,质,质量成,本,本,管理和,质,质量成,本,本的简,易,易估算,法,法:,开发工,作,作量:Effort(Dev),管理和,质,质量工,作,作量:Effort(Mgn)=a,*,Effort(Dev),a为比,例,例系数,,,,可根,据,据企业,的,的具体,情,情况而,定,定,例,如,如20%-25%,。,。,直接成,本,本=,Effort(Dev)+ a,*,Effort(Dev),间接成,本,本估算,根据企,业,业具体,的,的成本,模,模型进,行,行计算,。,。,简易估,算,算方法,:,:,间接成,本,本=直,接,接成本*间接,成,成本系,数,数,间接成,本,本系数,根,根据企,业,业的具,体,体情况,而,而定,,例,例如取0.3,。,。,项目总,估,估算成,本,本,总估算,成,成本=,直,直接成,本,本+间,接,接成本,=直接,成,成本+,直,直接成,本,本*间,接,接成本,系,系数,=直接,成,成本(1+间,接,接成本,系,系数),=工作,量,量*人,力,力成本,参,参数(1+间,接,接成本,系,系数),成本系,数,数=人,力,力成本,参,参数,*,(1+,间,间接成,本,本系数,),),总估算,成,成本=,工,工作量,*成本,系,系数,例如:,某,某项目,的,的工作,量,量是40人月,,,,成本,系,系数为2万元/人月,,,,则项,目,目的总,估,估算成,本,本为40*2=80,万,万元。,项目总,报,报价,风险利,润,润包括,风,风险基,金,金、项,目,目税费,和,和税后,利,利润等,。,。,风险利,润,润=项,目,目总估,算,算成本,*a%,a是利,润,润系数,,,,根据,企,企业、,项,项目的,不,不同而,不,不同。,项目总,报,报价=,项,项目总,估,估算成,本,本+,项目总,估,估算成,本,本,*a%,=项目总估算,成,成本(1+a%),2.4 成本,估,估算的准确度,类型,准确度,说明,量级估算:合同前,Order of magnitude,-25+75%,概念和启动阶段,决策,预算估算:合同期,Budget,-10+25%,编制初步计划,确定性估算:WBS后Definitive,-5+10%,工作分解后的详细计划,估算不准确的,原,原因,基础数据不足,估算对需求的,敏,敏感性,软件项目存在,许,许多变更和不,确,确定因素,缺乏有经验的,估,估算人员,签约前后的不,连,连贯,避免低劣的估,算,算,留出估算的时,间,间,并做好计,划,划,注意积累项目,数,数据,以开发,人,人员提供的经,验,验数据为基础,进,进行估算,分类法估算,进行详细的较,低,低层次上的估,算,算,使用估算工具,使用几种不同,估,估算技术,并,比,比较它们的结,果,果,估算的表达方,式,式,加减限定表示,6个人月的工,作,作量可表示为6+3、6-1人月。,范围表示,6个人月的工,作,作量可表示为59人月。,估算的表达方,式,式,风险量化,估算:6个人月,+3,-2,+1人月:延迟交付转换子系统,-1人月:新成员的工作效率高,+1人月:采用的新工具没有预计的好,-1人月:采用的新工具比预计的好,+0.5人月:员工病事假,+0.5人月:低估规模,本章内容提要,软件项目规模,成,成本的概念,成本估算,成本预算,成本控制,第三节 成本,预,预算,成本预算是将,项,项目总估算成,本,本分摊到各个,工,工作单元中去,,,,主要包括三,个,个步骤:,将项目的总估,算,算成本分摊到,各,各项活动。根,据,据项目的成本,估,估算确定项目,的,的总预算成本,后,后,将总预算,成,成本按照项目,工,工作分解结构,(,(WBS)和,每,每一项活动的,工,工作范围,以,一,一定比例分摊,到,到各项活动中,,,,为每项活动,建,建立总预算成,本,本。,将活动总预算,成,成本分摊到工,作,作包。将活动,总,总预算成本按,照,照构成这一活,动,动的工作包和,所,所消耗的资源,数,数量进行成本,预,预算分摊。,确定各工作包,成,成本预算支出,的,的时间以及每,一,一个时间所发,生,生的累积成本,支,支出额,形成,成,成本基线。,成本预算的依,据,据和特征,成本预算的依,据,据:,成本估算,工作分解结构,(,(WBS),项目进度计划,成本预算的特,征,征:,计划性:将总,费,费用精确的分,配,配到WBS的,每,每一个工作包,中,中。,控制性:合理,规,规划资源,控,制,制资源使用,,节,节约成本。,降低项目成本,预,预算的方法,降低资源的费,率,率,减少任务的工,时,时,减少加班,替换资源,删除任务,降低资源的费,率,率,降低人力资源,的,的费率往往会,打,打击工作人员,的,的积极性,但,可,可以通过降低,其,其他资源的费,率,率来实现,比,如,如降低能源消,耗,耗、设备费用,、,、耗材费用等,。,。,减少任务的工,时,时,使任务高效率,地,地执行,避免,浪,浪费时间,从,而,而适当减少任,务,务的工时,可,以,以降低任务的,费,费用。,降低项目成本,预,预算的方法,减少加班,加班需要支付,加,加班费率,这,通,通常要高于正,常,常情况下的人,力,力资源费率,,所,所以减少加班,可,可以有效的减,少,少项目成本。,替换资源,用廉价的资源,替,替换比较高价,的,的资源,但有,一,一个前提,那,就,就是替换的资,源,源同样能胜任,这,这项任务。,删除任务,确认删除该任,务,务对项目没有,影,影响或影响在,可,可控制范围内,才,才可采用。,降低项目成本,预,预算的方法,重视维护阶段,的,的成本预算,加强客户对软,件,件维护在软件,应,应用中重要性,的,的认识。在签,订,订软件合同时,,,,应增加对软,件,件维护的成本,预,预算。,软件市场中对,软,软件维护的规,范,范性要有一个,统,统一科学的认,识,识和约束,要,形,形成规范的软,件,件服务市场。,坚持有偿服务,的,的原则。,加强软件开发,中,中的软件测试,、,、软件复用,,组,组件化,标准,化,化、泛性模式,的,的运用。,
展开阅读全文