快速学习COSMIC方法之四:早期快速估算功能规模的方法

    在介绍详细的COSMIC方法之前,我们先介绍一下在项目早期,在需求没有详细到可测试的程度时,如何估算软件的规模。实际上很多公司为了减少度量的工作量,往往采用近似的估算方法进行确定项目的预算。

    进行快速估算的原理为:通过分析历史的粗颗粒度需求与实际规模之间的相关关系,找到二者之间的换算关系,然后对于新的粗颗粒度需求参考历史的换算关系快速地得到近似规模。这里的粗颗粒度需求的规模可以是功能处理个数、用例个数、文档页数、开发人员数量等等,只要历史数据可以证明,其与功能点规模有强相关关系即可。

    在COSMIC的早期与快速指南中,介绍了四种近似估算的方法,分别简介如下:

 1)功能处理平均规模法


    如上图,公司根据历史数据可以尝试找出功能处理个数与功能点规模之间的关联关系。比如,公司基于历史的项目,使用COSMIC标准方法数出功能点和功能处理的个数,然后相除,得到一个功能处理平均对应a个功能点。那么,后续再对其他项目进行规模估算时,直接数功能处理的个数即可,然后再乘以a,就是近似规模。不同的公司,这个a的取值是不同的。

2)固定规模分类近似法


    本方法举例如上图,同样地,需要公司使用标准方法数出项目中每一个功能处理对应的功能点数,然后再凭经验对这些功能处理划分规模等级,如大、中、小,然后统计各等级的功能处理的平均功能点个数。这里要注意,每个规模等级分类对应的功能点个数的差别要大,至少如例子中所示的5CFP。当后续再对其他项目的功能处理进行分类时,可以确保度量人员仔细考虑他们之间的差别,并且认真选择了规模等级类别。同时,可以制定一些准则帮助度量人员分类,如通过兴趣对象的个数来判断等。

3)相等规模带法


    这种方法稍微复杂一点,当然准确性也有所提高。前提还是把功能处理和功能点个数数出来,假设一共是1000个功能处理,按照每个功能处理中功能点的个数从小到大排序,假设第一个功能处理的规模是2 CFP,第1000个功能处理的规模是50CFP,这1000个功能处理的功能点数和是8800 CFP。把这些功能处理分成四段,每段累计的功能点数相等,那么每一段的和应该是2200 CFP。

    以第一段举例,用2200除以400个功能处理,可以得到这一段的平均规模,命名为小规模,每一段都按照这种处理方法,分别得出超大、大、中、小规模,四个分类(结果如本方法中第一个图所示)。后续,再如同前一种方法,由度量人员对每一个功能处理判断其规模即可。同样地,这里也需要制定客观准则,以帮助度量人员判断大小。这种方法比较适用于功能处理规模分布不均匀的软件(比如大部分功能处理都比较小,只存在少数比较大的功能处理),并且方法中通常推荐分为四段。

4)平均用例法



    这种方法与功能处理平均规模法类似,在度量功能处理、功能点的同时,需要同时度量用例个数,再去寻找它们之间的关联关系。本例中,功能处理与功能点是8倍的关系,而每个用例相当于3.5个功能处理,那么再对后续项目进行规模估算时,便可以直接根据用例个数得出结论。虽然这种方法看起来很简单,但它的准确度可能最低。同时,这也要求公司应采用标准定义的模板来编写用例,确保一致。

    

    需要注意的是,虽然近似估算可以帮助公司进行快速估算,但是这都要以历史数据为基础。首先,公司必须使用标准COSMIC方法对部分典型项目进行度量,然后根据上面介绍的近似估算方法找出关联关系,后续当对未来项目进行度量时,便可根据这些关联关系快速估算。当然,这些关联关系也不是一成不变的,需要不断使用实际数据进行校准,再时常更新,确保近似估算的结果尽可能接近实际值。

    很多公司在进行快速估算时,都希望可以有一些行业的标杆数据参考,这样就不需要公司去进行数据积累,省去了不少工作量,而且可以直接上手。但是,每个公司都有自己的业务特点,也存在各式各样的开发流程,而行业数据是相当于把每一家业内公司的数据进行概括、概括、再概括,从而提炼出全行业通用的数据,它对于每一个公司而言的准确性有多少呢?我们反过来考虑,所有业内公司都使用同样的行业数据,那大家的估算结果都一样吗?答案也是否定的。所以,要摆脱掉不劳而获的这种想法,没有自己的数据积累,使用拿来主义的数据,你在享受方便的同时,它所带来的误差也是要必须接受的。

    所以快速估算方法是提供一种“先慢后快”的思想,公司花费一定的时间进行数据积累后,便可以通过以上的方法为后续的项目提供快速估算。

你可能感兴趣的:(COSMIC规模度量方法)