本篇主要介绍在功能点分析法FPA中,如何计算一个ILF/EIF都有多少个功能点。其中找到ILF/EIF中包含多少个DETRET是关键。整个计算的步骤比较简单,可分为四小步。
1.         统计ILF/EIF中的数据元素类型DET
2.         统计ILF/EIF中的记录元素类型RET
3.         参照DET/RET——复杂度对照表,确定该ILF/EIF的复杂度。
4.         参照复杂度——功能点对照表,确定该ILF/EIF的功能点数。
虽然美其名曰“计算”功能点,其实英文是“Count”,并没有从DET/RET到功能点数的数学公式。IFPUG根据大量的项目统计数据,直接给出了DET/RET——复杂度——功能点数的对照表。我们只需按图索骥即可。
计算ILF/EIF的功能点数,应当在列出所有的ILF/EIF后进行。本系列《FPA笔记三 数据功能的识别》介绍了如何是识别ILF/EIF

1.           数据元素类型DET

IFPUG CPM DET的定义是:A data element type is a unique user recognizable, non-repeated field。请注意,它是数据元素类型(Data Element Type),也就是说同一类型的数据元素只能记为一个DET。具体的计数规则有三条。
l  每一个满足下列所有条件的字段都要记为一个DET.
n  用户可识别的。
n  不重复的。
n  被某个处理元维护或获取的。
l  如果两个系统维护或引用了同一个ILF/EIF,每个系统只计自己维护或引用的DET
l  如果用户要求用一个字段来建立与其他ILF/EIF的关系,该字段要记为一个DET
 
不重复的数据元素类型这点很重要。比如一个员工信息的逻辑文件,既有员工自己的工号,也有员工主管的工号。这两个工号的类型相同,只能记为一个DET。但它们可能属于不同的RET
再比如,用户要求随同订单列出10条历史修改记录,这10条记录也只能记为一个DET
用户提供的逻辑文件,有可能包含很多在目标系统中不需要的信息。表述这些信息的数据元素,不会被系统内任何一个处理元维护和获取,所以不能统计在DET内。
 

2.           记录元素类型RET

IFPUG CPM定义:A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF。就像内容多的文章需要分章节一样,很多ILF/EIF需要将其数据分成好几组。每一个包含若干个DET的组就是一个RET。表现在GUI上,每一个RET通常会明显的与其他RET区分开。比如
l  Frame等框在一起的数据通常是一个RET。一组单选钮(Radio Button)不算,呵呵。
l  包含多步操作的向导中的,每一步通常展现一个RET
l  包含多个TAB页面的界面,每个TAB页面至少是一个RET
显然,这里的记录,与数据库和报表里的记录意义完全不同。它指的是逻辑文件里的数据元素块。我更愿意叫它“Data Element Block”。RET分为两种:可选的和必须的。
可选的RET是在添加或创建逻辑文件过程中,用户可用可不用的RET。必须的RET用户至少要用一次。其实从计数角度看,可选RET和必须RET没有区别。不必在此费神。
RET的计数规则有两条:
l  ILF/EIF中每一组可选的或必须的数据元素,记为一个RET
l  如果ILF/EIF不分组,就把整个ILF/EIF记为一个RET
 

3.           DET/RET——复杂度——功能点数的对照表

对于每一个文件(ILFEIF),FPA是根据其复杂度来确定其功能点数。复杂度又根据文件所含的DETRET的数量分为三级:低,中(平均)和高。
表格 1 逻辑文件功能点计算矩阵
DET 个数
RET 个数
1 ~ 19
20 ~50
 >= 50
 
复杂度
ILF 功能点数
EIF 功能点数
1
7
5
2 ~ 5
10
7
>= 6
15
10
 
FPA的这种对照表,优点是简单实用。缺点是过于粗糙,对于高复杂度的逻辑文件误差较大。不过东西是死的,人是活的。如果真的有一个逻辑文件的DET远远超过50个,或RET远远超过6个,就应当想想是否应当将其分成多个逻辑文件。
得到每一个ILF/EIF的功能点数后,把它们的功能点数简单加和起来,就是整个系统的数据功能点数了。

4.           案例——美国网络商店的客户信息

网络商店的客户信息,包含客户姓名、客户编号、电话号码、地址(街区、城市、州、邮政编码)这些基本信息。同时对于互联网客户,要包含电子邮件信息;对于有线电视客户,要包含有线电视盒编号;对于电话客户,要包含Modem地址。
这个客户信息包含多少个DET,多少个DET,多少个功能点呢?
它包含10DET:客户姓名、客户编号、电话号码、街区、城市、州、邮政编码、电子邮件、有线电视盒编号、Modem地址。
它包含3RET:互联网客户、有线电视客户、电话客户。
根据对照表,它包含7个功能点。