本篇主要介绍在功能点分析法FPA中,如何计算一个ILF/EIF都有多少个功能点。其中找到ILF/EIF中包含多少个DET和RET是关键。整个计算的步骤比较简单,可分为四小步。
1. 统计ILF/EIF中的数据元素类型DET。
2. 统计ILF/EIF中的记录元素类型RET。
3. 参照DET/RET——复杂度对照表,确定该ILF/EIF的复杂度。
4. 参照复杂度——功能点对照表,确定该ILF/EIF的功能点数。
虽然美其名曰“计算”功能点,其实英文是“Count”,并没有从DET/RET到功能点数的数学公式。IFPUG根据大量的项目统计数据,直接给出了DET/RET——复杂度——功能点数的对照表。我们只需按图索骥即可。
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——复杂度——功能点数的对照表
对于每一个文件(ILF或EIF),FPA是根据其复杂度来确定其功能点数。复杂度又根据文件所含的DET和RET的数量分为三级:低,中(平均)和高。
表格 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,多少个功能点呢?
它包含10个DET:客户姓名、客户编号、电话号码、街区、城市、州、邮政编码、电子邮件、有线电视盒编号、Modem地址。
它包含3个RET:互联网客户、有线电视客户、电话客户。
根据对照表,它包含7个功能点。