作者:张克强
软件项目工作量估算从估算依据上看可以分成如下两类:
1,基于规模估算
2,基于工作量估算
基于规模估算的情况下,需要估算软件项目的规模。本文首先来看规模方面的问题。
问题1:如何表达规模?
软件产品或项目的功能规模是涉及软件开发和交易的成本、项目资源投入的预测、项目维护成本的预算、项目质量管理的要求以及产品上市的时间等方面的关键指标。因此,进行软件产品的功能规模测量显得尤其重要。
如何测量软件规模这个问题自软件工程诞生起就一直是这个领域的焦点问题。刚开始,人们很自然的使用代码行数作为规模的表达。但是作为规模表达方式的代码行数随着时间和技术的发展,越来越不正确了,主要原因是1,新工具自动生成大量代码行;2复用构件或源代码;3,难以区分新开发代码和旧代码。而且最重要的是源代码行数的实际测量只能在软件项目开发的后期,缺乏在前期较精确指导项目的能力。
世界上各个组织都看到了代码行作为规模表达方式的弊端,纷纷发展了各自的规模表达方式,其中IFPUG的功能点计数是其中有显著影响的。但是由于规模度量存在各种各样的情况,IFPUG的方法并没有统治地位,涌现了多种规模度量方法。目前,国内外软件领域的专家对软件功能规模测量开展了极富成效的研究,提出了各类工业标准。国际标准化组织(ISO)和国际电工委员会(IEC)联合技术委员会分别于1998、2002和2003年推出了软件功能规模测量方面的系列标准。国际标准化组织ISO/IEC相继发表了4个功能规模测量方法的标准,它们是:
——ISO/IEC 19761(COSMIC-FFP方法);
——ISO/IEC 20926(IFPUG方法);
——ISO/IEC 20968(MkⅡ方法);
——ISO/IEC 24750(NESMA方法)。
其中,COSMIC-FFP方法声明可以应用于管理信息系统(MIS)和实时类型二类软件,IFPUG方法声明可用于所有类型的软件,MkⅡ方法声明可用于逻辑事务能被确定的任何软件类型,NESMA方