软件开发成本估算主要是指软件开发过程中的工作量和相应成本。与传统工业产品不同,软件的成本不包括原材料和能源的消耗,主要是人类的劳动力消耗。此外,软件没有明显的制造过程,其开发成本是根据一次性开发过程的成本计算的。因此,软件开发成本的估算应以软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试为基础。软件开发成本估算的经验模型Putnam模型1978年Putnam一种动态多变量模型。
L=Ck*K1/3*td4其中:
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考虑到开发环境,软件开发项目的类型可分为三类:组织型(organic):相对较小和简单的软件项目。开发人员对开发目标有充分的了解,具有丰富的软件系统相关工作经验,熟悉软件的使用环境,受硬件限制较小,程序规模不是很大(5万行)嵌入式(embedded):要求在密切相关的硬件、软件和操作的限制下运行,通常与一些复杂的硬件设备紧密结合。对接口、数据结构和算法的要求很高。任意软件规模。如大而复杂的事务处理系统、大/超大操作系统、航天控制系统、大指挥系统等。半独立(semidetached):介于上述两种软件之间。规模和复杂度都属于中等或更高。最大可达30万行。
估算公式:基本COCOMO模型估算工作量和进度的公式如下:MM=r*(KDSI)c进度:TDKV=a(MM)b经验常数r,c,a,b取决于项目的总体类型。
COCOMO模型按其细节可分为三级:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型COCOMO该模型是一种静态单变量模型,它使用已估计的原始代码行数(LOC)计算软件开发工作量的自变量经验函数。COCOMO模型在基本COCOMO在模型的基础上,利用产品、硬件、人员、项目等影响因素调整工作量估算。
详细说明COCOMO模型包括中间COCOMO模型的所有特性,但进一步考虑了软件工程中每一步(如分析和设计)的影响。COCOMO模型通过统计63个历史项目的历史数据获得以下计算公式。整体类型工作量进度组织MM=10.4*(KDSI