【公眾號 “專案管理研究所” 將會第一時間更新文章並[分享行業分析報告]】
歸檔於軟體專案管理初級學習路線
第六章 軟體專案成本計劃
《初級學習路線合集 》
前言
大家好,這節我們學習軟體專案管理---功能點估演算法。
- 最早提出功能點估演算法的是阿爾布雷克特,1979年在IBM工作時提出,稱為Albrecht功能點;
- 也稱為IFPUG(國際功能點使用者組織)功能點。
- 適用於資訊系統。
一、功能點估算
程式碼行估演算法與專案的實現語言等技術相關。而功能點估算與實現的語言和技術沒有關係,用系統的功能數量來測量專案規模,是通過評估,加權,量化得出功能點。
功能點公式:FP=UFC*TCF。其中UFC為未調整功能點計數,是未調整之前的數量。TCF是技術複雜度因子,是對UFC的調整因子。
二、未調整功能點計數(UFC)
UFC是從五個角度得出的。五個功能計數項:“外部輸入”,“外部輸出”,“外部查詢”,“外部介面檔案”,“內部邏輯檔案”。
1.外部輸入(External Inputs: EI):
給軟體提供面向應用的資料的項(如螢幕、表單、對話方塊、控制元件,檔案等);在這個過程中,輸入資料穿越外部邊界進入到系統內部。
例如:登入某個系統需要輸入使用者名稱和密碼等資訊。
外部輸入計數的大小可以通過輸入的檔案型別,資料元素等個數來進行決定權重,從而決定輸入計數。
2.外部輸出(External Outputs EO):
向使用者提供(經過處理的)面向應用的資訊,例如,報表和出錯資訊等。
同理,計數大小通過輸出的檔案型別,資料元素等個數進行決定權重,從而決定輸出的計數。
3.外部查詢(External Inquiry EQ) :
外部查詢是一個輸入引出一個即時的簡單輸出。沒有處理過程。同理,計數大小通過輸出的檔案型別,資料元素等個數進行決定權重,從而決定輸出的計數。
例如輸入的學號是0001,查出的結果是學生 張三,沒有處理過程。
4.外部介面檔案(External Interface Files EIF’s):
外部介面檔案是使用者可以識別的一組邏輯相關資料,這組資料只能被引用。用這些介面把資訊傳送給另一個系統。
介面檔案的權重通過其中的檔案技術型別和資料元素型別來進行決定,然後再決定計數。
5.內部邏輯檔案(Internal Logical Files: ILF’S):
使用者可以識別的一組邏輯相關的資料,而且完全存在於應用的邊界之內,並且通過外部輸入維護,是邏輯主檔案的數目。
例如關聯式資料庫中的一個表,或者系統中的一個檔案等...他們的權重是通過其中的檔案或者記錄型別,資料元素型別個數來進行決定權重,然後再決定計數。
最後我們看一下五個功能計數項的計數權重,他們的權重基本上通過檔案,技術型別或者資料元素型別的個數決定的,分三個等級,既高中低。
那麼國際功能點使用者組織(IFPUG)釋出FP計數的規則:
<IFPUG功能點估算方法使用指南>
這是外部輸入,輸出,查詢的定級表。
例如引用或者更新兩個檔案型別(FIR’S),並且有7個外部輸入資料元素,將定級為中級,相關的級數既外部輸入計數權重為4。
這是內部邏輯檔案和外部介面檔案的定級表,通過記錄元素型別和資料元素型別個數來決定他的高中低階別。
這是五個功能計數項的複雜度等級:
進行UFC計算的時候要計算各個功能計數項的個數(注意對應的計數權重),然後進行相加。
三、技術複雜度因子(TCF)
UFC只是功能點估算的一部分,為了確定功能點,還需要考慮技術實現的難度,他是從14個角度來看專案的複雜性。
這14個技術複雜度因子(注意:技術複雜度因子的取值範圍)相加後乘以0.01再加上0.65得出TCF。
TCF最大值為1.35,最小值為0.65,相當於UFC的計數調整區間是正負35%。如果UFC等於100,則可調動的區間是65——135。
四、功能點估算方法例子
這是某外貿訂單系統的用例圖
我們可以得出以下資訊,然後根據檔案型別,資料元素型別確定了級別既權重,最後計算了UFC等於45。
然後這專案14個技術複雜度因子,每個因子都有平均的影響,所以為3.既最後技術複雜度因子為 TCF=0.65+0.01143=1.07 。
五、其他功能點估算方法
Mark II 功能點方法主要應用在英國,是對阿爾布雷克特方法的一個改進。
阿爾布雷克特主要適用於資訊系統,他不適合於實時系統或者嵌入式系統,因此COSMIC-FFP功能點方法正好滿足這個條件。
我們知道程式碼行估演算法與實現的語言相關,功能點則不同,那麼這個表展示了功能點對應的不同語言程式碼行數,那麼他是通過經驗資料統計得出的。
總結
總之 功能點估算是從需求功能出發來估算,這節主要介紹阿爾布雷克特功能點方法,他適用於資訊系統,如果開發的是實時系統或者嵌入式系統可以採用COSMIC-FFP功能點方法。
到這裡,第六章 第二節 功能點估演算法就講解完畢了!下一節介紹用例點估演算法~
如果您覺得這篇文章有幫助到您的的話不妨點贊支援一下喲~~?
後續將持續更新【軟體專案管理初級學習路線】的全知識點,大家感興趣的多多關注博主喲~
————————————————