介绍软件开发成本估算
软件工程项目管理中的一项重要任务是软件开发成本估算。软件开发成本指开发过程中花费的工作量及相应的代价,以整个开发过程中花费的人工代价为依据。这是极其重要却很容易被忽视的一项内容。如果没有成本估算,项目计划就失去成功的基础,可惜有效掌握成本估算却是大部分开发团队难以做到的。软件估算包括规模估算、 工作量估算、 进度估算和成本估算。首先,根据软件需求进行规模估算,预估软件开发的规模,预估功能点数、代码复杂度、代码量。然后,在此基础上,根据开发团队的技术能力、团队稳定性、开发生产率等经验数字,以及开发平台、具体项目复杂度来估算开发的工作量,通常以人天、人月、人年为单位体现。最后,才根据客户提出的进度需求,根据人员成本,根据其他成本进行估算。可以这样说,软件估算的基础是经验模型。规模估算是一切估算的基础,工作量估算是最关键的一环,直接决定开发成本。
规模估算较常用的方法是LOC代码行估算法和FP功能点估算法。代码行估算法主要根据开发团队的历史记录,以经验数字进行推测。功能点估算法通过严谨的经验模型计算公式进行估算,是比较通行的软件规模估算方法。
工作量估算可以采用算法方法、类比法、自底向上法进行估算。算法方法估算使用数学方式表达出估算所包含的规模、工作量、进度和复杂度之间的关系。模型可以是动态的,也可以是静态的。由于算法是源于以往项目的总结,所以估算结果并不精确,但具有很高的参考价值。随着开发团队数据的逐步积累,产生的估算也将越来越精确。类比估算法主观意识较强,根绝估算人员的经验主观的较新项目和已完成项目之间的相似与差异。自底向上估算法是将项目分解成小的活动和任务,对每个小人物作估算,然后将小任务估算值相加,从而得到整个项目总体工作量估算值。这种小任务估算通常由程序员分别估算,有益于使程序员产生责任感,使进度保障性更强。
当工作量估算确定之后,就可以开始计算人员成本。同时,还要考虑其他成本,例如软件费用、硬件费用、通讯费用、培训费用、差旅费用等其他管理成本。所有这些构成了一套较完整地软件开发成本估算。
浙公网安备 33010602011771号