项目管理软件成本估算在软件项目管理中起着非常重要的作用。本文介绍了几种常用的成本估算数学模型和直觉思维方法,分析了成本估算模型和直观判断中存在的问题,并提出了将数学模型与直观判断相结合,构建合理估算的合成技术估算方案。
一、软件成本估算贯穿于整个软件生命周期
项目初期的粗略成本估算是必要的,通常用于确定项目的可行性分析。在项目计划阶段,还需要对项目进行详细的成本估算,并在项目工作分解表中设置每项任务的可能成本,作为项目实施阶段成本控制的基准。此外,在项目实施阶段,当项目实际成本与计划成本不同时,需要重新估计项目后期的成本。因此,项目成本估算在项目管理和控制中起着非常重要的作用。在软件项目中,由于人员、开发周期、项目范围和技术难度等方面的不确定性较大,因此准确估计其成本尤为困难。因此,合理估计软件项目的成本尤为重要。
二、项目管理软件-软件项目成本估算模型
大多数现有的软件成本估算模型适用于预算、权衡分析、计划、控制和投资分析。成本估算模型技术主要使用经验公式来估算软件项目的成本。在大多数估算模型中,软件规模是决定成本的主要因素。有两种常规的方法来衡量软件的规模:基于代码银行的估算方法和基于功能点的估算方法。代码银行或功能点作为许多成本估算模型的主要输入参数。
1.代码行成本估算模型
代码行(lines of code,LOC)是衡量源代码长度最常用的方法。NCLOC(non-comments source lines ofcode缩写)用于表达无注释的源代码行数。NCLOC它通常被用作有效的代码行数(effective lines of code,ELOC)。在许多情况下,为了更清楚地阅读和理解程序,提高系统的可维护性,通常需要在程序开发中附加详细的注释。在这种情况下,包括注释的源代码行数也是一个有效的测量标准。CLOC(commented source line of code缩写)用于表达包含注释的源代码行数。综上所述,我们给出的代码行的定义如公式1所示:总长度(LOC)=NCLOC CLOC(1)
2.面向功能点的成本估算模型
面向功能点(Function points,FP)成本估算模型用系统的功能数量测量软件的规模。该方法首先评估产品所需的功能,然后根据技术复杂性因素(权利)量化和修改成本,估计最终的软件成本。
其基本步骤如下:
(1)计算未调整的功能点(UFC)这里提到的功能点数不是最终软件中的实际功能数,软件开发前不可能准确估计最终软件实际功能模块的数量。在此,我们首先将软件的所有功能分为五类:外部输入、外部输出、外部查询、外部文件和内部文件,并估计每个功能的数量(FPi),然后根据待开发软件的特点评估各种功能的复杂性和权重(Wi),未调整的功能点数可以根据公式2进行调整(UFC)。UFC=SUM(FPi*Wi)
(2)交互式输入外部文件在其他系统可读文件内部文件系统中的逻辑主文件权重因素,由用户提供的外部输入,描述应用数据外部输出系统向用户提供的数据外部查询要求。(Wi)项简单一般复杂外部输入3 4 6外部输出4 5 7外部查询3 4 6外部文件7 10 15内部文件5 7 10(2)计算调整后的功能点数考虑到用户对系统性能的不同要求,我们还需从表3中反映的14个方面对UFC进一步调整,计算待开发系统的技术复杂因素(tec