软件工程 | 功能点 (FP) 的计算

28 Aug 2024 | 5 分钟阅读

在软件工程中,功能点分析 (FPA) 方法用于衡量软件程序提供的功能。它有助于确定软件项目的大小和复杂性。

功能点 (FP) 是软件开发的一个组成部分,有助于在早期阶段估算开发成本。它可以从用户的角度评估可用性。

软件系统的功能使用功能点 (FP) 进行量化,FP 是 FPA 中的一个测量单位,基于五个关键要素

用户发起的输入,例如填写表单或上传文件,称为外部输入 (EI)。

用户发起的输出,将数据从系统发送出去,包括生成报告和在屏幕上显示数据,都属于外部输出 (EO) 的示例。

外部查询 (EQ) 是用户发起的从系统中请求数据的请求,通常涉及输入和输出的组合,例如在数据库中查找数据。

内部逻辑文件 (ILF) 是用户可识别的数据集合,系统会维护这些数据,例如数据库表。

程序和外部系统共享外部接口文件 (EIF),以读写另一个系统上的文件数据。

要确定软件项目的“功能点”(FP) 计数,您需要执行以下操作

基于程序的需要和要求,确定并计算上述五种组件 (EI、EO、EQ、ILF 和 EIF) 的数量。

根据数据组件的数量、用户交互和处理逻辑等特征,为每个组件分配复杂度值。复杂度分为简单、中等和复杂三个级别。

使用以下权重因子计算每种组件类型的未调整功能点 (UFP)

EI UFP = (EI 数量) x (EI 的权重)

EO UFP = (EO 数量) x (EO 的权重)

EQ UFP = (EQ 数量) x (EQ 的权重)

ILF UFP = (ILF 数量) x (ILF 的权重)

EIF UFP = (EIF 数量) x (EIF 的权重)

要确定总未调整功能点 (TUFP),请将每种组件类型的 UFP 值相加

TUFP 等于 EI UFP、EO UFP、EQ UFP、ILF UFP 和 EIF UFP。

使用基于可能影响项目难度的多个技术因素的技术难度因子 (TCF)。TCF 是一个乘数,通常在 0.65 到 1.35 之间。

TUFP x TCF = 调整后功能点 (AFP)

根据可能影响项目复杂度的环境因素,应用环境复杂度因子 (ECF)。ECF 是一个乘数,通常在 0.85 到 1.36 之间。

AFP = AFP x ECF 表示调整后功能点。

最终调整后的功能点计数 (AFP) 可以衡量软件项目的大小和复杂度。它可以用于成本和工作量估算以及项目规划。请记住,精确的权重因子、复杂度值和乘数范围可能会因组织和功能点分析方法而异。

步骤 1

计算功能点 (FP): F = 14 * scale

Scale 根据复杂度调整因子 (CAF) 的特性,范围从 0 到 5。Scale 显示在下表中

无影响:0

2 - 中等 1 - 偶然

3 - 标准

4 - 重要

5 - 关键

在第二步中计算复杂度调整因子 (CAF)。

CAF = 0.65 + (0.01 * F)

在第三步中计算未调整功能点 (UFP)。

表格 (必需)

将每个功能点除以表格中对应的数值。

在第四步中计算功能点 (FP = UFP * CAF)。

示例

给定以下值,计算当所有复杂度调整因子 (CAF) 和权重因子都为平均值时功能点。

用户输入 = 50

用户输出 = 40

用户查询 = 35

用户文件 = 6

外部接口 = 4

说明

步骤 1:由于复杂度调整因子是平均的(问题中已给出),因此,

Scale = 3。

F = 14 * 3 = 42

步骤 2

CAF = 0.65 + ( 0.01 * 42 ) = 1.07

步骤 3:由于权重因子也是平均的(问题中已给出),我们将每个功能点乘以表格中对应的数值。

UFP = (50*4) + (40*5) + (35*4) + (6*10) + (4*7) = 628

步骤 4

功能点 = 628 * 1.07 = 671.96

这是所需答案。

代码

输出

Enter the number of External Inputs (EI): 10
Enter the number of External Outputs (EO): 5
Enter the number of External Inquiries (EQ): 8
Enter the number of Internal Logical Files (ILF): 4
Enter the number of External Interface Files (EIF): 3
Enter the Technical Complexity Factor (TCF): 1.2
Enter the Environmental Complexity Factor (ECF): 1.1
 
Unadjusted Function Points (UFP): 123
Adjusted Function Points (AFP): 147.6
Final Function Points (FFP): 162.36

根据您使用的功能点分析方法,我们为每种组件类型 (EI、EO、EQ、ILF 和 EIF) 定义了权重因子。这些值可以根据需要进行更改。

我们在界面中要求用户输入每种组件类型的计数以及技术复杂度因子 (TCF) 和环境复杂度因子 (ECF)。

为了获得调整后功能点 (AFP),我们首先计算未调整功能点 (UFP),然后用 TCF 对其进行调整。

最后,我们将 ECF 应用于 AFP,以确定最终功能点 (FFP)。

我们输入每种组件类型的计数 (EI、EO、EQ、ILF 和 EIF)。

输入了环境复杂度因子 (ECF) 为 1.1 和技术复杂度因子 (TCF) 为 1.2。

根据提供的输入和预定义的权重因子,程序将确定未调整功能点 (UFP)、调整后功能点 (AFP) 和最终功能点 (FFP)。