功能点分析法整理

由于工作需要,需要在项目立项前都需要进行功能点估算, 为后续计算项目组的的工作效率做准备。目前做了几次估算,在这里整理和总结一下。 我们目前使用的评估的标准参考 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 的复杂度

  • 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
  • ILF:
Functional Complexity Rating Unadjusted Function Points
Low 7
Average 10
High 15
  • EIF:
Functional Complexity Rating Unadjusted Function Points
Low 5
Average 7
High 10

3. EI & EO & EQ 的复杂度

  • EI:
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
  • EO & EQ
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
  • EI & EQ:
Functional Complexity Rating Unadjusted Function Points
Low 3
Average 4
High 6
  • EO:
Functional Complexity Rating Unadjusted Function Points
Low 4
Average 5
High 7

关于复杂度我们实际场景中目前取的都是平均数, 没有对功能点负责度进一步分析,后续会对数据进行统计, 折算出应用的固定的权重。

举例

以一个骑行健身器为例子

1. ILF : 涉及两组信息:

  • 骑行信息:
序号 字段
1 平均速度
2 自行车的凉爽系数
3 节奏
4 卡路里燃烧
5 乘车日期
6 乘车距离
7 骑行时间
8 温度
  • 骑行者信息:
序号 字段
1 年龄
2 体重
3 性别

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

发表回复