
为什么它是必修技?
企业要生存,就必须赚钱;
要赚钱,那么企业所承建的项目必须要有利润;
要有利润,企业就要对将要成建的项目有明确的项目工作量及成本估算;
如何做“ 基于问题的估算”?
这类估算分为两类:代码行估算(LOC)和功能点估算(FP)。
代码行估算的理论基础是软件都是代码构成的,相应代码的长度代表了软件的整体规模,也就是从技术角度评估。
功能点估算的理论基础是软件一般都是由数据和程序构成的,相应数据和程序的复杂程度代表了软件的整体规模,也就是从用户角度评估。
两类估算有其共同点:都是估算范围;相应代码行/功能点的计算公式都符合上篇文章所讲的PERT公式。
代码行估算(LOC):
1、确定明确的系统边界;
2、将项目划分为若干个功能;
3、按PERT公式计算每个功能的代码长度,所有功能代码行之和即项目的代码总长度;
4、根据组织的历史数据,估算组织的代码生产率(单位:代码行/每人月);
5、估算工作量=代码总估算长度/估算生产率
6、估算总成本=日薪*估算工作量
功能点估算(FP):
1、 确定明确的系统边界。
2、将项目划分为若干个功能;
3、建立分类识别表:

人机交互类估算可以简单理解为对程序开发复杂度的估算;
数据存储类估算可以简单理解为对数据库复杂度的估算;
4.按分类识别表对功能进行识别:

识别规则:
数据存储类的好识别,这里就不在啰嗦。
EI/EO/EQ存在的基础:它们必须存在于一个EP中。
(EP必须要符合逻辑唯一性、数据唯一性、ILF/EIF唯一性的其中一个)
三者细节上的识别是依靠目的和行为:


5、计算数据类型功能点所提供的“未调整”的功能点数量。
根据ILF和ELF定义计算相应功能点数量。
ILF和EIF的复杂性:取决于RET(Record element type)和DET(Data element type)的数量。

6、 计算人机交互功能所提供的“未调整”的功能点数量。
根据EI/EO/EQ的识别规则计算相应的功能点数量。
EI/EO/EQ复杂性取决于FTR和DET的数量。
5.确定调整因子。
因为一个系统除过功能上的要求,还有一些其他特性的要求(比如:处理性能、架构上的),我们把这些因素归为十四类,如下表所示:

6、计算调整后的功能点数量。
7、根据组织的历史数据,估算组织的功能点生产率(单位:功能点/每人月)
8、估算工作量=总FP功能点/估算生产率
9、估算总成本=日薪*估算工作量
网友评论