CoCoMo模型
计算机软件的估算模型是根据以前完成项目的实际数据导出的,用于软件项目的计划阶段。
模型是根据“从前的”,“局部的”数据得出的,估算模型不可能完全适用于当前所有的软件项目和全部开发环境。这些模型的计算结果仅供参考。
1981年Boehm提出“构造性成本模型”(Constructive Cost Model),简称CoCoMo模型。它是在静态、单变量模型的基础上构造出来的.
CoCoMo模型分为基本、中间、详细三个层次,分别用于软件开发的三个不同阶段。
基本CoCoMo模型 用于系统开发的初期,估算整个系统的工作量(包括软件维护)和软件开发所需要的时间。
中间CoCoMo模型 用于估算各个子系统的工作量和开发时间。
详细CoCoMo模型 用于估算独立的软部件,如子系统内部的各个模块。
基本CoCoMo模型
E = aLb
D = cEd
其中:E表示工作量,单位是人月(PM)。
D表示开发时间,单位是月(M)。
L是项目的代码行估计值,单位是千行代码
a ,b ,c ,d是常数,取值如下表所示。
Boehm把软件划分为组织型、半独立型和嵌入型三类,允许不同应用领域和复杂程度的软件按照三类软件的适用范围选取相应的参数a,b,c,d。
软件类型 a b c d 适用范围
组织型 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模型为基础,在工作量估计公式中乘以工作量调节因子(EAF)
E = aLb *EAF
其中:L是软件产品的目标代码行数,a,b是常数,取值如下表所示。
中间CoCoMo模型参数
软件类型 a b
组织型 3.2 1.05
半独立型 3.0 1.12
嵌入型 2.8 1.20
工作量调节因子(EAF)与软件产品属性、计算机属性、人员属性、项目属性有关
软件产品属性
1.软件可靠性、2.软件复杂性、3.数据库的规模。
计算机属性
4.程序执行时间、5.程序占用内存的大小、6.软件开发环境的变化、7.软件开发环境的响应速度。
人员属性
8.分析员的能力、9.程序员的能力、10.有关应用领域的经验、11.开发环境的经验、12.程序设计语言的经验
项目属性
13.软件开发方法的能力,14.软件工具的质量和数量、15.软件开发的进度要求。
四种属性共15个要素。
每个要素调节因子 Fi, i=1,2,…...,15,的值分为:
很低、低、正常、高、很高、极高,共六级。
正常情况下 Fi=1。
Boehm推荐的Fi值范围
(0.70, 0.85, 1.00, 1.15, 1.30, 1.65)
当15个Fi的值选定后,EAF的计算如下
EAF=F1*F2*……*F15
调节因子集的定义和调节因子定值是由统计结果和经验决定的。不同的软件开发组织,在不同的历史时期,随着环境的变化,这些数据可能改变。
使用中间CoCoMo模型可以估算开发软件产品的工作量,比较各种开发方案的工作量。