FP 把功能点划分为5类:
| 数据类型 | 分类 | 全拼 | 含义 | 描述 |
|---|---|---|---|---|
| ILF | 数据功能点(影响数据库设计复杂度的计算) | Internal Logical File | 内部逻辑文件是指一组以用户角度识别的,在应用程序边界内且被维护的逻辑相关数据或控制信息。ILF的主要目的是通过应用程序的一个或多个基本处理过程来维护数据。 | EIF识别方式:****--从用户角度出发识别的一组逻辑数据。--这组数据是在应用程序外部,并被应用程序引用的。-- 计算功能点的这个应用程序并不维护该EIF**-- 这组数据是**作为另一个应用程序中的ILF被维护的。 |
| EIF | External Interface File | 外部接口文件是指一组在应用程序边界内被查询,但它是在其他应用程序中被维护的,以用户角度来识别的,逻辑上相关的数据。因此一个应用程序中的EIF必然是其他应用程序中的ILF。EIF的主要目的是为边界内的应用程序提供一个或多个通过基础操作过程来引用的一组数据或信息 | ||
| EI | 事务功能点(人机交互)(影响程序开发复杂度的计算) | External Input | 外部输入 | |
| EO | External Output | 外部输出 | ||
| EQ | External Inquiry | 外部查询 |
复杂度计算:
| 复杂度 | 全拼 | 含义 | 描述 |
|---|---|---|---|
| RET | Record Element Type | 记录元类型 | 指一个EIF/ILF中用户可以识别的DET的集合。如果把DET简单理解为字段的话,那RET就可以简单理解为数据库中的表 |
| DET | Data Element Type | 数据元类型 | 以用户角度识别的,非重复的有业务逻辑意义的字段 |
| FTR | 文件引用类型 | 通俗理解就是涉及的逻辑文件数量,包括ILF和EIF,就是EI\EQ\EO所涉及到的ILF和EIF总和 |
在这3个复杂度参数中,RET和DET用来判断逻辑文件的复杂度,DET和FTR用来判断基本过程的复杂度,根据复杂度参数去对照决策表从而得到某个需求项的功能点数。每个组织都会提供决策表(根据组织的实际情况可定制)
DET计算规则:
- 通过一个基本处理过程的执行,对ILF进行维护或从ILF/EIF中返回一个特定的、用户可识别的、非重复的字段,那么每个这样的字段算一个DET。
例如:添加一个外贸订单时需要保存“订单号码、订单日期、地址、邮编”,那么对于ILF订单来说它的DET就是4个。
例如:保存订单时还会保存订单的明细,订单的明细往往作为一个子表进行保存,那么“订单号码”在主表和子表中都同时存在(主外键),但以用户角度来识别时,存盘操作是一个最小的单位,那么订单号码只能算做一个DET。
- 当两个应用程序维护和/或引用相同的ILF/EIF,但是每个应用程序分别维护/引用它们相应的DET时,这些DET在这两个应用程序的维护或引用中将单独计算。
例如一个应用程序的两个“Elementary Process”基本处理过程都需要使用到“地址”的信息,地址的信息又可以细分为“国家、城市、街道、邮编”。那么对于其中一个基本处理过程来说,他将整个地址信息作为一个整体进行处理,那就只算一个DET,另外一个基本处理过程使用每个地址的详细信息,那么DET就是4个。
RET计算规则:
RET在ILF/EIF中分为两种类型:可选的(Optional)和必选的(Mandatory)。
- 在一个ILF/EIF中每一个可选或必选的集合都被计算为一个RET。或者
- 如果一个ILF/EIF没有子集合,则ILF/EIF被计算为一个RET。
例如:在外贸订单系统中添加一个订单时会保存“订单信息、客户的ID、部门的ID”,那么订单系统ILF中RET为:
1、 订单信息(必选的)
2、 客户信息(必选的)
3、 部门信息(可选的)
因此ILF中RET的个数为3个。
ILF 复杂度的矩阵如下
| 1-19个DET | 20-50个DET | 51个以上DET | |
|---|---|---|---|
| 1个RET | 低(7) | 低(7) | 中等(10) |
| 2-5个RET | 低(7) | 中等(10) | 高(15) |
| 6个以上RET | 中等(10) | 高(15) | 高(15) |
EIF 复杂度的矩阵如下
| 1-19个DET | 20-50个DET | 51个以上DET | |
|---|---|---|---|
| 1个RET | 低(5) | 低(5) | 中等(7) |
| 2-5个RET | 低(5) | 中等(7) | 高(10) |
| 6个以上RET | 中等(7) | 高(10) | 高(10) |
EI 复杂度的矩阵如下
| 1-4个DET | 5-15个DET | 16个以上DET | |
|---|---|---|---|
| 0-1个FTR | 低(3) | 低(3) | 中等(4) |
| 2-3个FTR | 低(3) | 中等(4) | 高(6) |
| 4个以上FTR | 中等(4) | 高(6) | 高(6) |
EO 复杂度的矩阵如下
| 1-5个DET | 6-19个DET | 20个以上DET | |
|---|---|---|---|
| 0-1个FTR | 低(4) | 低(4) | 中等(5) |
| 2-3个FTR | 低(4) | 中等(5) | 高(7) |
| 4个以上FTR | 中等(5) | 高(7) | 高(7) |
EQ 复杂度的矩阵如下
| 1-5个DET | 6-19个DET | 20个以上DET | |
|---|---|---|---|
| 0-1个FTR | 低(3) | 低(3) | 中等(4) |
| 2个FTR | 低(3) | 中等(4) | 高(6) |
| 3个以上FTR | 中等(4) | 高(6) | 高(6) |