计算功能点






4.33/5 (6投票s)
2007年3月15日
6分钟阅读

204888
使用功能点分析来计算功能点。
使用功能点分析计算功能点。
引言
关于功能点是什么的介绍,请阅读我之前的文章 这里。
计算功能点的方法可能有很多种;你也可以根据你的具体需求定义自己的方法。但是“何必重新发明轮子呢?”当 IFPUG 已经通过他们的经验和案例研究提供了一种经过考验的方法时。
计算功能点的方法称为 FPA(功能点分析)。我也可以将其定义为一句话:“一种根据系统向用户提供的功能来量化软件系统的大小和复杂性的方法”。由于我已经在之前的博客中提供了功能点和功能点分析的介绍,我现在不会深入探讨。让我们开始学习如何计算功能点。
功能
在计算系统功能点时,会统计以下功能。
- 数据功能
- 内部逻辑文件 (ILF)
- 外部接口文件 (EIF)
- 事务功能
- 外部输入 (EI)
- 外部输出 (EO)
- 外部查询 (EQ)
现在,如果你将你的软件应用程序从逻辑上划分为几个部分,它总是会归结为上面提到的五种功能中的一种或多种。没有使用以上任何一种功能,软件应用程序就无法生成。
计算功能点的方法论
为此,我们需要从功能点的角度来理解一个系统,考虑以下应用程序模型来测量功能点。
现在,要计算功能点,我们需要遵循以下步骤:
- 测量 应用程序边界
- 应用程序边界 定义了应用程序的外部内容。
- 它取决于 用户对应用程序的外部业务视图,而不是技术和/或实现考虑。
- 应用程序边界 定义了应用程序的外部内容。
- 识别数据功能(ILF 和 EIF)
- 用户可识别的 数据组; 逻辑上相关 且在应用程序 边界内 通过一个或多个基本过程 维护 的,称为 ILF。
- 用户可识别的 数据组; 逻辑上相关,应用程序 引用 但在不同应用程序 边界内 维护的,称为 EIF。
- 用户可识别的 数据组; 逻辑上相关 且在应用程序 边界内 通过一个或多个基本过程 维护 的,称为 ILF。
- 为了确定功能点,我们还需要理解 RET 和 DET 的其他一些术语。
- RET(记录元素类型)是 用户可识别的 数据 元素子集,属于 ILF 或 EIF。
- DET(数据元素类型)是 用户可识别的、不重复的 字段,它要么在 ILF 中 维护,要么从 ILF 或 ELF 中 检索。
- 识别事务功能(EI、EO、EQ)
- 所有这三种事务功能都是“基本过程”。
- 基本过程 是对用户有意义的最小活动单元。
- 基本过程必须是独立的,并使应用程序的业务处于一致的状态。
- EI(外部输入)是应用程序的一个 基本过程,它处理 从应用程序边界外部进入 的数据。 维护 一个或多个 ILF。
- EO(外部输出)是一个 基本过程,它通过处理逻辑、从 ILF 或 EIF 检索数据来 生成 退出 应用程序 边界 的数据(即向用户呈现信息)。处理逻辑 包含 数学计算、派生数据等。
- EQ(外部查询)是一个 基本过程,它通过从 ILF 或 EIF 检索数据来 检索 发送到应用程序边界外部 的数据(即向用户呈现信息)。处理逻辑 不应包含 任何 数学公式、派生数据等。
- 所有这三种事务功能都是“基本过程”。
- 使用以上数据,我们可以计算 UFP(未调整功能点)。
- 在定义了系统的所有基本 数据和事务 功能 后,我们可以使用下面的表格集来计算总 UFP。
- 现在,对于每种功能,根据下表确定 UFP。
- 对于 EI、EO 和 EQ,确定 FTR 和 DET,并据此确定复杂度和 UFP 的数量。我们必须为 所有 EI、EO 和 EQ 计算此值。
- 在定义了系统的所有基本 数据和事务 功能 后,我们可以使用下面的表格集来计算总 UFP。
外部输入 (EI)
引用的文件类型 (FTR)
|
">数据元素 (DET)
|
||
|
1-4
|
5-15
|
大于 15
|
小于 2
|
低 (3)
|
低 (3)
|
中等 (4)
|
2
|
低 (3)
|
中等 (4)
|
高 (6)
|
大于 2
|
中等 (4)
|
高 (6)
|
高 (6)
|
外部输出 (EO)
">引用的文件类型 (FTR)
|
">数据元素 (DET)
|
||
|
1-5
|
6-19
|
大于 19
|
小于 2
|
低 (4)
|
低 (4)
|
中等 (5)
|
2 或 3
|
低 (4)
|
中等 (5)
|
高 (7)
|
大于 3
|
高 (7)
|
高 (7)
|
高 (7)
|
外部查询 (EQ)
">引用的文件类型 (FTR)
|
">数据元素 (DET)
|
||
|
1-5
|
6-19
|
大于 19
|
小于 2
|
低 (3)
|
低 (3)
|
中等 (4)
|
2 或 3
|
低 (3)
|
中等 (4)
|
高 (6)
|
大于 3
|
中等 (4)
|
高 (6)
|
高 (6)
|
- 对于 ILF 和 EIF,确定 RET 和 DET,并据此确定复杂度和 UFP 的数量。我们必须为 所有 ILF 和 EIF 计算此值。
内部逻辑文件 (ILF)
">记录元素类型 (RET)
|
">数据元素 (DET)
|
||
|
1-19
|
20-50
|
51 或更多
|
1 RET
|
低 (7)
|
低 (7)
|
中等 (10)
|
2 至 5 RET
|
低 (7)
|
中等 (10)
|
高 (15)
|
6 或更多 RET
|
中等 (10)
|
高 (15)
|
高 (15)
|
外部接口文件 (EIF)
">记录元素类型 (RET)
|
">数据元素 (DET)
|
||
|
1-19
|
20-50
|
51 或更多
|
1 RET
|
低 (5)
|
低 (5)
|
中等 (7)
|
2 至 5 RET
|
低 (5)
|
中等 (7)
|
高 (10)
|
6 或更多 RET
|
中等 (7)
|
高 (10)
|
高 (10)
|
- 一旦我们有了所有功能的得分,我们就可以得到 UFP:
UFP = 所有 EI、EO、EQ、ILF 和 EIF 的复杂度总和
- 此外,VAF(增值因子)的计算基于 TDI(14 个通用系统特征的总体影响程度)。
- TDI = 14 个通用系统特征的 (DI 之和),其中 DI 代表影响程度。
- 这 14 个 GSC 是:
- TDI = 14 个通用系统特征的 (DI 之和),其中 DI 代表影响程度。
1. 数据通信
2. 分布式数据处理
3. 性能
78. 高度使用的配置
79. 交易角色
80. 在线数据录入
81. 终端用户效率
82. 在线更新
83. 复杂处理
84. 可重用性
85. 安装简易性
86. 操作简易性
87. 多个站点
88. 促进变更
- 这些 GSC 的范围是 0-5。
- 一旦确定了 TDI,我们就可以将其放入下面的公式中来获得 VAF。
VAF = 0.65 + (0.01 * TDI)
- 最后,调整后的功能点或功能点是:
FP = UFP * VAF
- 现在,这些 FP 可以用来确定软件的大小,也可以用来估算软件的价格,以及获取完成软件所需的时间和精力。
- 工作量(人月)= FP 除以每月 FP 的数量(使用你组织或行业的基准)
- 进度(月)= 3.0 * 人月^(1/3)
例如,对于一个 65 人月项目:
最佳进度 = 3.0 * 65^(1/3) ≈ 12 个月
最佳团队规模 = 65 / 12 ≈ 5 或 6 人。
下一期
即将推出关于通过 FPA 计算 FP 的详细案例研究。