本文的目标读者是从事软件行业想快速了解软件开发过程工作量评估的人员。软件工作量评估方法很多,如代码行法、类比法、WBS、故事点、用例点、NESMA、FPA、cosmic、COCOMOⅡ等。本文只是选取主流评估方法进行简述,每一种方法在实际操作过程中有若干条计数规则,在此并未阐述,并不能作为评估工作的实施指南。实际使用方法时,需以各方法发布机构发布的官方文档为准。
软件规模估算是软件估算的基础。软件研发工作量与软件规模密切相关,因而,估算软件规模是进行有效项目范围和成本管理的基础。
通常情况下,软件规模估算是软件成本估算过程的起点。估算软件规模是后续计算软件项目的工作量、成本和进度的主要输入,是项目范围管理的关键,因此,在条件允许的情况下,应进行软件规模估算。
当前纳入国际标准的软件规模估算方法共有5种:COSMIC-FFP方法、IFPUG方法、MkⅡ方法、NESMA方法及FiSMA方法,均为功能点方法。通常估算人员可依据其中任一方法识别功能点计数项,并根据其对应的权值计算出功能规模。无论是世界范围内还是在中国,目前拥有历史项目数据最多的是IFPUG和NESMA方法。
在软件规模估算过程中,需要注意以下情况:
a)在软件规模估算开始前,应根据可行性研究报告或类似文档明确项目需求及系统边界。项目需求除包含最基本的业务需求外,还应进行初步的子系统/模块划分,并对每一子系统或模块的基本用户需求进行说明,以保证可以根据项目需求进行软件规模预估。
b)依据项目特点和需求详细程度不同,通常估算人员在选择估算方法时应采用纳入国际标准的功能点方法进行功能规模估算,如COSMIC-FFP方法、IFPUG方法、MkⅡ方法、NESMA方法及FiSMA方法。
c)若当前的项目需求极其模糊或不确定,可不进行软件规模估算,而直接采用类比法或类推法估算工作量、工期和成本。
方法解释
类推法:软件项目需求极其模糊或不确定时,如果有高度相似的历史项目,可采用此方法,利用历史项目数据来粗略估算工作量。
类比法:软件项目需求极其模糊或不确定时,如果有与本项目部分属性类似的一组基准数据,可采用类比法,利用基准数据来粗略估算工作量。
方程法:已经开展了规模估算的项目,可以采用方程法,通过各项参数来确定待估算项目的工作量。
项目工作量估算都应该采用两种估算方法来对估算结果进行交叉验证,以追求估算的准确性。工作量的估算结果是一个范围,不是单一的值。
软件生产率和工作量简介