软件开发成本估算.doc
软件开发成本估算 软件开发成本估算 软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。 不同与传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗。另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。因此,软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。 软件开发成本估算的经验模型 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)这是由 TRW 公司开发, Boehm 提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。 COCOMO 模型中用到以下变量: DSI-------源指令条数。不包括注释。 1KDSI = 1000DSI。 MM-------开发工作量(以 人月计) 1MM = 19 人日 = 152 人时 =1/12 人年 TDEV-----开发进度。 (以月计 ) COCOMO 模型中,考虑开发环境,软件开发项目的类型可以分为 3 种: 组织型 (organic): 相对较小、较简单的软件项目。开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大( <50000 行) 嵌入型 (embedded): 要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起。对