软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。 不同与传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗。另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。因此,软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。
软件开发成本估算的经验模型
Putnam 模型
1978年Putnam提出的,一种动态多变量模型。
L = Ck * K1/3 * td4/3
其中: L-----------源代码行数(以LOC计)
K-----------整个开发过程所花费的工作量(以人年计)
td-----------开发持续时间(以年计)
Ck----------技术状态常数,它反映“妨碍开发进展的限制”,取值因开发环境而异,见下表
Ck的典型值 开发环境 开发环境举例
2000 差 没有系统的开发方法,缺乏文档和复审
8000 好 有合适的系统的开发方法,有充分的文档和复审
11000 优 有自动的开发工具和技术
从上述方程加以变换,可以得到估算工作量的公式: K = L3/(Ck3*td4)
还可以估算开发时间: td = [L3/(Ck3*K)]1/4
COCOMO模型(constructive cost model)