软件开发成本估算方法【转】

转自:http://hi.baidu.com/wangziming/blog/item/d8ee34010b18cf0e7bec2c4b.html

我的学习感悟:对于这个并不懂,尤其是什么静态单变量、动态多变量的。先暂时留着,以后继续学习。
目前,有三种基本的软件项目成本估算方法:自顶向下、自底向上和差别估算法。自顶向下的方法是对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配;自底向上的方法是分别估算个工作单元所需的开发时间,然后汇总得出总的工作量和开发时间;差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。

专家估算法
  专家估算法是依靠一个或多个专家对项目做出估计,它要求专家具有专门知识和丰富的经验,是一种近似的猜测。Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家"专"的程度及对项目的理解程度是工作中的难点,尽管Delphi技术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时特别有用。Delphi法鼓励参加者就问题相互讨论,要求有多种软件相关经验人的参与,互相说服对方。

类推估算法
  类推估算法是比较科学的一种传统估算方法,它适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类推估算法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类推估算法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。

这种方法的基本步骤是:
  (1) 整理出项目功能列表和实现每个功能的代码行;

(2) 标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;

(3) 通过步骤1和2得出各个功能的估计值;

(4) 产生规模估计。

算式估算法
  算式估算法利用经验模型进行成本估算,它通常采用经验公式来预测软件项目计划所需要的成本、工作量和进度数据。目前还没有一种估算模型能够适用于所有的软件类型和开发环境,从这些模型中得到的结果必须慎重使用。

(1) Putnam模型

Putnam模型是一种动态多变量模型,它是假定软件开发的整个生存期中工作量的分布,如一个30人年以上的项目,其人力使用分布如图7.3所示。

然后根据曲线导出一个估算公式:

(2) COCOMO模型

结构性成本模型COCOMO(COnstructive COst MOdel)是一种精确的、易于使用的成本估算方法,它分为基本COCOMO模型和中级COCOMO模型两种类型。基本COCOMO模型是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的经验函数来计算软件开发工作量。中间COCOMO模型则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。更详细的COCOMO模型除了包括中间COCOMO模型的所有特性外,还考虑了在需求分析、软件设计等每一步的影响。

* 基本COCOMO模型估算公式

E=ab(KLOC)exp(bb)
  D=cb(E)exp(db)
  其中,E为开发所需的人力(人月),D为所需的开发时间(月),KLOC为估计提交的代码行,ab、bb、cb和db为不同软件开发方式的值,见下表。
方式
ab
bb
cb
db
组织型
2.41.052.50.38半独立型
3.01.122.50.35嵌入型
3.61.22.50.32     由以上公式可以导出生产率和所需人数的公式:

生产率=(KLOC)/E(代码行/人月)
  人数=E/D
  * 中级COCOMO模型估算公式

中级COCOMO模型先产生一个基本COCOMO模型一样形式的估算公式,然后对15个成本驱动属性打分,定出乘法因子,对公式进行修正。

15个影响软件工作量的因素见下表:
工作量因素fi
非常低低正常高非常高超高
产品因素软件可靠性
数据库规模
产品复杂性0.750.881.001.151.400.941.001.081.160.700.851.001.151.301.65计算机因素执行时间限制

存储限制 
虚拟机易变性 
环境周转时间

0.87 
0.871.00
1.00
1.00
1.001.11
1.06
1.15
1.071.30
1.21
1.30
1.151.66
1.56人的因素分析员能力 
应用论域实际经验 
程序员能力 
虚拟机使用经验 
程序语言使用经验
1.29
1.42
1.21
1.411.46
1.13
1.17
1.10
1.071.00
1.00
1.00
1.00
1.000.86
0.91
0.86
0.90
0.950.71
0.82
0.70项目因素现代程序设计技术 
软件工具的使用 
开发进度限制1.24
1.24
1.231.10
1.10
1.081.00
1.00
1.000.91
0.91
1.040.82
0.83
1.10  中级COCOMO模型的估算公式:
  E=ai(KLOC)exp(bi)×乘法因子
  其中ai和bi的值见下表。
方式aibi组织型3.21.05半独立型3.01.12嵌入型2.81.2(3) IBM模型
  1977年,Walston和Felix总结了IBM的60个项目数据,提出了如下的估算公式:

E=5.2×L0.91, L是源代码行数(以KLOC计),E是工作量(以PM计)

D=4.1×L0.36=2.4×E0.35, D是项目持续时间(以月计)

S=0.54×E0.6, S是人员需要量(以人计)

DOC=49×L1.01, DOC是文档数量(以页计)

http://blog.sina.com.cn/s/blog_632f3ee30100uf8s.html

时间: 2024-10-10 23:35:48

软件开发成本估算方法【转】的相关文章

软件开发工作量的估算方法

在讨论软件工作量估算方法前,首先要清楚什么事软件工作量估算. 我理解的工作量估算,就是估算软件项目所耗费的资源数,这个资源包含人力和时间,一般用人天.人月的形式来衡量.(而软件的成本=耗费的资源*资源的单价).而且我个人觉得软件工作量与软件规模是不等的,规模是指大小是固定的,而一个软件开发的工作量与许多因素有关,如公司的效率啊,参与开发人员的编程水平等. 从估算单位角度来说,工作量估算的方法分为两类:直接估算法和间接估算法.直接法指基于WBS的工作量估算方法,直接估算出人天工作量:间接估算法是先

柯南君:看“项目管理中的成本估算及估算方法 ”

   柯南君最近手头遇到点工作,集团官网需要改版,那么改版必然会考虑成本,何况这次是包给外包公司全权处理,那么在成本估算上,必然会煞费苦心.不由的,想想如何去估算,才能更加准确,那么在这里,柯南君和大家一起分享一下 目前都在如何去估算?估算都有哪些方法论,当然,选择哪种方法论,要看你公司的实际情况了啊! 一.什么是软件开发成本估算? 软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价. 不同于传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗.另外,软件也没有一

软件项目估算实战(广州 2014-12-6)

课程收益本课程将会为为你带来以下收益:1.改变项目小组不敢估算的心态,勇于估算和承担责任:2.学会实用的项目估算办法(包括项目初期估算和项目中后期估算):3.学会估算驱动计划,让项目实际成本与估算保持一致. 上课时间2014年12月6日(周六),上午9:00-12:00,下午14:00-17:30 上课地点广州山水时尚酒店(东站店)4楼会议室 (地铁1号线火车东站I出口左转30米即可抵达酒店) 适合听众中高层领导,项目经理,敏捷教练,SEPG.EPG.PMO参加课程的朋友需要具备一定项目管理经验

软件项目中的成本构成及估算方法【转】

随着知识经济.信息时代的来临,计算机软件业迅猛发展.商品化.资本化.资产化的计算机软件的价值 评估的社会需求也日益增多,而且有越来越多的趋势.由于系统软件通常是一些规模大.复杂程度高的人一 机系统,因此,系统软件的开发.使用.维护.管理的过程,是一个非常复杂的系统工程,需要有巨大的人 力.物力.财力资源,需要各种计算机软.硬件的支持.这一特点是在系统软件评估中应予充分考虑的,也 是从成本途径评估系统软件价值时应予着重关注的.据统计,软件成本在软.硬件总成本中的份额,已从50 年代的百分之十几,上

软件项目估算之代码行估算方法

现在软件在大多数基于计算机的系统中已成为最昂贵的部分,如果软件成本估算的误差很大,就会使盈利变成亏损. 软件项目估算是一种解决问题的形式,在多数情况下,要解决的问题非常复杂,想一次性整体解决比较困难.因此,对问题进行分解,把其分解成一组较小的接近于最终解决的可控的子问题,再定义它们的特性. 估算技术一般有代码行(LOC)和功能点(FP)估算法,这是两种不同的估算技术,但有许多共同特性.项目计划人员首先给出一个有界的软件范围的叙述,再由此尝试着把软件分解成一些小的可分别独立进行估算的子功能.然后对

Project Management: 软件项目估算与计划不是一般的难!

摘要:估算.计划.计划跟踪是项目管理的主要工作,难度之高超乎你想象!光靠学习项目管理理论难以管好项目,而往往真能管好项目的都是那些在具体项目中滚打出来的实干人士.本文将会让你全面学习项目估算.计划.计划跟踪的知识,体验实际项目管理的难度,学到提高项目管理水平的一些方法. 大纲:1.从建筑工程说起2.估算要估啥?3.估算如何做出来?4.计划有什么内容?5.计划是如何做出来的?6.如何跟踪计划?7.优秀项目经理是怎样炼成的? 特别声明:如需转载此文,请给出指向本网站的连接,如下:作者:张传波摘自:h

我读经典(9):读《完美软件开发:方法与逻辑》有感

开发出一款受用户欢迎的.十全十美的软件是每个软件开发工程师的梦想,但在现实条件下,受市场环境.公司氛围及自身水平等的影响,要开发出一款完美的软件几乎是不太可能的.最近,我阅读了李志勇老师的<完美软件开发:方法与逻辑>一书,颇有收获. 正如李老师所说,本书是为"培养帅才"而写的.全书共9章内容,以思维逻辑为出发点和归宿,表达了作者对完美软件开发的一些理解和认识.本书涉及到的内容包括:项目管理.流程.开发模型.估算方法.需求开发.设计和编码等.在最后一章中,作者以薪水支付与性能

软件项目报价方法

题:软件项目报价方法 广告:========================================================== 欢迎使用[豆瓣读书] 管理你的阅读,查阅书评,编写读书笔记等. ^^ app下载:http://itunes.apple.com/cn/app/id695492935 ================================================================= 软件项目一般包括解决方案.开发.维护.系统集成等.以下

SAPCAR 压缩解压软件的使用方法

SAPCAR 是 SAP 公司使用的压缩解压软件,从 SAP 网站下载的补丁包和小型软件基本都是扩展名为 car 或 sar 的,它们都可以用 SAPCAR 来解压.下面是它的使用说明: 用法: 创建新档案:SAPCAR -c[vir][f archive] [-P] [-C directory]   [-A filename] [-T filename] [-X filename]   [-p value] [-V] file1 file2 ... 列出一个档案的内容:SAPCAR -t[vs