由于工作需要,需要在项目立项前都需要进行功能点估算, 为后续计算项目组的的工作效率做准备。目前做了几次估算,在这里整理和总结一下。 我们目前使用的评估的标准参考 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 DET20 to 50 DET51 or more DET
1 RETLowLowAverage
2 to 5 RETLowAverageHigh
6 or more RETAverageHighHigh
  • ILF:
Functional Complexity RatingUnadjusted Function Points
Low7
Average10
High15
  • EIF:
Functional Complexity RatingUnadjusted Function Points
Low5
Average7
High10

3. EI & EO & EQ 的复杂度

  • EI:
1 to 4 DET5 to 15 DET16 or more DET
0 to 1 FTRLowLowAverage
2 FTRsLowAverageHigh
3 or more FTRsAverageHighHigh
  • EO & EQ
1 to 5 DET6 to 19 DET20 or more DET
0 to 1 FTRLowLowAverage
2 to 3 FTRsLowAverageHigh
4 or more FTRsAverageHighHigh
  • EI & EQ:
Functional Complexity RatingUnadjusted Function Points
Low3
Average4
High6
  • EO:
Functional Complexity RatingUnadjusted Function Points
Low4
Average5
High7

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

举例

以一个骑行健身器为例子

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)

交易处理DETFTRComplexity RatingFPs
Ride 增加82Average4
Ride 修改82Average4
Ride 删除81Low3
Rider 新增31Low3
Rider 修改31Low3

3. EQ

查询骑行信息, 骑行者信息:

交易处理DETFTRComplexity RatingFPs
Ride 查询81Low4
Ride 查询31Low4

4. ILF

交易处理DETFTRComplexity RatingFPs
ILF Ride81Low7
ILF Rider31Low7

5. EO

假设如下需求: 骑行距离,平均速度,骑行时间,卡路里按 日, 周, 月统计, 支持在线查看和打印

3个报表维度 * 4个业务数据 * 2种展示方式 = 24 个 EO

每个EO生成至少需要骑行表中两个数据功能点统计如下:

交易处理DETFTRComplexity RatingFPs
EO21Low4

6. 汇总

交易处理DETFTRComplexity RatingFPs#Total FP
Ride 增加82Average414
Ride 修改82Average414
Ride 删除81Low313
Rider 新增31Low313
Rider 修改31Low313
Ride 查询81Low414
Rider 查询31Low414
ILF Ride81Low717
ILF Rider31Low717
EO21Low42496

功能点: 135

参考及引用

Function point functionpoints 软件功能点分析法