本篇主要介绍在功能点分析法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——复杂度——功能点数的对照表。我们只需按图索骥即可。 计算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——复杂度——功能点数的对照表
对于每一个文件(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个功能点。
转载于:https://blog.51cto.com/welkinhu/116954