本篇主要介紹在功能點分析法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個功能點。