軟件項目工作量評估方法很多,如代碼行法、類比法、WBS、故事點、用例點、NESMA、FPA、cosmic、COCOMOⅡ等。本文主要對功能點方法(FPA)簡述。
功能點 FPA 方法
(一) 簡介
FPA 是從用戶角度出發(fā)度量軟件規(guī)模的一種方法。它從用戶的角度出發(fā),將系統(tǒng)分為數(shù)據(jù)功能和事物功能兩大類,分別根據(jù)具體的規(guī)則來計算功能點,最后結合系統(tǒng)的特征因子來調整功能點數(shù), 從而得到最終的系統(tǒng)規(guī)模。
FPA 較適用于商業(yè)數(shù)據(jù)處理、管理信息系統(tǒng)的估算,因為它能更好地反映系統(tǒng)需求上的復雜度和數(shù)量。從滿足客戶需求的角度講,F(xiàn)PA 具有階段性,對用戶早期參與項目管理、項目經(jīng)理制定項目計劃更有意義。
(二) 重要概念
功能點估算法是從用戶視角出發(fā),對軟件的規(guī)模從邏輯設計的角度進行度量的標準方法。
在功能點估算的過程中,以下概念應貫穿始終:
1、 用戶視角
用戶視角(User View)是指功能點被用戶所認可,由用戶需求書面正式描述,且獨立于所采用的開發(fā)技術。
2、 穿越系統(tǒng)邊界
穿越系統(tǒng)邊界(Application Boundary)是指數(shù)據(jù)或控制信息由系統(tǒng)內發(fā)送到系統(tǒng)外,或由系統(tǒng)外發(fā)送到系統(tǒng)內。
是否穿越系統(tǒng)邊界是 FPA 重要的判斷標準。
3、 IPO 的異同
輸入(Input)、處理過程(Process)和輸出(Output)的同與不同亦是FPA 重要的判斷標準。
(三) FPA 估算方法基本步驟
1、 收集可得的文檔
文檔可以包括需求、數(shù)據(jù)/對象模型、類圖、數(shù)據(jù)流圖、用例、
過程描述、報表顯示、界面顯示、用戶手冊,以及其它軟件開發(fā)文檔。
2、 確定計數(shù)范圍和邊界并識別功能用戶需求
計數(shù)范圍和邊界需識別計數(shù)目的。不同的計數(shù)目的決定了計數(shù)范圍和軟件邊界的劃分。實際使用過程中通常為系統(tǒng)的管理邊界, 特殊系統(tǒng)會以架構為邊界。
3、 度量數(shù)據(jù)功能
數(shù)據(jù)功能的計算工序(Counting Procedures)包括以下活動:

FPA 將數(shù)據(jù)功能分為兩類,分別為內部邏輯文件(ILF)和外部接口文件(EIF)。
1) 識別內部邏輯文件 ILF
內部邏輯文件(Internal Logical File,簡稱ILF)是在系統(tǒng)邊界內部維護的一組用戶可識別的邏輯上相關的數(shù)據(jù)或控制信息。ILF 的首要目的是保存由被度量系統(tǒng)的一個或多個基本流程維護的數(shù)據(jù)。
2) 識別外部接口文件EIF
外部接口文件(External Interface File,簡稱 EIF)是用戶可識別的、邏輯相關的數(shù)據(jù)組或控制信息組,其由被度量應用所引用,但在另一應用邊界內維護。EIF 的主要目的是保存由被度量應
用的一個或多個基本過程引用的數(shù)據(jù)。這意味著一個應用的 EIF 必定是另一個應用的ILF。
3) 識別數(shù)據(jù)功能 DET
數(shù)據(jù)元素類型(Data Element Types,簡稱DETs)是指在一個
ILF 或EIF 內,用戶可認知的、唯一的、非重復的字段。如客戶姓名、年齡、地址、聯(lián)系方式等。
4) 識別數(shù)據(jù)功能 RET
記錄元素類型(Record Element Types,簡稱 RETs)是指在一個ILF 或EIF 內,用戶可認知的數(shù)據(jù)元素子集。如客戶的家庭信息為客戶信息的 RET
5) 確定ILF 或EIF 的貢獻度
根據(jù)每一個已確認的 ILF 和EIF 的復雜度(DETs 和RETs 數(shù)量),對其進行分類,并賦予未調節(jié)功能點數(shù)值(Unadjusted Function Points,簡稱UFP)的過程,即為確定其貢獻度

6) 確定ILF 或EIF 的貢獻度值
對用戶而言,ILF 與EIF 的業(yè)務意義是完全不同。因此,對于貢獻度相同的 ILF 和EIF,其未調節(jié)功能點值是不同的。

4、 度量事物功能
事物功能的計算工序(Counting Procedures)包括以下活動:

FPA 將事物功能分為三類,外部輸入(EI)、外部輸出(EO)和外部查詢(EQ)。
1) 識別外部輸入(EI):是處理來自系統(tǒng)邊界外部的數(shù)據(jù)或控制信息的一個基本過程。其首要目的(Primary Intent,簡稱 PI) 是維護一個或多個ILFs 或者去改變系統(tǒng)行為。
2) 識別外部輸出(EO):是發(fā)送數(shù)據(jù)或控制信息到系統(tǒng)邊界外部的一個基本過程。其首要目的(PI)是通過處理邏輯呈現(xiàn)信息給用戶,并非或者另外檢索數(shù)據(jù)或控制信息。
3) 識別外部查詢(EQ):是發(fā)送數(shù)據(jù)或控制信息到系統(tǒng)邊界外部的一個基本過程。其首要目的(PI)是通過從一個 ILF 或EIF 檢索數(shù)據(jù)或控制信息,呈現(xiàn)信息給用戶。
4) 基本過程
把功能用戶需求組合或分解為最小活動單元,滿足以下條件:
1) 對用戶有意義,構成一個完整的事務;
2) 自包含;
3) 使應用的業(yè)務保持持續(xù)狀態(tài),
例 :功能用戶需求要求提供維護員工信息的功能。該需求被分解為較小的工作單元,如添加員工信息、修改員工信息、刪除員工信息和查詢員工信息。
5) 識別事物功能 DET
數(shù)據(jù)元素類型(Data Element Types,簡稱DET)是指在一個EI、EO 或EQ 內,用戶可認知的、唯一的、非重復的字段。
6) 識別事物功能 FTR
引用文件類型(File Types Referenced,簡稱FTR)是指一個交易功能讀取或維護的一個ILF,或者一個交易功能所讀取的一個EIF。
7) 確定EI、EO 和EQ 的貢獻度
根據(jù)每一個已確認的 EI、EO 和EQ 的復雜度(FTRs 和DETs 數(shù)量),對其進行分類,并賦予未調節(jié)功能點數(shù)值(Unadjusted Function Points)的過程,即為確定其貢獻度。


8) 確定EI、EO 和EQ 的貢獻度
我們應注意到,貢獻度相同的 EI、EQ,其未調節(jié)功能點值是相同的;與EI、EQ 貢獻度相同的 EO,其未調節(jié)功能點值略高。

?。?、計算功能規(guī)模
1) 計算未調整功能點數(shù)
UFP= ILFs+EIFs+EIs+EOs+EQs
2) 確定系統(tǒng)調節(jié)因子
在實際軟件項目開發(fā)過程中因技術因素和環(huán)境因素會對軟件項目工作量有不同程度的影響??筛鶕?jù)組織級基準庫設定相關調整因子(System Adjustment Factor,簡稱SAF)。如應用類型、質量特征、開發(fā)語言、團隊背景、評估時點等。
計算調整后的功能點數(shù) AFP=UFP*SAF
3) 確定生產率PDR
可根據(jù)系統(tǒng)特點測算組織級系統(tǒng)基準生產率。4)測算工作量
工作量 AE=AFP*PDR
6、 報告功能點計數(shù)結果
將功能點計數(shù)過程和工作量計數(shù)結果編寫報告呈現(xiàn)給讀者。(中基數(shù)聯(lián)版權所有,轉載需標明出處。)
功能點 FPA 方法
(一) 簡介
FPA 是從用戶角度出發(fā)度量軟件規(guī)模的一種方法。它從用戶的角度出發(fā),將系統(tǒng)分為數(shù)據(jù)功能和事物功能兩大類,分別根據(jù)具體的規(guī)則來計算功能點,最后結合系統(tǒng)的特征因子來調整功能點數(shù), 從而得到最終的系統(tǒng)規(guī)模。
FPA 較適用于商業(yè)數(shù)據(jù)處理、管理信息系統(tǒng)的估算,因為它能更好地反映系統(tǒng)需求上的復雜度和數(shù)量。從滿足客戶需求的角度講,F(xiàn)PA 具有階段性,對用戶早期參與項目管理、項目經(jīng)理制定項目計劃更有意義。
(二) 重要概念
功能點估算法是從用戶視角出發(fā),對軟件的規(guī)模從邏輯設計的角度進行度量的標準方法。
在功能點估算的過程中,以下概念應貫穿始終:
1、 用戶視角
用戶視角(User View)是指功能點被用戶所認可,由用戶需求書面正式描述,且獨立于所采用的開發(fā)技術。
2、 穿越系統(tǒng)邊界
穿越系統(tǒng)邊界(Application Boundary)是指數(shù)據(jù)或控制信息由系統(tǒng)內發(fā)送到系統(tǒng)外,或由系統(tǒng)外發(fā)送到系統(tǒng)內。
是否穿越系統(tǒng)邊界是 FPA 重要的判斷標準。
3、 IPO 的異同
輸入(Input)、處理過程(Process)和輸出(Output)的同與不同亦是FPA 重要的判斷標準。
(三) FPA 估算方法基本步驟

文檔可以包括需求、數(shù)據(jù)/對象模型、類圖、數(shù)據(jù)流圖、用例、
過程描述、報表顯示、界面顯示、用戶手冊,以及其它軟件開發(fā)文檔。
2、 確定計數(shù)范圍和邊界并識別功能用戶需求
計數(shù)范圍和邊界需識別計數(shù)目的。不同的計數(shù)目的決定了計數(shù)范圍和軟件邊界的劃分。實際使用過程中通常為系統(tǒng)的管理邊界, 特殊系統(tǒng)會以架構為邊界。
3、 度量數(shù)據(jù)功能
數(shù)據(jù)功能的計算工序(Counting Procedures)包括以下活動:

FPA 將數(shù)據(jù)功能分為兩類,分別為內部邏輯文件(ILF)和外部接口文件(EIF)。
1) 識別內部邏輯文件 ILF
內部邏輯文件(Internal Logical File,簡稱ILF)是在系統(tǒng)邊界內部維護的一組用戶可識別的邏輯上相關的數(shù)據(jù)或控制信息。ILF 的首要目的是保存由被度量系統(tǒng)的一個或多個基本流程維護的數(shù)據(jù)。
2) 識別外部接口文件EIF
外部接口文件(External Interface File,簡稱 EIF)是用戶可識別的、邏輯相關的數(shù)據(jù)組或控制信息組,其由被度量應用所引用,但在另一應用邊界內維護。EIF 的主要目的是保存由被度量應
用的一個或多個基本過程引用的數(shù)據(jù)。這意味著一個應用的 EIF 必定是另一個應用的ILF。
3) 識別數(shù)據(jù)功能 DET
數(shù)據(jù)元素類型(Data Element Types,簡稱DETs)是指在一個
ILF 或EIF 內,用戶可認知的、唯一的、非重復的字段。如客戶姓名、年齡、地址、聯(lián)系方式等。
4) 識別數(shù)據(jù)功能 RET
記錄元素類型(Record Element Types,簡稱 RETs)是指在一個ILF 或EIF 內,用戶可認知的數(shù)據(jù)元素子集。如客戶的家庭信息為客戶信息的 RET
5) 確定ILF 或EIF 的貢獻度
根據(jù)每一個已確認的 ILF 和EIF 的復雜度(DETs 和RETs 數(shù)量),對其進行分類,并賦予未調節(jié)功能點數(shù)值(Unadjusted Function Points,簡稱UFP)的過程,即為確定其貢獻度

6) 確定ILF 或EIF 的貢獻度值
對用戶而言,ILF 與EIF 的業(yè)務意義是完全不同。因此,對于貢獻度相同的 ILF 和EIF,其未調節(jié)功能點值是不同的。

4、 度量事物功能
事物功能的計算工序(Counting Procedures)包括以下活動:

FPA 將事物功能分為三類,外部輸入(EI)、外部輸出(EO)和外部查詢(EQ)。
1) 識別外部輸入(EI):是處理來自系統(tǒng)邊界外部的數(shù)據(jù)或控制信息的一個基本過程。其首要目的(Primary Intent,簡稱 PI) 是維護一個或多個ILFs 或者去改變系統(tǒng)行為。
2) 識別外部輸出(EO):是發(fā)送數(shù)據(jù)或控制信息到系統(tǒng)邊界外部的一個基本過程。其首要目的(PI)是通過處理邏輯呈現(xiàn)信息給用戶,并非或者另外檢索數(shù)據(jù)或控制信息。
3) 識別外部查詢(EQ):是發(fā)送數(shù)據(jù)或控制信息到系統(tǒng)邊界外部的一個基本過程。其首要目的(PI)是通過從一個 ILF 或EIF 檢索數(shù)據(jù)或控制信息,呈現(xiàn)信息給用戶。
4) 基本過程
把功能用戶需求組合或分解為最小活動單元,滿足以下條件:
1) 對用戶有意義,構成一個完整的事務;
2) 自包含;
3) 使應用的業(yè)務保持持續(xù)狀態(tài),
例 :功能用戶需求要求提供維護員工信息的功能。該需求被分解為較小的工作單元,如添加員工信息、修改員工信息、刪除員工信息和查詢員工信息。
5) 識別事物功能 DET
數(shù)據(jù)元素類型(Data Element Types,簡稱DET)是指在一個EI、EO 或EQ 內,用戶可認知的、唯一的、非重復的字段。
6) 識別事物功能 FTR
引用文件類型(File Types Referenced,簡稱FTR)是指一個交易功能讀取或維護的一個ILF,或者一個交易功能所讀取的一個EIF。
7) 確定EI、EO 和EQ 的貢獻度
根據(jù)每一個已確認的 EI、EO 和EQ 的復雜度(FTRs 和DETs 數(shù)量),對其進行分類,并賦予未調節(jié)功能點數(shù)值(Unadjusted Function Points)的過程,即為確定其貢獻度。


8) 確定EI、EO 和EQ 的貢獻度
我們應注意到,貢獻度相同的 EI、EQ,其未調節(jié)功能點值是相同的;與EI、EQ 貢獻度相同的 EO,其未調節(jié)功能點值略高。

?。?、計算功能規(guī)模
1) 計算未調整功能點數(shù)
UFP= ILFs+EIFs+EIs+EOs+EQs
2) 確定系統(tǒng)調節(jié)因子
在實際軟件項目開發(fā)過程中因技術因素和環(huán)境因素會對軟件項目工作量有不同程度的影響??筛鶕?jù)組織級基準庫設定相關調整因子(System Adjustment Factor,簡稱SAF)。如應用類型、質量特征、開發(fā)語言、團隊背景、評估時點等。
計算調整后的功能點數(shù) AFP=UFP*SAF
3) 確定生產率PDR
可根據(jù)系統(tǒng)特點測算組織級系統(tǒng)基準生產率。4)測算工作量
工作量 AE=AFP*PDR
6、 報告功能點計數(shù)結果
將功能點計數(shù)過程和工作量計數(shù)結果編寫報告呈現(xiàn)給讀者。(中基數(shù)聯(lián)版權所有,轉載需標明出處。)