由于工作需要,需要在项目立项前都需要进行功能点估算, 为后续计算项目组的的工作效率做准备。目前做了几次估算,在这里整理和总结一下。 我们目前使用的评估的标准参考 IFPUG: ISO/IEC 20926:2009
概述
定义:
The function point is a "unit of measurement" to express the amount of
business functionality an information system (as a product) provides to
a user.
功能点是业务功能的单位, 也就是从用户视角的进行评估, 是可以和用户交流的。对于我现在实施的外包项目来说就是用一种方法和甲方达成共识。相比较与之前的根据经验评估更有依据些。
步骤
1. 功能点应用的分类
- 开发项目: 从无到有
- 升级项目: 功能升级
- 应用项目: 基线评估
2. 识别应用边界
被测应用与用户间的边界。
3. 确认功能点
被测应用与用户间的边界。
- 数据功能
- ILF: 容纳本应用维护的一组业务数据, 控制数据
- ELF: 容纳外部应用维护的数据, 对于外部数据来说是他的ILF
- 处理功能
- EI: 处理来自应用外部的的数据, 主要实现ILF的维护, 应用的控制
- EO: 通过ILF生成新数据, 已报表,数据流形式送到应用以外
- EQ: 请求来自应用外部, 处理过程包含输入,输出, 但输入不进行ILF文件的维护
复杂度
1. 复杂度评估涉及三种元素 RET & DET & FTR
- DET :用户可识别的,非重复的域
- RET :用户可识别的数据的子集合
- FTR: 引用文件类型
2. ILF & EIF 的复杂度
|
1 to 19 DET |
20 to 50 DET |
51 or more DET |
1 RET |
Low |
Low |
Average |
2 to 5 RET |
Low |
Average |
High |
6 or more RET |
Average |
High |
High |
Functional Complexity Rating |
Unadjusted Function Points |
Low |
7 |
Average |
10 |
High |
15 |
Functional Complexity Rating |
Unadjusted Function Points |
Low |
5 |
Average |
7 |
High |
10 |
3. EI & EO & EQ 的复杂度
|
1 to 4 DET |
5 to 15 DET |
16 or more DET |
0 to 1 FTR |
Low |
Low |
Average |
2 FTRs |
Low |
Average |
High |
3 or more FTRs |
Average |
High |
High |
|
1 to 5 DET |
6 to 19 DET |
20 or more DET |
0 to 1 FTR |
Low |
Low |
Average |
2 to 3 FTRs |
Low |
Average |
High |
4 or more FTRs |
Average |
High |
High |
Functional Complexity Rating |
Unadjusted Function Points |
Low |
3 |
Average |
4 |
High |
6 |
Functional Complexity Rating |
Unadjusted Function Points |
Low |
4 |
Average |
5 |
High |
7 |
关于复杂度我们实际场景中目前取的都是平均数, 没有对功能点负责度进一步分析,后续会对数据进行统计, 折算出应用的固定的权重。
举例
以一个骑行健身器为例子
1. ILF : 涉及两组信息:
序号 |
字段 |
1 |
平均速度 |
2 |
自行车的凉爽系数 |
3 |
节奏 |
4 |
卡路里燃烧 |
5 |
乘车日期 |
6 |
乘车距离 |
7 |
骑行时间 |
8 |
温度 |
2. EI
- 骑行信息:
针对 1-8 个 信息 的增删改操作(EI), 其中卡路里计算需要参考 骑行者信息
中的体重 , 得出一下结论:
- 新增,修改操作 涉及 8 个
DET
, 2个 FTR
- 删除 涉及 8 个
DET
, 1个 FTR
- 骑行者信息:
针对 1-3 个 DET
的增删改操作(EI)
交易处理 |
DET |
FTR |
Complexity Rating |
FPs |
Ride 增加 |
8 |
2 |
Average |
4 |
Ride 修改 |
8 |
2 |
Average |
4 |
Ride 删除 |
8 |
1 |
Low |
3 |
Rider 新增 |
3 |
1 |
Low |
3 |
Rider 修改 |
3 |
1 |
Low |
3 |
3. EQ
查询骑行信息, 骑行者信息:
交易处理 |
DET |
FTR |
Complexity Rating |
FPs |
Ride 查询 |
8 |
1 |
Low |
4 |
Ride 查询 |
3 |
1 |
Low |
4 |
4. ILF
交易处理 |
DET |
FTR |
Complexity Rating |
FPs |
ILF Ride |
8 |
1 |
Low |
7 |
ILF Rider |
3 |
1 |
Low |
7 |
5. EO
假设如下需求: 骑行距离,平均速度,骑行时间,卡路里按 日, 周, 月统计, 支持在线查看和打印
3个报表维度 * 4个业务数据 * 2种展示方式 = 24 个 EO
每个EO生成至少需要骑行表中两个数据功能点统计如下:
交易处理 |
DET |
FTR |
Complexity Rating |
FPs |
EO |
2 |
1 |
Low |
4 |
6. 汇总
交易处理 |
DET |
FTR |
Complexity Rating |
FPs |
# |
Total FP |
Ride 增加 |
8 |
2 |
Average |
4 |
1 |
4 |
Ride 修改 |
8 |
2 |
Average |
4 |
1 |
4 |
Ride 删除 |
8 |
1 |
Low |
3 |
1 |
3 |
Rider 新增 |
3 |
1 |
Low |
3 |
1 |
3 |
Rider 修改 |
3 |
1 |
Low |
3 |
1 |
3 |
Ride 查询 |
8 |
1 |
Low |
4 |
1 |
4 |
Rider 查询 |
3 |
1 |
Low |
4 |
1 |
4 |
ILF Ride |
8 |
1 |
Low |
7 |
1 |
7 |
ILF Rider |
3 |
1 |
Low |
7 |
1 |
7 |
EO |
2 |
1 |
Low |
4 |
24 |
96 |
功能点: 135
参考及引用
Function point
functionpoints
软件功能点分析法
Be First to Comment