软件项目的成本估算和成本控制一直是软件项目管理研究中的一个主要问题。本文提出在软件项目成本估算中实施工作结构分解和软件项目成本预算COCOMO结合方法,在软件项目结束后引入决算和审计机制,为软件企业建立基于估算、预算和决算的知识库成本管理能力。
许多软件项目经理都经历过这种情况。由于开发成本超支,软件项目完成后,不仅得不到上级领导的表扬,甚至得不到项目奖金,而且这一切都来自于项目成本估算的不准确性。
随着软件开发技术的发展,软件成本对计算机系统总成本的影响越来越大,直接影响投资者的决策和软件项目的开发。如果没有合理准确的软件成本估算,软件项目的管理就无法很好地进行。
根据国际数据公司的研究报告,全球500强企业中65%的信息技术投资超过了生产设备投资。然而,软件项目的开发并不乐观。1995年,美国只有10%左右的软件项目可以按时交付,成本不超过30%,约30%的项目未完成。
项目超支的原因有很多,其中一个主要原因是软件开发过程中成本控制工作做得不好,资源配置没有优化,造成成本浪费。更多的原因来自于对软件项目成本的错误估计。用不可能的成本来实现比预算高得多的软件,无论如何控制,都无法避免成本超支的坏运气。
在软件成本估算领域,有许多估计模型。经过几十年的发展,一些模型已成为软件成本估算的常用模型,如功能点DELPHI、SDC和COCOMO等等。以功能点和COCOMO模型应用最广泛。功能点估算模型功能点方法的本质是从客户的角度测量系统。认为系统的功能可分为内部逻辑文件、外部接口文件、外部输入、外部输出和外部查询五类。根据计算规则,首先确定每个功能的分类及其功能复杂性,以获得每个功能的权重,并获得未调整的功能点。功能点方法可以在早期测量软件的规模,软件的规模与其工作量、进度和成本密切相关。早期准确的软件规模测量有助于确定软件价格,提高计划过程中的估算能力。
软件项目管理过程从项目计划开始,估计是项目计划的第一项活动。估计需要考虑很多因素,其中最重要的是交付软件的规模。在软件开发生命周期的早期阶段,用功能点表示软件规模作为估计的输入比用代码银行表示软件规模要准确得多,Kemerer研究表明,用功能点估计的误差为85%,用代码行估计的误差为601%。
由于软件项目始于需求分析,需求分析的主要目的是确定用户的需求,即系统需要实现的功能,因此可以在需求分析阶段引入功能点方法。如果有丰富的经验积累,可以进行高精度的成本估算。COCOMO模型COCOMO(ConstructiveCostModel)是Boehm利用加利福尼亚一家咨询公司的大量项目数据推导出的成本模型。该模型于1981年首次发布表COCOMO模型。适应软件工程领域的快速变化,COCOMO经过多次更新,如1987年Ada1994年版本发展演变为COCOMOII模型。COCOMO模型根据细节可分为三级,即基本COCOMO模型,中间COCOMO&n