📜  软件工程 |函数点(FP)的计算(1)

📅  最后修改于: 2023-12-03 15:41:52.246000             🧑  作者: Mango

软件工程 |函数点(FP)的计算

函数点(FP)是一种衡量软件规模的方法,它通过计算软件中的功能点数量来估算软件的大小和工作量。FP的计算方法有两种:基于明细设计和基于功能需求。下面我们将介绍基于功能需求的FP计算方法。

FP计算的公式

FP计算的公式如下所示:

$ UFP = \sum_{i=1}^{n} (W_i \times F_i) $

其中,$UFP$表示未加权功能点,$n$表示功能点的数量,$W_i$表示第$i$个功能点的权值,$F_i$表示第$i$个功能点的个数。

$AFP = UFP \times TCF \times ECF $

其中,$AFP$表示调整功能点,$TCF$表示技术复杂性因素,$ECF$表示环境复杂性因素。

$LOC = AFP \times AFL$

其中,$LOC$表示代码行数,$AFL$表示平均代码行数。

功能点的分类

在计算FP之前,需要先将功能点进行分类。根据ISO/IEC 14143标准,功能点可分为以下三类:

  • 外部输入功能点(EIF):指软件从外部接收数据并进行处理的功能点,如用户输入、数据传输等。
  • 外部输出功能点(EO):指软件向外部输出数据的功能点,如生成报表、显示结果等。
  • 查询功能点(EQ):指软件从数据库中查询数据并返回结果的功能点。
功能点的权值

功能点的权值根据ISO/IEC 14143标准进行划分,具体如下表所示:

| 功能点类型 | 权值 | | ---------- | ---- | | EI | 3 | | EO | 4 | | EQ | 3 |

技术复杂性因素

技术复杂性因素用于考虑软件本身的技术难度,包括以下14个方面:

  1. 分布处理
  2. 性能要求
  3. 数据存储量
  4. 外部接口
  5. 输入输出格式
  6. 查询复杂度
  7. 多功能性
  8. 准确性要求
  9. 安全性要求
  10. 处理逻辑复杂度
  11. 并发性
  12. 特殊要求
  13. 数据交换
  14. 微代码

每个因素都有对应的加权值,将它们相加即可得到$TCF$的值。

环境复杂性因素

环境复杂性因素用于考虑软件开发和运行环境的复杂度,包括以下5个方面:

  1. 开发环境稳定性
  2. 开发环境复杂度
  3. 开发工具的经验
  4. 应用领域的经验
  5. 命令性操作

每个因素都有对应的加权值,将它们相加即可得到$ECF$的值。

示例

假设我们要计算一个软件的FP和LOC,它包括3个EIF,4个EO和2个EQ,平均代码行数为30。根据ISO/IEC 14143标准,我们可以得到每个功能点的权值:

  • EIF:3
  • EO:4
  • EQ:3

假设我们的软件的技术复杂性因素为1.15,环境复杂性因素为1.1,那么我们的FP和LOC可以通过以下公式计算得到:

$ UFP = 3 \times 3 + 4 \times 4 + 2 \times 3 = 25 $

$ AFP = UFP \times 1.15 \times 1.1 = 32 $

$ LOC = 32 \times 30 = 960 $

因此,我们的软件的FP为25,LOC为960。

总结

通过计算函数点,可以更加准确地估算软件的规模和工作量,提高软件开发过程中的管理和控制水平。在实际应用中,需要根据软件的实际情况进行计算和调整,确保得到更加准确的结果。