软件开发成本估算方法

我的学习感悟:对于这个并不懂,尤其是什么静态单变量、动态多变量的。先暂时留着,以后继续学习。
目前,有三种基本的软件项目成本估算方法:自顶向下、自底向上和差别估算法。自顶向下的方法是对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配;自底向上的方法是分别估算个工作单元所需的开发时间,然后汇总得出总的工作量和开发时间;差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。
专家估算法
  专家估算法是依靠一个或多个专家对项目做出估计,它要求专家具有专门知识和丰富的经验,是一种近似的猜测。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是文档数量(以页计)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件开发成本估算 软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价。它不包括原材料和能源的消耗,主要是人的劳动的消耗。 人的劳动消耗所需代价就是软件产品的开发成本。 软件产品开发成本方法不同于其它物理产品成本算。 软件的开发成本是以一次性开发过程所花费的代价来算的。 软件开发成本估算,应是从软件划、需求分析、设、编码、单元测试、组装测试到确认测试,整个软件开发全过程所花费的代价作为依据的。 对于一个大型的软件项目,由于项目的复杂性,开发成本估算不是一件简单的事,要进行一系列的估算处理。主要靠分解和类推。 基本估算方法分为三类。 自顶向下的估算方法 自底向上的估法 差别估法 这种方法的主要思想是从项目的整体出发,进行类推。 估算人员根据以前已完成项目所消耗的总成本(或总工作量),推算将要开发的软件的总成本(或总工作量),然后按比例将它分配到各开发任务单元中去,再来检验它是否能满足要求。 ...... 差别估法 这种方法综合了上述两种方法的优点,其主要思想是把待开发的软件项目与过去已完成的软件项目进行类比,从其开发的各个子任务中区分出类似的部分和不同的部分。 类似的部分按实际量进行算,不同的部分则采用相应方法进行估算。 这种的方法的优点是可以提高估算的准确程度,缺点是不容易明确“类似”的界限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值