FPA筆記二 FPA流程概述

有關什麼是功能點分析法,爲什麼要用功能點分析法的內容,請閱讀《FPA筆記一 概述
1.   計算功能點的總體流程

FPA的計算流程比較複雜,主要分爲三大步驟:定義分析目標;計算未調整功能點;計算調整功能點。具體圖示請參見圖一。

 

圖表 1 FPA 計算流程
FPA 的主要步驟如下:

1)      決定分析類型和目的:開發項目、升級項目、應用。小特性開發屬於應用類型。

2)      識別分析範圍和應用邊界。

3)      計算未經調整的功能點數UPFC

(1) 列出系統的所有功能,包括數據功能和處理功能。

(2) 計算每一個功能的功能點。

                                    i.              識別該功能的類型:ILFEIFEIEOEQ

                                  ii.              統計該功能包含元素的數目。數據功能統計DETRET;處理功能統計DETFTR

                                iii.              根據該功能包含元素的數目,和相應功能類型的複雜度矩陣,確定其複雜度。

                                 iv.              根據相應功能類型的複雜度和功能點對照表,找到改功能的功能點數。

(3) 統計所有功能的功能點總和。

4)      確定調整係數。根據14GSC確定VAF

5)      計算調整後的功能點:AFP = UPFC * VAF

 

 

1.1. 

 

Determine Type of Count
Identify Counting Scope and Application Boundary
Count Data Functions
Count Transactional Functions
Determine Unadjusted Function Point Count
Determine Value Adjustment Factor
Calculate Adjusted Function Point Count
定義分析類型

FPA可應用於各類軟件項目和應用系統。對於不同的項目和系統,FPA計算流程是一樣的,但一些具體算法和規則上各有不同。FPA的目的也不盡相同。分析類型有三種:
l  新開發項目 Development Project
估算或度量系統的所有新功能點,包括新增的或系統切換的功能。度量的目的有:
n  定義需求
n  爲項目計劃提供估算數據:工作量,成本,人員,進度。
n  度量質量。
n  度量生產率。
l  升級項目 Enhancement Project
估算或度量系統中變化的功能點,包括新增,改變,減少和系統切換的功能。
l  應用軟件Application
官方定義是度量已安裝的應用軟件的功能點。Appliction是指已經交付或從第三方獲得的軟件、軟件包。小軟件工具的開發也可算作應用類型。每次新開發項目完成後,都應當把交付的系統按應用軟件度量一次。度量應用軟件的目的有:
l  作爲升級項目的基線。
l  度量軟件質量
l  確定維護策略
l  確定維護的生產率
三種類型的分析關係如下圖所示。
圖表 2 項目FPA與應用FPA的關係

1.2.  定義範圍邊界

FPA是從用戶視角和系統見交互的角度來分解功能。只有嚴格的界定了分析的範圍和邊界,才能很好的識別和分解功能。基於用戶視角定義邊界,用戶能夠理解和描述邊界。

l  相關應用之間的邊界是由用戶看到的不同功能區域劃分,而不是由技術考慮來劃分。

l  應用之間的初始邊界不會因爲功能點分析而改變。

定義邊界的技巧

l  獲得一個系統的流程圖,在系統周圍畫上邊框,作爲邊界。

l  察看數據的維護方式。

l  察看數據的應用範圍。

 

2.   計算未調整功能點UFPC

未調整功能點是從具體功能的複雜度計算得到,它包括三個步驟:分解功能,分析功能的複雜度,根據複雜度確定功能點數。

2.1.  識別,分解具體功能

所有系統的具體功能都可分爲兩種:數據功能和處理功能。正確識別出數據功能和處理功能的數目是FPA的關鍵。
l  數據功能:指爲滿足用戶數據需求而提供的功能。它以文件爲單位計數。文件分爲兩類:ILFEIF
n  內部邏輯文件ILF :系統內部維護的文件,如系統創建和更新的文件。
n  外部接口文件EIF :被目標系統應用,但由外部系統維護的文件。
l  處理功能:指爲滿足用戶通過系統處理數據或控制信息而提供的功能。它以處理元爲單位計數。處理必然是發生在系統邊界內外的一個交互過程,可分爲三種:EIEOEQ
n  外部輸入EI :指處理來自系統外的文件的處理元。它的基本目的是維護一個或多個ILF,或者改變系統的行爲。
n  外部輸出 EO :指把文件發送到系統外的處理元。他的基本目的是給用戶提供處理的結果。EO包含至少一個邏輯處理運算過程。
n  外部查詢 EQ EQ也是指把文件發送到系統外的處理元。它的基本目的是爲用戶獲取指定的信息。EQ部包含邏輯處理運算過程。
請注意,FPA是從用戶角度分析系統的。這裏的文件和處理元也是從用戶角度來定義的,完全與實現技術無關。特被是文件,一定要時刻記住他僅僅是一組數據,與計算機文件沒有關係。
l  文件:一組用戶可識別的,有邏輯關聯的數據或控制信息。它不一定計算機系統實際產生,存儲或使用的文件。
l  處理元:對用戶有意義的最小活動單元。它與實際程序中的方法,進程和API無關。

 

2.2.  確定具體功能的複雜度

對於具體的文件和處理元,FPA採用三個指標度量其複雜度:RET,DETFTR。這些指標都是直觀的,可計量的。其中文件用RETDET來度量,處理元用DETFTR來度量。
l  記錄元素類型RET :在一個文件內,一個用戶可識別的數據元素組。
l  數據元素類型DET :用戶可識別的,不重複的字段。
l  引用文件類型FTR :處理涉及到的文件,包括讀取,更新和修改的文件。
FPA給概念術語的名稱都比較冗繁。個人感覺把這三個術語中的“類型(Type)”去掉,會更易懂。這裏的“類型(Type)”都是強調對相同的東西不能重複計算的。比如同一個ILF中的兩個RET都包含同一個DET,只能記爲一個DET

2.3.  數據功能點權重矩陣

對於每一個文件(ILFEIF),FPA是根據其複雜度來確定其功能點數。複雜度又根據文件所含的DETRET的數量分爲三級:低,中(平均)和高。
表格 1 文件功能點計算矩陣
DET個數

RET個數

1 ~ 19

20 ~50

 >= 50

 

複雜度

ILF 功能點數

EIF功能點數

1

7

5

2 ~ 5

10

7

>= 6

15

10

 

2.4.  處理功能點權重矩陣

同數據功能點類似,處理功能點也是根據三級複雜度確定的。而每個處理元的複雜度根據DETFTR計算得來。但EI EQEO三者的計算方法不盡相同。
表格 2 處理元複雜度矩陣
EI複雜度

EQEO複雜度

DET個數

RET個數

1 ~ 4

5 ~15

 >=16

DET個數

RET個數

1 ~ 5

6 ~19

 >= 20

1

1

2

2 ~ 3

>= 3

>= 4

從表中可見同樣文件作爲輸入要比輸出的複雜度高。

 

表格 3 處理元功能點計算表
複雜度

EIEQ功能點數

3

4

6

EO功能點數

4

5

7

2.5.  彙總未調整功能點

把系統中所有ILF, EIF,EI,EO,EQ的功能點數彙總,就是系統的總的未調整功能點數UFPC

3.   計算調整功能點AFP

未調整功能點數是從用戶角度計算得出的,完全沒有考慮不同系統或不同功能的實現複雜度。FPA通過分析14個通用系統特性(GSC)對系統的影響程度(DI)得出每個系統的功能點值調整因子VAT。最後根據VAF調整功能點數,得出在系統和功能點可類比的調整功能點數。UFPVATAFP三者的關係是:
AFP = UFP * VAT
請注意,一個系統只有一個VAT,它是所有14GSC分析彙總的結果

3.1.  通用系統特性GSC

GSC是由IFPUG統一指定的標準。一共有14GSC,適用於所有類型的系統和項目。
(1)    數據通訊 Data Communications
(2)    分佈式數據處理 Distributed Data Processing
(3)    性能 Performance
(4)    使用強度高的配置 Heavily Used Configuration
(5)    事務速度 Transaction Rate
(6)    在線數據輸入 Online Data Entry
(7)    最終用戶的效率 End-User Efficiency
(8)    在線更新(Online Update
(9)    複雜的處理 Complex Processing
(10)               可重用性 Reusability
(11)               安裝的簡易性 Installation Ease
(12)               運行的簡易性 Operational Ease
(13)               多場地 Multiple Sites
(14)               允許變更 Facilitate Change

 

3.2.  影響程度DITDI

GSC對系統的影響程度分爲6級,從05。各級定義如下:
0 不存在或者沒有影響

1 偶爾的影響

2 輕微的影響

3 中等的影響

4 顯著的影響

5 強烈的影響

IFPUG針對每一中GSC,給出了詳細的DI等級指南。對於一些實在沒有參考等級標準,用戶也可以自己定義。

14GSCDI都加起來,就得到系統的總影響程度TDI,即:TDI = (DI)

3.3.  值調整因子VAF

在得出TDI後,VAF按如下公式計算。
VAF = (TDI * 0.01 ) + 0.65

VAF只能在正負35%的範圍調整功能點數。

AFP = UFP * VAT

 

4.   不同項目的調整功能點AFP

4.1.  開發項目功能點

DFP = (UFP + CFP) * VAF
l  DFP 開發項目功能點。
l  UFP 項目應用的UFPC
l  CFP:額外的轉換功能的UFPC
l  VAFA:調整係數。

4.2.  升級項目功能點

EFP = (ADD + CHGA + CFP) * VAFA + DEL * VAFB
l  EFP:升級項目功能點。
l  ADD:升級項目新增UFPC。以升級後項目爲基準。
l  CHGA:升級項目改變的UFPC。以升級後項目爲基準。
l  CFP:額外的轉換功能的UFPC
l  VAFA:升級後的調整係數。
l  VAFB:升級前的調整係數。
l  DEL:升級項目中刪除的UFPC

4.3.  應用功能點

AFP = ADD * VAF
l  AFP:應用功能點
l  ADD:安裝的功能UFPC
l  VAF:調整係數。

4.4.  升級應用功能點

AFP = [( UFPB + ADD + CHGA) – (CHGB +DEL)] * VAFA
l  AFP:應用功能點
l  ADD:安裝的功能UFPC
l  VAFA:調整係數。
l  UFPB:升級前的UPFC
l  CHGA:升級後改變的UFPC
l  CHGB:升級前改變的UFPC ?!

 

5.   附錄

5.1.  度量功能點的工作量

很多公司不能推行FPA  ,並非主觀上認爲它沒用。其主要原因有二:
1.         沒有FPA的專家指導,不知從何做起,如何持續。
2.         迫於項目進度壓力,擔心FPA帶來大量額外的工作量。
這裏就推行FPA帶來的額外工作量,給出一些參考數據。大多數組織是平均每小時估算出100個功能點。具體如下:

 

項目/應用系統的規模

很小

很大

功能點數

5 ~ 20

20 ~ 100

100 ~ 500

500 ~ 10K

10K ~ 100K

C++代碼行

265 ~ 1K

1K ~ 5K

5K ~ 26K

26K ~ 500K

500K ~ 5M

開發工作量

0.5人天 ~ 1人月

1人月 ~ 10人月

10人月 ~ 72人月

72人月 ~ 200人年

200人年~ 8K人年

FPA工作量

15分鐘 ~ 30分鐘

30分鐘 ~ 1小時

1小時 ~ 5小時

5小時 ~ 100小時

100小時 ~ 1K小時

 

 

5.2.  推行FPA的建議

應當做的事情
l  得到老闆的支持和指導。
l  是度量成爲每一個人工作的一部分。
l  安排專人總管和支持度量活動,不一定是全職。
l  培訓技術人員和用戶。讓用戶有功能點的概念。
l  關注在項目團隊的收益上,不要一上來就資產管理什麼的。
l  提供自動化的支持。
l  與組織的過程模式整合。
l  度量的結果應當發佈出來,並得到利用。
不應當做的事情
l  不要覺得度量可有可無,或不可達到。
l  不要苛求完美的度量系統和環境。
l  不要依賴不準確的數據。
l  不要用於衡量個人的績效。

5.3.  術語表

術語

英文

中文

說明

FPA

Function Point Analysis

功能點分析法

 

UFP

Unadjusted Function Point

未調整的功能點

 

AFP

Adjusted Function Point

調整功能點

 

VAF

Value Adjustment Factor

值調整因子

 

ILF

Internal Logic File

內部邏輯文件

 

EIF

External Interface File

外部接口文件

 

EI

External Input

外部輸入

 

EO

External Output

外部輸出

 

EQ

External Query

外部查詢

 

GSC

General System Characteristic

通用系統特徵

 

DET

Data Element Types

數據元素類型

 

RET

Record Element Types

記錄元素類型

 

FTR

File Type Referenced

引用文件類型

 

DI

Degree of Influence

影響程度

 

TDI

Total Degree of Influence

整體影響程度

 

EP

Elementary Process

處理元

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章