功能点 (FP) 分析

17 Mar 2025 | 5 分钟阅读

功能点分析 (FPA) 最初由 Allan J. Albrecht 于 1979 年在 IBM 开发,并由国际功能点用户组 (IFPUG) 进一步修改。FPA 用于估算软件项目,包括其测试的功能性或软件产品的功能规模。然而,功能点分析也可以用于产品的测试估算。产品的功能规模以功能点衡量,功能点是一种衡量软件应用的测量标准。

FPA 的目标

功能点分析的基本和主要目的是根据客户、顾客和利益相关者的要求,测量并提供软件应用的功能规模。此外,它还用于衡量软件项目的开发及其维护,在整个项目过程中始终如一,无论工具和技术如何。

以下是关于 FPs 的几点说明:

1. 应用的 FPs 是通过计算应用中使用的函数数量和类型来确定的。应用中使用的各种函数可以分为五种类型,如表所示:

FP 属性类型

测量参数示例
1. 外部输入 (EI) 数量输入屏幕和表格
2. 外部输出 (EO) 数量输出屏幕和报告
3. 外部查询 (EQ) 数量提示和中断。
4. 内部文件 (ILF) 数量数据库和目录
5. 外部接口 (EIF) 数量共享数据库和共享例程。

所有这些参数随后都单独评估其复杂性。

FPA 功能单元如图所示:

Functional Point (FP) Analysis

2. FP 表征了软件系统的复杂性,因此可以用来描绘项目时间和人力需求。

3. 开发项目所需的精力取决于软件的功能。

4. FP 与编程语言无关。

5. FP 方法用于数据处理系统、信息系统等业务系统。

6. 上述五个参数也称为信息域特征。

7. 上述所有参数都分配了经过实验确定的权重,如表所示:

5-FP 属性的权重

测量参数平均数
1. 外部输入 (EI) 数量71015
2. 外部输出 (EO) 数量5710
3. 外部查询 (EQ) 数量346
4. 内部文件 (ILF) 数量457
5. 外部接口 (EIF) 数量346

将功能复杂度乘以每个功能对应的权重,并将这些值相加,以确定子系统的 UFP(未调整功能点)。

Functional Point (FP) Analysis

此处,权重因子对于测量参数类型将是简单、平均或复杂的。

因此,功能点 (FP) 通过以下公式计算:

              FP = Count-total * [0.65 + 0.01 * ∑(fi)]
              = Count-total * CAF

其中 Count-total 从上表获得。

              CAF = [0.65 + 0.01 *∑(fi)]

其中 ∑(fi) 是所有 14 个问卷的总和,表示复杂性调整值/因子-CAF(其中 i 的范围从 1 到 14)。通常,会向学生提供 ∑(fi) 的值。

另请注意,∑(fi) 的范围从 0 到 70,即,

              0 <= ∑(fi) <=70

且 CAF 的范围从 0.65 到 1.35,因为

  1. ∑(fi) = 0 时,CAF = 0.65
  2. ∑(fi) = 70 时,CAF = 0.65 + (0.01 * 70) = 0.65 + 0.7 = 1.35

基于软件的 FP 衡量,可以计算许多其他指标:

  1. 错误/FP
  2. $/FP。
  3. 缺陷/FP
  4. 文档页数/FP
  5. 错误/PM。
  6. 生产力 = FP/PM(工作量以人月衡量)。
  7. $/文档页数。

8. 应用的 LOCs 可以从 FPs 估算。也就是说,它们可以相互转换。这个过程被称为“逆向计算”(backfiring)。例如,1 FP 大约等于 100 行 COBOL 代码。

9. FP 度量主要用于衡量管理信息系统 (MIS) 软件的规模。

10. 但上面获得的功能点是未调整功能点 (UFP)。这些子系统的 UFP 通过考虑一些更通用的系统特征 (GSC) 进一步调整。需要考虑 14 个 GSC。调整 UFP 的过程如下:

  1. 对这 14 个 GSC 中的每一个,影响程度 (DI) 以 0 到 5 的等级进行评估。(b) 如果某个 GSC 没有影响,则其权重取为 0;如果它有强烈影响,则其权重为 5。
  2. 将所有 14 个 GSC 的得分汇总,以确定总影响程度 (TDI)。
  3. 然后使用公式从 TDI 计算值调整因子 (VAF):VAF = (TDI * 0.01) + 0.65

请记住,VAF 的值在 0.65 到 1.35 之间,因为

  1. 当 TDI = 0 时,VAF = 0.65
  2. 当 TDI = 70 时,VAF = 1.35
  3. 然后将 VAF 乘以 UFP,得到最终的 FP 计数:FP = VAF * UFP

示例: 计算以下数据的功能点、生产力、文档、每个功能的成本:

  1. 用户输入数量 = 24
  2. 用户输出数量 = 46
  3. 查询数量 = 8
  4. 文件数量 = 4
  5. 外部接口数量 = 2
  6. 工作量 = 36.9 人月
  7. 技术文档 = 265 页
  8. 用户文档 = 122 页
  9. 成本 = $7744/月

各种处理复杂性因子为:4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4, 5。

解决方案

测量参数数量权重因子
1. 外部输入 (EI) 数量24*4 = 96
2. 外部输出 (EO) 数量46*4 = 184
3. 外部查询 (EQ) 数量8*6 = 48
4. 内部文件 (ILF) 数量4*10 = 40
5. 外部接口 (EIF) 数量 Count-total →2*5 = 10
378

所以所有 fi (i ← 1 到 14) 的和 = 4 + 1 + 0 + 3 + 5 + 4 + 4 + 3 + 3 + 2 + 2 + 4 + 5 = 43

                FP = Count-total * [0.65 + 0.01 *∑(fi)]
                = 378 * [0.65 + 0.01 * 43]
                = 378 * [0.65 + 0.43]
                = 378 * 1.08 = 408

Functional Point (FP) Analysis

文档总页数 = 技术文档 + 用户文档
                = 265 + 122 = 387 页

文档 = 文档页数/FP
                = 387/408 = 0.94

Functional Point (FP) Analysis

区分 FP 和 LOC

FPLOC
1. FP 基于规范。1. LOC 基于类比。
2. FP 与语言无关。2. LOC 与语言相关。
3. FP 以用户为导向。3. LOC 以设计为导向。
4. 它可扩展到 LOC。4. 它可以转换为 FP(逆向计算)