2009年3月4日星期三

软件成本估算模型COCOMO

这两天研究了一下软件成本估算模型COCOMO,顺便在中文维基里添加了COCOMO条目:

http://zh.wikipedia.org/wiki/COCOMO






完全是从英文的wikipedia里翻译来的。当然,要了解COCOMO恐怕要读完那本《软件成本估算:COCOMO Ⅱ模型方法》才行。不过我并不是真的对这种枯燥而又形式化的东西有兴趣,只是想了解一下COCOMO模型中对影响软件开发的各种因素的评估,因此,我想简单了解了下也就够了。

COCOMO模型(Constructive Cost Model)的中级公式引入了一系列影响开发成本的因子,包括:


  • 产品属性
    • 软件可靠性需求
    • 应用数据库的大小
    • 产品复杂度
  • 硬件属性
    • 运行时的性能约束
    • 内存约束
    • 虚拟机稳定性
    • 回复时间的需求
  • 人员属性
    • 分析能力
    • 软件工程能力
    • 应用经验
    • 虚拟机的经验
    • 编程语言经验
  • 项目属性
    • 采用的软件工具
    • 采用的软件工程手段
    • 对开发时间的要求



把所有的因子相乘就会得到总的“工作量调整因子(EAF)”。我对这些因子的最大值和最小值的比率做了统计。似乎结果说明就总体分类而言,人员因素对软件开发的影响远高于其它因素。

就具体影响因素而言,“产品复杂度”似乎是最大的单一对软件开发影响的因素,其次是人员的分析能力和软件工程能力。

因此似乎可以得到这样的结论:对软件开发影响最大的是人的因素,其中人的分析能力与软件工程能力尤其重要。产品复杂度也是影响软件成本(工作量)的重要因素。 同时,值得注意的是“对开发时间的要求”,即软件项目的工期压力对软件工作量的影响微乎其微。这也说明了,管项目的人催得再紧,对其结果也不会有什么大的改变。
Craig Larman在引用COCOMO模型时也指出,人的因素远大于其它因素,包括排名第二的产品复杂度。并且他指出,这些因子是在同一种软件开发模式下得到的(例如瀑布模式),软件开发模式(例如采用迭代开发)对软件开发成本的影响比这些因素都要大。








没有评论:

发表评论