hnical complexity factor,TCF)。表3技术复杂度因子第12期舒小仙:软件项目管理的成本估算81F1可靠的备份和恢复F2数据通信F3分布式处理F4性能F5大量使用的配置F6联机数据输入F7操作简便性F8在线升级F9界面的复杂性F10数据处理的复杂性F11代码的复用性F12安装的简易性F12多重站点F14易修改性表3中的因子Fi(其中:i=1,2,……14)取值范围在0-5之间[1],值0表示该因子对系统无影响,值5表示该因子是对系统有强大的影响。技术复杂度因子的计算公式如公式3所示:TCF=0.65+0.01(SUM(Fi))(3)由UFC乘以技术复杂度因子(technical complexityfactor,TCF)得到调整后的功能点数FP,参见公式4。FP=UFC×TCF(4)
3.基于回归分析的成本模型
成本模型提供工作量的直接估算,通常有一个主要的成本因素和若干个次要的调整因素。该模型是利用过去软件项目中收集的数据进行回归分析导出待开发软件的成本模型[1]。其整体结构如公式5所示:E=A+B×SC(5)ABC为经验性的导出常数,E为每个月的投入,S为主要输入(常用源代码行数LOC或功能点数FP)[1]。以LOG为主要输入参数来计算的成本模型的例子:E=5.2×(KLOC)0.91 Walston-Felix模型E=3.2×(KLOC)1.05 COCOMO基础模型以FP为主要输入参数来计算的成本模型的例子:E=-12.39+0.0545FP Albrecht and Gdffney模型E=585.7+15.12FP Matson,Barnett,和Mellichamp模型
4.各类模型存在的问题分析
当一个模型有75%的准确性时,我们认为是可以接受。但目前大多数的模型无法达到这个标准[1]。从前面模型中不难看出,无论是模型结构、复杂度或软件项目规模,都是靠开发者的经验估计出来的,而这些参数在开发的早期很难预测。大多数模型在当初导出它们的工作范围内工作的很好,但应用于普通情况时表现很差。软件需求是复杂的,有差异的。虽许多模型包含解决差异的调整因素,评估员可依靠调整因素去解决当前问题的任何变动,然而这种方法常常是不适当的。实际上,许多因素会相互影响,有时会导致过度忽略了某个因素的重要性。同时,这些方法也非常具有主观性,常常带有开发者的个人倾向。另外,调整因素的计算过程也过于复杂,不是一个容易确定的值。一般模型要求对软件规模进行估算,但项目初期很难预测。对规模的估计结果也很主观,并要求模型的规模度量与用于实际中的规模度量相同,否则不能给出准确的结果。
三、软件项目成本管理中的直觉思维
直觉思维是指不受某种固定的逻辑规则约束而直接领悟事物本质的一种思维形式。许多项目管理人凭借直觉对项目成本的进行估算。项目管理人利用多年的经验和能力预测项目成本,有时这种估算很准确。同时这种以真实经验为基础的人为的判断也有利于对特殊情况的调整。项目管理人员在成本估算时常会借鉴以往的相似的项目经验,但项目管理人员很少考虑到相似项目的风险,如先前项目的成本是什么?先前项目所用的专有技术是什么?先前项目是否按计划完成?先前项目有哪些地方出过错误?项目管理人员在进行成本估算时倾向于“软性”的经验,而忽视先前项目执行时的“硬性”证据。管理人员倾向依据少量的——大多数情况下仅一两次——以往经验作出决定。缺乏足够的经验,作出的估算是不可信的。另一个问题是倾向于依靠项目“专家”的定性阐述。项目管理者经常会过度乐观地看待项目的进展,会给出与事