COCOMO

什么是COCOMO

COCOMO英文全称为Constructive Cost Model,中文为构造性成本模型,是指由巴里·勃姆(Barry Boehm)于 1981 年提出的一种精确、易于使用的,基于模型的软件成本估算方式。从本质上说是一种参数化的项目估算方式,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本的回归解析公式。

COCOMO最初发表于1981年巴里·勃姆《软件工程经济学》一书中,做为一种在软件项中估算工作量、成本以及时间表的模型。它基于对TRW飞机制造企业的63个项目的研究。巴里·勃姆于1981年在该企业担任软件研究与技术总监。这项研究中的项目所包含的代码量从2000行到10000行,包含的编程语言从汇编语言到PL/I。这些项目采用瀑布模型实行软件开发,这是在1981年时主流的软件开发模式。

通常把上述模型称作为“COCOMO 81”。1997年,“COCOMO II”开始研发,并最终于2001年发表于《软件成本估算:COCOMO Ⅱ模型方式》一书中。COCOMO II是COCOMO 81的继承者,并且更适用于对现代软件开发项目实行估算。它为现代软件开发流程提给了更多支持,并提给了一个更新了的数据库。对于新模型的需求来源于软件开发技术从基于大型计算机和整晚的批处理到桌面开发、代码重用以及利用即有软件模块的改变。

COCOMO由三个不断深入和详细的层次组成。第一层,“基本COCOMO”,适用对软件开发实行快速、早期地对重要的方面实行粗略的成本估计,但因其缺少区别的项目属性(“成本驱动者”)的因素,所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对区别软件开发阶段影响的考量。

COCOMO的分类

COCOMO按照项目类型划分

COCOMO模型中,考虑到开发环境的区别,软件开发项目的类型可以分为3种:

组织型(organic):相对较小、较简单的软件项目。开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(<50000行)。

嵌入型(embedded):要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起。对接口、数据结构、算法的要求很高,软件规模任意。如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等。

半独立型(semidetached):介于上述两种软件之间。规模和复杂度都属于中等或更高。最大可达30万行。

COCOMO按照详细程度划分

COCOMO模型按其详细程度可以分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。

基本COCOMO模型是一个静态单变量模型,它用一个已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。

中级COCOMO模型在基本COCOMO模型的基础上,再用设计产品、硬件、人员、项目等方面的影响因素调整工作量的估算。

详细COCOMO模型包含中间COCOMO模型的所有特性,但更进一步考虑了软件工程中每一步骤(如解析、设计)的影响。

COCOMO的公式

基本COCOMO模型的公式

E=aL

D=cE

其中:E表示工作量,单位是人月(PM)。

D表示开发时间,单位是月(M)。

L是项目的代码行估计值,单位是千行代码。

a,b,c,d是常数,取值如下表所示

对于基本COCOMO模型,通过统计63个历史项目的历史数据,得到如下计算公式

总体类型工作量进度
组织型E=10.4×(KLOC)D=10.5(E)
半独立型E=3.0×(KLOC)D=10.5(E)
嵌入型E=3.0×(KLOC)D=10.5(E)

例如:某企业开发一个CAD软件,源代码行数为目标代码行数为33.3KLOC。CAD软件开发属于中等规模、半独立型。

从表中查到

a=3.0,b=1.12。

E=3.0×L

=3.0×33.3

=152人月

假设每人每月费用为10000元,则总费用为152万元。

中级COCOMO模型的公式

中级COCOMO对软件工作量的估算使用了程度大小以及一组“成本驱动者”,包含对产品、硬件、人员及项目属性的客观评价。这种扩展包含了四类“成本驱动者”,每个类又有15个属性,每一个属性都会得到一个6点的评估,从“非常低”到“非常高”(重要性或大小)。下表中列出了可用的因子值。所有这些因子的乘积的结果就是“工作量调整因子(EAF)”通常这些因子的值是从0.9到1.4。

成本驱动者评估
非常低正常很高非常高
产品属性
软件可靠性需求0.750.881.001.151.40
应用数据库的大小 0.941.001.081.16
产品复杂度0.700.851.001.151.301.65
硬件属性
运行时的性能约束 1.001.111.301.66
内存约束 1.001.061.211.56
虚拟机稳定性 0.871.001.151.30
回复时间的需求 0.871.001.071.15
人员属性
解析能力1.461.191.000.860.71
应用经验1.421.171.000.860.70
虚拟机的经验1.12 1.101.000.90
编程语言经验1.14 1.071.000.95
项目属性
采用的软件工具1.24 1.101.000.910.82
采用的软件工程手段 1.241.10 1.000.910.83
虚拟机稳定性1.23 1.081.001.041.10
回复时间的需求 0.871.001.071.15

中级COCOMO的计算公式如下:

E=aL

对于中级COCOMO模型,通过统计63个历史项目的历史数据,得到如下计算公式

总体类型工作量
组织型E=3.2×(KLOC)
半独立型E=3.0×(KLOC)
嵌入型E=2.8×(KLOC)
郑重声明:东方财富网发布此信息的目的在于传播更多信息,与本站立场无关。东方财富网不保证该信息(包含但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。

扫一扫下载APP

扫一扫下载APP
信息网络传播视听节目许可证:0908328号 经营证券期货业务许可证编号:913101046312860336 违法和不良信息举报:021-61278686 举报邮箱:jubao@eastmoney.com
沪ICP证:沪B2-20070217 网站备案号:沪ICP备05006054号-11 沪公网安备 31010402000120号 版权所有:东方财富网 意见与建议:4000300059/952500