柯南君最近手头遇到点工作,集团官网需要改版,那么改版必然会考虑成本,何况这次是包给外包公司全权处理,那么在成本估算上,必然会煞费苦心。不由的,想想如何去估算,才能更加准确,那么在这里,柯南君和大家一起分享一下
目前都在如何去估算?估算都有哪些方法论,当然,选择哪种方法论,要看你公司的实际情况了啊!
一、什么是软件开发成本估算?
软件开发成本估算主要指软件开发过程中所花费的工作量及相应的代价。 不同于传统的工业产品,软件的成本不包括原材料和能源的消耗,主要是人的劳动的消耗。另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。因此,软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、集成测试到认证测试,整个开发过程所花费的代价作为依据的。
1、软件开发成本估算模型
1)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
2)COCOMO模型(constructive cost model 建设性成本模型)
这是由TRW公司开发,Boehm提出的结构化成本估算模型。是一种精确的、易于使用的成本估算方法。
COCOMO模型中用到以下变量:
DSI-------源指令条数。不包括注释。1KDSI = 1000DSI。
MM-------开发工作量(以人月计) 1MM = 19 人日 = 152 人时 =1/12 人年