功能点(FP)度量已经被进一步扩展,以计算特征点(Feature Points)和三维功能点(3D Function Points)。这些扩展旨在更准确地描述复杂系统或特定类型的软件应用的功能性。本文将详细介绍这两种扩展形式。
1 特征点(Feature Points)
特征点是功能点度量的超集,适用于系统和工程软件应用程序,尤其是在算法复杂度高的环境中,如实时系统、嵌入式系统等。特征点通过计数信息域值并仅使用单一权重来计算。与传统FP不同的是,特征点引入了另一个测量参数——算法(ALGORITHM)。
1.1 特征点计算表
测量参数 | 数量 | 权重 |
---|---|---|
外部输入(EI) | 4 | |
外部输出(EO) | 5 | |
外部查询(EQ) | 4 | |
内部文件(ILF) | 7 | |
外部接口(EIF) | 7 | |
算法(ALGORITHMS) | 3 |
特征点最终通过以下公式计算:
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)
功能点和特征点都仅表示系统的功能。对于非常复杂的实时应用程序,特征点通常比使用标准FP计算得出的数量高出20%至35%。
2 三维功能点(3D Function Points)
为了更好地表示某些类型的应用程序,可以采用三个维度来定义3D功能点:数据维度、功能维度和控制维度。
- 数据维度:这部分的评估类似于FP的计算,包括对输入、输出、查询、外部接口和文件的计数。
- 功能维度:增加了“转换(Transformation)”这一特性,即输入转化为输出的一系列步骤。
- 控制维度:引入了“过渡(Transition)”,定义为状态之间的总转换次数。一个状态代表某种外部可观察 1的行为模式。
计算功能点 |测量参数|数量|权重因子|计算结果| |–|–|–|–| | | |简单|中等|复杂| |1. 外部输入数量(EI)|32|3|4|6(此处复杂情况为6,计算得128)| |2. 外部输出数量(EO)|60|4|5|7(计算得300)| |3. 外部查询数量(EQ)|24|3|4|6(计算得96)| |4. 内部文件数量(ILF)|8|7|10|15(计算得80)| |5. 外部接口数量(EIF)|2|5|7|10(计算得14)| |计数总计| | | |618|
现在,中等情况下fi=3。所以所有fi的总和(i从1到14) = 14×3 = 42。
FP = Count-total * [0.65 + 0.01 *∑(fi ) ]
= 618 * [0.65 + 0.01 * 42]
= 618 * [0.65 + 0.42]
= 618 * 1.07 = 661.26
3D-FP = {用户输入} * 4 + {用户输出} * 5 + {用户查询} * 4 + {内部文件} * 7 + {外部接口} * 7 + {算法} * 3 * {CAF} + {转换} * 15 * {CAF}
3D-FP = (12 * 4 + 60 * 5 + 9 * 4 + 6 * 7 + 3 * 7 + 36 * 3) * 1.07 + (36 * 15 * 1.07)
3D-FP = 853.86
2.1 示例计算
假设我们有一个嵌入式系统,具有以下特性:
- 内部数据结构 = 6
- 外部数据结构 = 3
- 用户输入数量 = 12
- 用户输出数量 = 60
- 用户查询数量 = 9
- 外部接口数量 = 3
- 转换数量 = 36
- 过渡数量 = 24
并且假设所有这些计数的复杂度都是高的。我们可以先绘制表格,然后根据嵌入式系统的加权因子和高复杂度进行计算。
测量参数 | 数量 | 权重因子 | 计算结果 |
---|---|---|---|
简单 | 中等 | 复杂 | |
1. 外部输入数量(EI) | 12 | 3 | 4 |
2. 外部输出数量(EO) | 60 | 4 | 5 |
3. 外部查询数量(EQ) | 9 | 3 | 4 |
4. 内部数据结构数量(ILF) | 6 | 7 | 10 |
5. 外部数据结构数量 | 3 | 5 | 7 |
6. 外部接口数量 | 3 | 5 | 7 |
7. 转换数量 | 36 | - | - |
8. 转移数量 | 24 | - | - |
计数总计 |
所以,对于三维功能点,所需的指标为756。