http://zh.wikipedia.org/wiki/COCOMO
完全是从英文的wikipedia里翻译来的。当然,要了解COCOMO恐怕要读完那本《软件成本估算:COCOMO Ⅱ模型方法》才行。不过我并不是真的对这种枯燥而又形式化的东西有兴趣,只是想了解一下COCOMO模型中对影响软件开发的各种因素的评估,因此,我想简单了解了下也就够了。
COCOMO模型(Constructive Cost Model)的中级公式引入了一系列影响开发成本的因子,包括:
- 产品属性
- 软件可靠性需求
- 应用数据库的大小
- 产品复杂度
- 硬件属性
- 运行时的性能约束
- 内存约束
- 虚拟机稳定性
- 回复时间的需求
- 人员属性
- 分析能力
- 软件工程能力
- 应用经验
- 虚拟机的经验
- 编程语言经验
- 项目属性
- 采用的软件工具
- 采用的软件工程手段
- 对开发时间的要求
把所有的因子相乘就会得到总的“工作量调整因子(EAF)”。我对这些因子的最大值和最小值的比率做了统计。似乎结果说明就总体分类而言,人员因素对软件开发的影响远高于其它因素。
就具体影响因素而言,“产品复杂度”似乎是最大的单一对软件开发影响的因素,其次是人员的分析能力和软件工程能力。
因此似乎可以得到这样的结论:对软件开发影响最大的是人的因素,其中人的分析能力与软件工程能力尤其重要。产品复杂度也是影响软件成本(工作量)的重要因素。 同时,值得注意的是“对开发时间的要求”,即软件项目的工期压力对软件工作量的影响微乎其微。这也说明了,管项目的人催得再紧,对其结果也不会有什么大的改变。
Craig Larman在引用COCOMO模型时也指出,人的因素远大于其它因素,包括排名第二的产品复杂度。并且他指出,这些因子是在同一种软件开发模式下得到的(例如瀑布模式),软件开发模式(例如采用迭代开发)对软件开发成本的影响比这些因素都要大。
没有评论:
发表评论