ifpug
IFPUG 功能点估算基本方法
IFPUG 功能点估算基本方法
Function Point Estimation 功能点估算是一种用来估算项目大小的技术。
项目经理从已经界定的软件范围开始,并根据该陈述将软件分解为可以被单独估算的功能单元,然后估算每一个功能的FP值。这种分析方法是按照功能为估算单元进行分解,同样如果以其它元素作为估算单元,例如类、对象、业务过程,以下都以功能分解进行讨论。
注意:功能单元是指分解到的最小可估算单元。
FP值是按照经验,使用复杂度参数进行估算调整过的量化的数值。
估算的基本过程:
a) 界定项目范围;
b) 分解项目到可以被估算的最小功能单元;
c) 识别功能单元的类型,估算复杂度;
d) 计算总体系统特征值;
e) 计算调整因子;
f) 应用公式计算FP值。
1. 界定项目范围
界定项目范围这次不讨论。
2. 分解项目到可以被估算的最小功能单元
系统用5种信息域特征进行描述:
事务(Transaction):
外部输入( External Input EI)
外部输出(External Output EO)
外部查询(External Inquiry EQ)
数据存储:
内部逻辑文件(Internal Logical File ILF)
外部接口文件(External Interface File EIF)。
内部文件(ILF)指每个逻辑主文件(即数据的一个逻辑组合,它可能是某大型数据库的一部分或者是一个独立的文件),例如数据库表。注意不是一个数据库表就是一个ILF,例如合同数据可以包括合同信息、合同条款、合同付款计划。
外部接口:所有机器可读的接口,是不由本系统维护的逻辑文件,是其它系统的ILF。例如:web service取回的数据,一个人工维护的Excel表格。
3. 估算功能点的复杂度
数据元素类型(Data Element Types DET)是一个用户可识别的、唯一性的、非递归的域。
记录元素类型(Record Element Types RET)是ILF或者EIF中用户能够识别的数据元素小组。
档案类型(File Types Referenced FTR)是被引用或更新的内部逻辑档案。
交易类信息域(EI、EQ、EO)的复杂程度取决于这个交易牵涉到的数据元素类型数量,以及被引用或者更新的档案文件类型的数量。
数据存储(EIF、ILF)的复杂程度取决于这个数据的逻辑组合包含了多少类记录元素类型,以及包含了多少数据元素类型。例如合同数据包括了合同信息、合同条款、合同付款计划,就是3个RET。
记录了每个信息域的DET、RET、FTR之后,按照下表为每个信息域进行复杂度评定、打分,总分就是这个功能点的分值。
评估EI复杂度
引用的文件类型个数(FTR’s) 数据元素(Data Elements)
1-4 5-15 >15
0-1 低 低 低
2 低 中 高
>=3 中 高 高
评估EO和EQ复杂度
引用的文件类型个数(FTR’s) 数据元素(Data Elements)
1-5 6-19 >19
0-1 低 低 中
2-3 低 中 高
>3 中 高 高
事务型信息域评分值
级数(Rating) 加权值
低 4 3 3
中 5 4 4
高 7 6 6
评估 ILF EIF 的复杂度
记录元素类型(RET’s) 数据元素(Data Elements)
1-19 20-50 >50
1 低 低 中
2-5 低 中 高
>5 中 高 高
ILF EIF 的评分值
级数(Rating) 加权值
ILF EIF
低 7 5
中 10 7
高 15 10
FP = Σ 各个复杂度等级的信息域数量 × 加权值
4. 计算总体系统特征值General Sysytem Characteristics GSC
也称做复杂度调整值,是系统整体复杂程度的度量,取值 Fi 为0-5。
通用特性 描述
1. 数据通信 多少个通信设施在应用或系统之间辅助传输和交换信息。
2. 分布数据处理 分布的数据和过程函数如何处理?
3. 性能 用户要求相应时间或者吞吐量吗?
4. 硬件负荷 应用运行在的硬件平台工作强度如何?
5. 事务频度 事务执行的频率(天、周、月)如何?
6. 在线数据输入 在线数据输入率是多少?
7. 终端用户效率 应用程序设计考虑到终端用户的效率吗?
8.在线更新 多少ILF被在线事务所更新?
9. 处理复杂度 应用有很多的逻辑或者数据处理吗 ?
10. 重用性 被开发的应用要满足一个或者多个用户需要吗?
11. 易安装性 升级或者安装的难度如何?
12. 易操作性 启动、备份、恢复过程的效率和自动化程度如何?
13.跨平台性 应用被设计、开发和支持被安装在多个组织的多个安装点(不同的安装点的软硬件平台环境不同)吗?
14.可扩展性 应用被设计、开发以适应变化吗?
调整过的FP = FP * ( 0.65 + 0.001 *Σ Fi)
参考IFPUG的《功能点计算实践手册》