上一篇介绍了软件项目的需求分析和任务分解,即软件项目的范围计划,那么对于一个软件项目来说,我们还需要知道它需要多少时间多少成本,如何得到这些数据就是这次要解决的问题,即项目的成本计划
在项目未完成之前谁也不能准确地得到项目所需要的成本,但是却可以通过估算得到大致的成本
对于软件项目估算来说:估算不是很准确,有误差;不要太迷信某些数学模型;项目经验数据非常重要
软件项目成本由软件项目规模决定,软件项目规模即工作量,一般的单位有LOC(lines of code有效代码行数)、FP(function point系统功能数量)、人月、人天、人年…
软件项目成本包括:完成软件规模相应付出的代价、待开发的软件项目需要的资金、人的劳动所消耗付出的成本是软件产品的主要成本、货币单位
估算的基本方法:
代码行估算法:从软件程序量的角度定义软件项目的规模
功能点估算法:与现实的技术语言没有关系,从系统的功能数量来测量其规模,通过评估、量化、加权得出功能点。功能点计算公式:FP=UFCTCF(UFC:未调整功能点计数。TCF:技术复杂度因子。)UFC包括:外部输入、外部输出、内部逻辑文件、外部接口文件、外部查询
用例点估算法:UCP =UUCP×TCF×ECF UUCP=UAW+UUCW (UCP: UUCP: 计算为调整的用例点 UAW: 计算未调整的角色的权值 UUCW:计算未调整的用例的权值 TCF:计算技术因子 ECF:计算环境因子)
类比 (自顶向下)估算法:估算人员根据以往项目的总成本来推算将要开发的项目的总成本。 适用情况:有类似的历史数据、信心不足的时候、要求不是非常精确估算的时候。
自下而上估算法:利用任务分解图(wbs),