谈到软件项目开发预算估计,就不能不谈cocomo.
    cocomo是COnstructive COst MOdel(建设性成本估算模型)的缩写.最早是由Dr. Barry Boehm在1981年提出.是一种精确的、易于使用的成本估算方法.
COCOMO模型中用到以下变量:
DSI-------源指令条数。不包括注释。1KDSI = 1000DSI。
MM-------开发工作量(以人月计) 1MM = 19 人日 = 152 人时 =1/12 人年
TDEV-----开发进度。(以月计) 
COCOMO模型基于对开发环境,软件开发项目的考虑,类型可以分为3种:
1.组织型(organic): 相对较小、较简单的软件项目。开发人员对开发目标理解比较充分,与软件系统相关的工作经验丰富,对软件的使用环境很熟悉,受硬件的约束较小,程序的规模不是很大(<50000行)
2.嵌入型(embedded): 要求在紧密联系的硬件、软件和操作的限制条件下运行,通常与某种复杂的硬件设备紧密结合在一起.对接口,数据结构,算法的要求高.软件规模任意.如大而复杂的事务处理系统,大型/超大型操作系统,航天用控制系统,大型指挥系统等.
3.半独立型(semidetached):介于上述两种软件之间。规模和复杂度都属于中等或更高.最大可达30万行.
基本COCOMO模型估算工作量和进度的公式如下
工作量: MM = r*(KDSI)^c
进度: TDKV = a(MM)^b
而MM/TDKV则是完成进度所需要的人数.
其中经验常数 r, c, a, b 取决于项目的总体类型.而又根据不同的公司以及不同项目有过调整.
   cocomoII模型的原型是在1996年提出,并持续改进.由于其采用了模型化的管理方法,在国外有很高的影响力,另外由于国内现有的软件开发项目数据还不是很完善,cocomoII在国内的使用还是受到限制.所以很多资料以及参数只能从国外的网站上去参考.而参数的准确性,则由于文化,开发背景,技术熟练度,编程环境和成本等的差异,不能直接使用在现有开发项目中,只能作为大致的参考.
   新的cocomoII模型相较于原有模型有如下改进.
   (摘自http://sunset.usc.edu/research/COCOMOII)
                                        
   
    从图中可以很直观地看出,cocomoII相较于1981年提出的版本有如下改进:
    1.cocomoII模型使用了以下三个阶段的螺旋声明周期: applications,development, early design and post-architecture.
    2.三阶段被分割成为五个比例因子:PREC,FLEX,RESL,TEAM,PMAT.
    3.对原有比例因子的删除:VIRT, TURN, VEXP,LEXP,MODP.
    4.新比例因子的使用:DOCU, RUSE, PVOL, PEXP,LTEX,PCON,SITE.
    5.对现有比例因子数值的调整.
(详细信息可以参考http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98-516/usccse98-516.pdf中的介绍)
    在各个比例因子中经验数据是产品复杂性对生产率的影响最大,其次是分析员和程序员能力,再次是时间约束和人员连续性.由于国内并没有很多工程数据的积累,cocomoII在国内的使用还需要较大的努力.但是它为我们提供了一个模型化的思想,这一点是最吸引人的.对各个比例因子的具体测算,也需要大量的数据积累.
    有兴趣的朋友可以参考http://sunset.usc.edu/research/COCOMOII/中的介绍,网站中有很多相关电子书可以下载.
    总结:cocomoII模型是一个相对来说比较成熟的模型,但是在中国的推广则需要相当多的数据积累.它为我们提供的是一种方法,但是由于具有一般性,在特定的情况下,需要相应的调整.
    (^^看完回帖哦~给我些动力吧~)












posted on 2007-12-06 20:32  lzlynn  阅读(10260)  评论(1编辑  收藏  举报