构造性成本模型

✍ dations ◷ 2025-11-09 10:19:49 #构造性成本模型

构造性成本模型(COCOMO,英文全称为Constructive Cost Model)是由巴里·勃姆(Barry Boehm)提出的一种软件成本估算方法。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。

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

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

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

基本COCOMO是一种静态的单值模型,它使用以每千源代码行数(KLoC)来度量的程序大小来计算软件开发的工作量(及成本)。COCOMO可以应用于三种不同的软件项目:

基本COCOMO的等式如下:

其中E是用“人月”来计算的工作量,D是指累积的开发时间(月),KLOC是指对最终发布的代码行数的估计(千行代码),P指需要的人数。其中的一些系数 ,, 和如下表所示:

   Software project                           有机型              2.4     1.05    2.5     0.38   中度分离型          3.0     1.12    2.5     0.35   嵌入式              3.6     1.20    2.5     0.32

基本COCOMO适用于快速、早期地粗略估算软件成本,但它没有考虑如不同的硬件条件、人员素质及经验、对现代工具与技术的使用,等其它会对软件成本有深远影响的项目属性,所以它的准确程度有限。

中级COCOMO对软件工作量的估算使用了程度大小以及一组“成本驱动者”,包括对产品、硬件、人员及项目属性的客观评价。这种扩展包含了四类“成本驱动者”,每个类又有一些小的属性:

这15个属性的每一个都会得到一个6点的评估,从“非常低”到“非常高”(重要性或大小)。下表中列出了可用的因子值。所有这些因子的乘积的结果就是“工作量调整因子(EAF)”通常这些因子的值是从0.9到1.4。

中级COCOMO的计算公式如下:

其中E是以“人月”来计算的工作量,“KLoC”是产品发布的代码行数(千行代码),“EAF”是用上述方法计算得出的因子。系数ai和幂bi在下表中给出:

对于使用“E”来计算开发时间“D”的方法与基本COCOMO相同。

相关

  • 安德烈·波伽利安德烈·波切利(Andrea Bocelli,1958年9月22日-)是一位意大利盲人歌手。他是一位古典跨界音乐男高音,和英国女高音莎拉·布莱曼(Sarah Brightman),新西兰女高音海莉·薇思特拉等同属
  • 年循环在地球科学中,年循环是指地球轨道每年的变化量,对地球的气候有可观的影响,通常可以用精密的仪器测量出来。
  • 罗伯特·培根罗伯特·培根(Robert Bacon,1860年7月5日-1919年5月29日),美国政治关、外交关,曾任美国国务卿。
  • 猪类期货猪类期货是以猪为标的物的期货产品,包括生猪期货、瘦肉猪期货等。迄今为止,世界期货市场上开展过期货交易的交易所主要有美国芝加哥商品交易所、美国中美洲商品交易所(Mid Ame
  • 卡维茨湖坐标:53°18′16″N 13°27′53″E / 53.30444°N 13.46472°E / 53.30444; 13.46472卡维茨湖(德语:Carwitzer See),是德国的湖泊,位于该国东北部,由梅克伦堡-前波美拉尼亚州负责管
  • 普莱森峰坐标:47°24′33″N 11°20′31″E / 47.40917°N 11.34194°E / 47.40917; 11.34194普莱森峰(德语:Pleisenspitze),是奥地利的山峰,位于该国西部,由蒂罗尔州负责管辖,属于卡尔文德
  • 邬马渡邬马渡,也称邬桥轮渡、邬桥客渡。为上海市黄浦江上的一条对江轮渡航线。航线北起闵行区马桥镇金星村马桥轮渡站,南至奉贤区庄行镇新叶村邬桥轮渡站。衔接奉贤西部与闵行地区,是
  • 莱拉·阿利耶娃莱拉·阿利耶娃(英语:Leyla Aliyeva,阿塞拜疆语:Leyla İlham qızı Əliyeva,1984年7月3日-)是阿塞拜疆总统伊利哈姆·阿利耶夫的女儿和盖达尔·阿利耶夫基金会副主席。她也是时
  • 陈卫东 (政治人物)陈卫东(1961年8月-),贵州六盘水人,汉族,中华人民共和国政治人物,贵州省烟草专卖局局长、中国烟草总公司贵州省公司总经理。毕业于贵州工学院水文地质及工程地质专业。2008年起担任全国人大代表。2013年,担任全国人大代表。2018年2月24日,当选为第十三届全国人大代表。
  • 部分作格性部分作格性(Split ergativity)指的是一个语言在某些状况下呈现作通格语言的特性,但在某些状况下却呈现主宾格语言等其他种变位法的特性。事实上,多数的作通格语言并非纯粹的作通格语言,而是部分地具有作格性的。以下条件为作格性通常的分立条件:一个以时态为时体为作格性分立条件的语言为印度斯坦语,此语言的及物动词主词在完成体为作格;而在其他时体中主词为直接格,以下为几个印度斯坦语的例句:在第一句中,处于现在时的动词带有阳性标记-ā,与laṛkā(意即“男孩”)保持一致;但在第二句中,处于过去时的动词带有