文档详情

6软件项目规模成本估算

沈***
实名认证
店铺
PPT
3.42MB
约111页
文档ID:166946902
6软件项目规模成本估算_第1页
1/111

软件项目管理与质量保证 chapter_70软件开发项目管理软件开发项目管理第六章第六章软件项目规模成本估算软件项目规模成本估算 chapter_61本章要点本章要点q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、估算的误差 chapter_62成本管理过程成本管理过程q资源计划编制:q确定项目需要的资源种类和数量q成本估算:中心环节q编制一个为完成项目各活动所需要的资源成本的近似估算q成本预算:项目进度q将总成本估算分配到各单项工作活动上q成本控制:项目跟踪q控制项目预算的变更 chapter_63关于估算关于估算q估算不是很准确的,有误差的q经验(历史)数据非常重要q不要太迷信数学模型 chapter_64软件项目规模软件项目规模q软件项目规模即工作量,是从软件项目范围中抽出的软件功能,然后确定每个软件功能所必须执行的一系列软件工程任务q包括:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务chapter_65规模的单位规模的单位qLOC(Loc of Code)q源代码程序长度的测量qFP(Function Point)q用系统的功能数量来测量q人月q人天q人年 chapter_66软件项目成本软件项目成本q完成软件规模相应付出的代价。

q待开发的软件项目需要的资金q人的劳动消耗所需要的代价是软件产品的主要成本q开发成本是以一次性开发过程所花费的代价来计算的 chapter_67软件的规模和成本的关系软件的规模和成本的关系q软件项目规模(工作量)是成本的主要因素,是成本估算的基础q有了规模就确定了成本,如一个项目需要20人月,3万元/人月,则项目的成本是60万chapter_68成本估算定义成本估算定义q对完成项目所需费用的估计和计划q包括预测开发一个软件系统所需要的总工作量的过程q是一种量化的结果q可以有一些误差,通常需要一定的调节q成本估算不同于项目定价q贯穿于软件的生存周期,只要WBS有变化就需要进行成本估算q估计成本、资源、进度时需要经验、历史信息chapter_69本章要点本章要点q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、估算的误差 chapter_610成本估算过程成本估算过程估算输入估算结果成本估算方法 chapter_611成本估算输入成本估算输入q项目需求、WBSq历史项目度量q资源要求(资源编制计划)q资源消耗率(资源单价):如人员成本:100元/小时q进度规划:项目总进度(一般是合同要求)q学习曲线(项目组学习某项技术的时间)chapter_612资源规划资源规划q需要的资源种类、数量等 chapter_613一个大型一个大型IT项目的示例资源直方图项目的示例资源直方图024681012JanFebMarAprMayJunJulAugSepOctNovDecJava programmersBusiness analystsTechnical writersManagersAdministrative staffDatabase analystsTesting specialistsNumber of People chapter_614成本估算成本估算规模成本估算主要是对各种资源的估算,包括人力资源、设备、资料等。

q直接成本q间接成本这些估算的算法下节讲 chapter_615直接成本直接成本q与具体项目相关的成本(人员的工资、材料费、外包外购成本等),包括开发成本、管理成本、质量成本等chapter_616间接成本间接成本q不能具体到某个项目中的成本,q可以分摊到各个具体项目中的成本,例如:q培训q房租水电q员工福利q市场费用q管理费q其他等等 chapter_617项目估算结果项目估算结果估算结果包括估算文件和估算说明q估算文件q包括资源,资源的数量,质量标准,估算成本等信息q单位:一般是货币单位,或是规模单位qBAC(Budget At completion预算完成)q估算说明q工作范围,通常由WBS获得q估算的基础和依据,即确认估算是合理的和估算是根据什么产生的q确认为成本估算所做的任何假设的合理性q估算的误差变动等 chapter_618本章要点本章要点q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、估算的误差 chapter_619估算的基本方法估算的基本方法1.代码行、功能点、用例点2.类比(自顶向下)估算法3.自下而上估算法4.参数法估算法5.专家估算法 chapter_620代码行(代码行(LOCLOC)q从软件程序量的角度定义项目规模。

q要求功能分解足够详细的q有一定的经验数据(类比和经验方法)q与具体的编程语言有关 chapter_6211静态单变量估算模型静态单变量估算模型这种模型在计算软件开发的资源花费时,只需要设定被开发软件的一种参数,故称为单变量型它的一般形式是:资源=C1(估计的软件特征)C2其中,资源可以是开发工作量(E)、开发时间(T)或开发人数(P)等;估计特征可以用源程序长度(L)、或软件的开发工作量(E);C1、C2为依赖于开发环境和软件应用领域的两个经验常数1静态单变量成本估算模型静态单变量成本估算模型自1973年至l977年,Walston与Felix从60个软件项目(源程序长度从4至467千行,工作量从l2至11758个人月,使用了28种不同的高级语言)的统计中导出了以下的一组参数方程:E(人月)=5.1L (千行)0.91 T(月)=4.1L (千行)0.36 T(月)=2.47E (人月)0.35 P(人)=0.54E (人月)0.6 文档长度(页)=49L(千行)1.01这组方程在计算E、T、P等开发所需的资源时,使用L(千行)作为估计的特征由L计算开发时间、工作量或文档页数,再由算出的工作量E来计算开发时间与所需人数。

这类模型简单易懂,常数C1、C2可以从历史数据导出但如果没有适用于本单位情况的经验常数,就不能直接搬用2Putnam成本估算模型成本估算模型Putnam模型是一种动态多变量资源模型,可以用下面的方程式来表示:L=cK1/3 T4/3或 K=L3(c3 T4)其中L(行)与T(年)仍分别代表源程序长度和开发时间K表示全生存期(含维护在内)所需要的工作量(人年)对大型软件而言,其大小约为开发工作量E的2.5倍,即E=0.4 Kc是一个与开发环境有关的常数对“优良”、“好”与“不好”的3种环境,c的典型值可分别取l2500、10000与65002Putnam成本估算模型成本估算模型这个模型发表于1978年,是LPutnam对50个大型军用软件(生存期工作量均在30人一年以上)研究得出的结果后来又对另外l50个大型软件进行验证,也取得满意的效果一般认为,规模在10万行以上的软件,用这个模型是适当的Putnam模型的特点,是在同一个模型中给出了K(或E)、L和T三者之间的关系例如,给定了L和T,就可以用它来估计开发所需的工作量E如果估计的程序长度有一个范围(例如从L1L2),则在保持工作量不变的情况下,可算出相应的开发时间T1与T2等。

Putnam模型方程揭示了E与T之间的关系根据这一方程,开发工作量E与开发时间T的4次方成反比这表明,开发时间的小量变化,会引起开发工作量相当大的变化如果把开发时间成倍延长,则一个原来需要100个人一月完成的项目,能够把工作量降低到仅需6.5个人月(=10024)3.COCOMO模型模型(1)按照软件的应用领域和复杂程度,将它们分为组织(Organic)、半独立(Semidetached)和嵌入(Embeded)3种类型,每类分别使用一组不同的模型方程,如表11-1中由上向下,程序的复杂度逐步提高,E和T的计算值也随之增大3.COCOMO模型模型n(2)在模型中增加一个工作量调节因子EAF(Effort adjustment Factor),反映各种有关因素对软件开发的影响Boehm把这些因素归结为4类共l5种因子,如下表所示n每种因子的可根据实际情况在一定范围内上下浮动模型中使用的调节因子值,就是这15种因子的值的乘积,可以写作n EAF=(i=1,2,15)3.COCOMO模型模型示例示例示例示例(1)换用水平较低的开发人员本例中原来使用较高水平的分析员和程序员,一个人月的花费是6000美元。

如果换用5000美元人月的人员,则人员水平的两个调节因子均将从0.86上升为1.00,整个EAF值将从原来的l.17变成l.170.860.86=1.58开发成本不仅没有节省,反比原来有所增长请看下面的计算:原开发成本:600044.41.17=311400新开发成本:500044.41.58=350760示例示例(2)扩充内存储器容量假定原有的内存容量为64 KB,允许软件使用的内存为46 KB现决定增加l0000美元购买内存扩充板,使软件可用的内存从46 KB扩充为96 KB这样,内存容量的调节因子值可从原来的l.06(见11.2末栏第5项)下降为1.00,从而使EAF从1.17下降为1.10虽然新增加10000美元的投资,总开发成本仍可望下降以下是新成本的算式:600044.41.10+10000=293000功能点(功能点(FPFP)q用系统的功能数量来测量其规模q与实现产品所使用的语言和技术没有关系的q两个评估q内部基本功能q外部基本功能q加权和量化 chapter_632功能点的公式功能点的公式qFP=UFC*TCFqUFC:未调整功能点计数qTCF:技术复杂度因子 chapter_633UFC-UFC-未调整功能点计数未调整功能点计数功能计数项:1.外部输入:由用户提供的用来描述面向应用的数据项(如屏幕、表单、对话框、控件、文件等)2.外部输出:那些向用户提供的用来生成面向应用的数据项。

3.外部查询:要求回答的交互式输入的项4.外部文件:对其他系统的机器可读界面的项5.内部文件:系统里的逻辑主文件的项 chapter_634UFC-UFC-未调整功能点计数未调整功能点计数功能计数项的复杂度等级复杂度权重因素项简单一般复杂外部输入346外部输出457外部查询346外部文件5710内部文件71015 chapter_635功能点计算实例功能点计算实例-UFC-UFC功能点项简单一般复杂外部输入6*32*43*6外部输出7*47*50*7外部查询0*32*44*6外部文件5*52*73*10内部文件9*70*102*15总计UFC301 chapter_636TCF-TCF-技术复杂度因子技术复杂度因子TCF=0.65+0.01(sum(Fi)TCF=0.65+0.01(sum(Fi):Fi:0-5,TCF:0.65-1.35Fi:0-5,TCF:0.65-1.35技术复杂度因子F1可靠的备份和恢复F2数据通信F3分布式函数F4性能F5大量使用的配置F6联机数据输入F7操作简单性F8升级F9复杂界面F10 复杂数据处理F11重复使用性F12安装简易性F13多重站点F14易于修改 chapter_637技术复杂度因子的取值范围技术复杂度因子的取值范围调整系数调整系数描述描述0不存在或者没有影响1不显著的影响2相当的影响3平均的影响4显著的影响5强大的影响 chapter_638功能点计算实例功能点计算实例q假设一个软件项目所有技术复杂度都是平均程度,即技术复杂度因子的值都为3,则计算功能点如下:qFP=UFC*TCFqUFC=301qTCF=0.65+0.01(14*3)=1.07qFP=301*1.07=322 chapter_639功能点与代码行的转换功能点与代码行的转换语言代码行代码行/FPAssembly320C150COBOL105FORTRAN105PASCAL91ADA71PL/165PROLOG/LISP64SMALLTALK(面向对象之母)21SPREADSHEET(电子制表)640用例点估算模型用例点估算模型 chapter_341用例点估算模型用例点估算模型 chapter_342用例点估算方法的基本步骤用例点估算方法的基本步骤1.计算未调整的角色的权值UAW;2.计算未调整的用例的权值UUCW;3.计算未调整的用例点UUCP;4.计算技术和环境因子TEF和ECF5.计算调整的用例点UCP;6.计算工作量(manhours)。

chapter_6431、计算未调整的角色的权值计算未调整的角色的权值UAWUAW=chapter_6442、计算未调整的用例计算未调整的用例的的权值权值UUCW UUCW=chapter_6453、计算未调整的用例点计算未调整的用例点UUCPUUCP=UAW+UUCW :例如 chapter_3464、计算技术因子计算技术因子TCF chapter_6475.环境复杂度因子(环境复杂度因子(ECF)6、计算调整的用例点计算调整的用例点UCP chapter_649UCP=UUCPTCFECF=1101.020.62=70ECF为环境复杂度因子7、计算工作量计算工作量如果:如果:PF=20工时工时/用例点用例点则:则:Effort=UCPPF=7020=1400h=175人天人天 chapter_650估算的基本方法估算的基本方法q代码行、功能点、用例点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法 chapter_651类比类比-定义定义q从项目的整体出发,进行类推,即估算人员根据以往的完成类似项目所消耗的总成本(或工作量),来推算将要开发的软件的总成本(或工作量),然后按比例将它分配到各个开发任务单元中q是一种自上而下的估算形式 chapter_652类比类比使用情况使用情况q有类似的历史项目数据q信息不足(要求不是非常精确)的时候q在合同期和市场招标时q在高层对任务的总的评估 chapter_653类比类比特点特点q简单易行,花费少q具有一定的局限性q准确性差,可能导致项目出现困难 chapter_654类比类比举例举例q证券交易网站q需求类似q历史数据:10万q学习曲线:5-8万 chapter_655估算的基本方法估算的基本方法q代码行、功能点、对象点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法 chapter_656自下而上自下而上定义定义q利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。

chapter_657自下而上自下而上使用情况使用情况q在进入项目开始以后,WBS以后的开发阶段q需要进行准确估算的时候 chapter_658自下而上自下而上特点特点q这种方法准确它的准确度来源于每个任务的估算情况q非常费时,估算本身也需要成本支持q可能发生虚报现象 chapter_659估算的基本方法估算的基本方法q代码行、功能点、对象点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法 chapter_660参数估算法参数估算法定义定义q一种使用项目特性参数建立数据模型来估算成本的方法,是一种统计技术,如回归分析和学习曲线q参考历史信息q根据实际情况,对参数模型按适当比例调整q模型可以简单也可以复杂,很少有通用性 chapter_661参数估算法参数估算法使用情况使用情况q存在成熟的项目估算模型q应该具有良好的数据库数据为基础q目前软件企业估算很少使用通用的数学模型 chapter_662参数估算法估算单位参数估算法估算单位q每个任务必须至少有一个统一的规模单位,例如qKLOC,FPq人天,人月,人年q参数:xx元/KLOC.xx元/FP,xx元/人天 chapter_663参数估算法特点参数估算法特点q比较简单,而且也比较准确q如果模型选择不当或者数据不准,也会导致偏差 chapter_664参量成本估算实例参量成本估算实例(适合单价合同适合单价合同)项目经理(30美元/小时)15,000美元分析家(20美元/小时)20,000美元技术员(13美元/小时)2,6000美元总劳动开支61,000美元一般管理费(35%)21,350美元总劳动费加管理费82,350美元额外费用(25%)16,470美元小计98,820美元交通费(四次旅行,1000/次)4000美元微机计算机费(2台,3500/台)7000美元打印与复制费2000美元总辅助费13,000美元总项目费用开支111,820美元 chapter_665软件成本估算模型软件成本估算模型q理论导出:不成熟阶段q经验导出:软件估算常常采用 chapter_666经验导出成本模型经验导出成本模型q提供工作量(规模)的直接估计q通过过去项目数据,进行回归分析,得出的回归模型q依据不同的细化程度,通过参数的输入来进行成本估算。

通常,输入包括q产品的预计规模q产品的自然属性q组织能力q项目性质 chapter_667经验导出成本模型经验导出成本模型q整体公式:E=A+B*SCqE:以人月表示的工作量qA,B,C:经验导出的常数qS:主要的输入参数(通常是LOC,FP等)chapter_668经验导出成本模型经验导出成本模型(续续)面向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.047 chapter_669估算的基本方法估算的基本方法q代码行、功能点、用例点q类比(自顶向下)估算法q自下而上估算法q参数法估算法q专家估算法 chapter_670专家估算法专家估算法q由多位专家进行成本估算,一个专家可能会有偏见,最好由多位专家进行估算,取得多个估算值,最后得出综合的估算值chapter_671专家估算法专家估算法-Deiphi-Deiphiq组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算q专家详细研究软件规格说明后,对该软件提出3个规模的估算值q最小aiq最可能的miq最大biq组织者对专家的表格中的答复进行整理q计算每位专家的Ei=(ai+4mi+bi)/6,chapter_672专家估算法专家估算法-Deiphi(-Deiphi(续续)q综合结果后:E=(E1+E2+En)/n(N:表示N 个专家),再组织专家无记名填表格,比较估算差,并查找原因q如果各个专家的估算差异超出规定的范围(例如:15%),则需重复上述过程,最终可以获得一个多数专家共识的软件规模 chapter_673专家估算法专家估算法-举例举例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(万元)chapter_674估算方法总结估算方法总结q初期q类比q专家估算q计划阶段q自下而上q参数模型q实施阶段(包括变更发生)q自下而上q参数模型 chapter_675成本估算方法综述成本估算方法综述q主要考虑三种模型:类比法,自下而上法,参数法.q自下而上法费时费力,参数法比较简单q自下向上法与参数法的估计精度相似q各种方法不是孤立的,应该注意相互的结合使用q类比法通常用来验证参数法和自下而上法的结果 chapter_676实用软件估算模型实用软件估算模型是一种自下而上和参数法的结合模型,步骤如下:1.对任务进行分解2.估算每个任务的成本Ei3.直接成本=E1+E2+Ei+En4.4.项目总估算成本项目总估算成本=直接成本+间接成本5.5.项目总报价项目总报价=项目总估算成本项目总估算成本+风险利润风险利润 1.1.风险利润风险利润=利润+风险基金+税 chapter_677估算每个任务的成本估算每个任务的成本q直接估算成本Eiq先估算规模Qi,然后估算成本Ei=Qi*人力成本参数q唯一估计值:Qi=AvgqPERT算法:Qi=(Max+4Avg+Min)/6 chapter_678直接成本估算直接成本估算q直接成本组成q开发成本q管理成本q质量成本q直接成本=规模*人力成本参数简易估算:开发(工作量)规模:Scale(Dev)(单位:人月)管理、质量(工作量)规模:Scale(Mgn)=a*Scale(Dev)a:比例系数:例如:20%-25%chapter_679直接成本估算直接成本估算q直接成本=规模*人力成本参数q例如:人力成本参数=2万/人月,30人月的项目的直接成本是 60万 chapter_680项目总估算成本项目总估算成本估算成本=直接成本+间接成本间接成本估算:1.按照企业模型直接估算:2.简易算法:l间接成本=直接成本*间接成本系数l间接成本=规模*人力成本参数*间接成本系数例如:间接成本系数=1.5-3 chapter_681项目总估算成本项目总估算成本q估算成本=直接成本+间接成本q估算成本=规模*人力成本参数(1+间接成本系数)q成本系数=人力成本参数*(1+间接成本系数)q简易算法:q估算成本=规模*成本系数q例如:成本系数=3万/人月 chapter_682项目总报价项目总报价1.1.项目总报价项目总报价=项目总估算成本项目总估算成本+风险利润风险利润1.项目利润=估算成本*a%2.风险基金=估算成本*a%3.税=估算成本*b%(例如:b为5.5左右)2.2.项目总报价项目总报价=x%*项目总估算成本项目总估算成本 chapter_683本章要点本章要点q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、估算的误差 chapter_684估算准确度估算准确度类型准确度说明量级估算:合同前Order of magnitude-25+75%概念和启动阶段决策预算估算:合同期Budget-10+25%编制初步计划确定性估算:WBS后Definitive-5+10%工作分解后的详细计划 chapter_685估算不准的原因估算不准的原因q基础数据不足q缺乏经验的估算人员q签约前后不连贯q低劣的推测技术q估算对需求的敏感性 chapter_686对付估算误差对付估算误差q避免低劣估算q处理低劣估算带来的后果 chapter_687避免低劣估算避免低劣估算1.避免无准备的估算2.留出估算的时间,并做好计划3.使用以前的项目数据4.使用以开发人员为基础的估算5.分类法估算6.详细的较低层次上的估算7.使用几种不同估算技术,并比较它们的结果 chapter_688处理低劣估算带来的后果处理低劣估算带来的后果q通过数据说明资源不足,争取更多资源q强化变更管理程序q确定目标的优先次序 chapter_689估算的表达方式技巧估算的表达方式技巧1.加减限定1.6个人月,+3人月,-1人月2.范围l5-9人月 chapter_690估算的表达方式技巧估算的表达方式技巧3.风险量化:见下例估算:6个人月,+3,-2+1人月:延迟交付转换子系统-1人月:新成员的工作效率高+1人月:采用的新工具没有预计的好-1人月:采用的新工具比预计的好+0.5人月:员工病事假+0.5人月:低估规模 chapter_691估算的表达方式技巧估算的表达方式技巧n4.情况:见下:案例估算的例子情况情况估算估算最佳情况100人月计划情况110人月最差情况150人月 chapter_692本章要点本章要点q一、软件项目规模成本的概念q二、估算的过程q三、估算的方法q四、案例分析q四、估算的误差 chapter_693医疗信息商务平台成本估算医疗信息商务平台成本估算MED的的2个估算方法:个估算方法:l自下而上的估算自下而上的估算l用例点估算用例点估算 chapter_694MED自下而上的估算自下而上的估算 chapter_395计算开发成本计算开发成本1.通过自下而上的计算,得知项目开发规模是396人天,开发人员成本参数=1000元/天,则内部的开发成本=1000元/天*396天=39.6万元2.加上外包部分软件成本2.4万元,则开发成=39.6万+2.4万=42万元 chapter_696计算管理成本计算管理成本针对本项目,管理成本=开发成本*10%。

所以,管理成本为=42万元*10%=4.2万元chapter_697计算直接成本计算直接成本因为,直接成本=开发成本+管理成本所以,直接成本=42万元+4.2=46.2万元,chapter_698计算间接成本计算间接成本因为,间接成本=直接成本*20%所以,间接成本=46.2万元*20%=9.24万元chapter_699计算总估算成本计算总估算成本项目总估算成本=直接成本+间接成本=46.2万元+9.24万元=55.44万元chapter_6100MED用例点估算用例点估算 chapter_3101角色:角色:User chapter_3102计算未调整的角色的权值计算未调整的角色的权值:UAWUAW=18chapter_6103计算未调整的用例权值计算未调整的用例权值:UUCWUUCW=240chapter_6104计算未调整的用例计算未调整的用例点:点:UUCPUUCP=UAW+UUCW=18+240=258chapter_6105技术复杂度因子技术复杂度因子TCF chapter_3106环境因子环境因子ECF chapter_3107计算用例点计算用例点UCPUCP=UUCPTCFECF=2581.080.785=218.7 chapter_6108规模:规模:Effort如果:PF=20工时/用例点则:Effort=UCPPF=218.720=4374工时。

因为1人天=8工时,则项目规模:4374/8=547人天如果1000元/人天,则成本54.7万 chapter_6109小结小结q成本估算的过程q成本估算的方法q掌握成本估算的技巧 chapter_6110。

下载提示
相关文档
正为您匹配相似的精品文档