農林漁牧網

您現在的位置是:首頁 > 農業

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

2022-01-22由 新星軟體造價評估 發表于 農業

工作量大如何描述出來

功能點分析方法(Function Point Analysis,FPA)是一種可靠、有效的軟體規模度量方法,功能點分析方法(FPA)作為一種理解和交流系統規模的手段,針對使用者功能、效能的需求進行度量,具有可在專案早期進行度量,不依賴於專案的語言和技術等特點,

在可用性和客觀性方面都要優於傳統的程式碼行方法(LOC)

軟體工程專案建設中作為第三方的監理機構經常需要面臨一些問題,如專案建設初期在使用者需求不是很完善時,業主方需要了解專案的整體規模及合理專案進度安排;或者立項階段需要了解專案的總體投資額;專案開發期間,需要第三方評估機構能夠客觀地對其完成的工作量進行稽核與評估,確保其應得利益。

本文給出一種基於FPA方法與專家估演算法相結合為主的多演算法融合的方法,實現對軟體工作量的評估,並在多個專案中進行實踐,結果論證該方法既有可操作性又深受使用者的認可,下面就由新星諮詢為大家深入的對FPA功能點分析法進行解讀!

一、模型及估算方法

1、模型要素說明

FPA是一種用來度量軟體系統規模的方法。在FPA中,任何一個軟體系統都被看作是由外部輸入處理、外部輸出處理、外部查詢處理、內部邏輯檔案和外部參照檔案五種要素組成。估算系統中這五種要素的個數,並乘以適當的權值(權值即為每個要素的功能點數)就可以計算出系統的功能點數,進而估算出系統的規模。下圖是在FPA中用到的資訊系統模型。

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

FPA資訊系統模型圖

在圖中上述五種要素的含義如下:

1、

外部輸入處理EI

(External Input),是獲取資料的過程,對終端使用者的輸入進行相關的處理。

2、

外部查詢處理EQ

(External Inquiry),針對終端使用者的查詢情況,輸出相應的檢索結果。

3、

外部輸出處理EO

(External Output),是反饋資料的過程,完成對票據、報表等的輸出。

4、

內部邏輯檔案ILF

(Internal Logical File),在資訊系統內部,為了完成相關功能使用的邏輯檔案,包括順序檔案、資料庫表、臨時檔案等。

5、

外部檔案EIF

(External Interface File),該系統和外部其他資訊系統為交換資料而用的介面檔案。

其中前三種要素屬於處理,他們涵蓋了終端使用者和資訊系統物件之間存在的所可能的互動內容,只要明確了該系統和終端使用者的介面就可以正確估算上述三種處理。後兩種要素屬於檔案,系統功能確定後,使用檔案個數也可以被估算出來。

2、FPA功能點計算方法

完整的功能點計算流程包括6個步驟,如下圖計算功能點的流程圖所示:

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

計算功能點的流程

1)識別確定系統範圍:包括識別計數範圍和應用邊界。

計數範圍定義了將被包含在一個特定功能點計數中的功能。它識別了哪些功能應該被包含在功能點計數中從而為其提供答案。它的劃定是由執行功能點的目的決定的。比如,開發功能點計數包括專案活動所影響到的所有功能;升級功能點計數包括增加、修改和刪除的所有功能。

應用邊界定義了被計算系統和外部系統以及使用者之間的界限。邊界基於使用者的角度確定。被度量軟體與其他應用之間的邊界位置是主觀的,有時很難描繪一個應用從什麼地方開始,另一個應用從什麼地方結束。所以系統間的邊界界定應儘量從業務功能的角度去理解而不應該基於技術或物理上的考慮來劃定。應用邊界一經界定,並不會因計數範圍的改變而改變。

2)計算資料功能。

資料功能滿足了對資料的儲存或引用的功能性使用者需求。計數範圍內的所有資料功能應該被評估並求值。在計算資料功能時,首先會根據資料間的邏輯關係將資料劃分為一個個的邏輯檔案,接著根據是否被系統維護以及所在邊界內外確定每個邏輯檔案的型別,最後透過鑑定每個邏輯檔案的記錄元素型別(RET)和資料元素型別(DET)來確定其複雜度和功能點值(詳見表1-1、表1-2)。

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表1-1:內部邏輯檔案和外部介面檔案複雜度分級表

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表1-2:內部邏輯檔案和外部邏輯檔案的功能點值

3)計算事務功能。

事務功能表示應用提供給使用者的處理資料的功能,他的計算包括三個步驟:

(1)識別基本過程:對使用者有定義,本身有意義並且能夠保持業務持續性的最小活動單元都會被識別為基本過程。並且,基本過程必須保證唯一性,防止重複計算。

(2)識別出基本過程型別:根據其主要目的區分為外部輸入、外部輸出或者外部查詢。

(3)確定事務功能的複雜度:透過計數引用檔案型別(FTR:是指被事務功能讀取並/或者維護的資料功能)數和資料元素型別數確定事務功能的複雜度等級和功能點。(詳見表1-3、表1-4、表1-5)

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表1-3:外部輸入複雜度分級表

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表1-4:外部輸出和外部查詢複雜度分級表

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表1-5:三種事務功能在不同複雜度評級下的功能點值

4)計算未調整功能點值。

除了資料功能和事務功能五種元件之外,功能點分析方法還定義了值調整因子(Value Adjustment Factor,V AF)。前面介紹的資料功能和事務功能是從使用者的角度對系統做的劃分,它考慮的是系統的功能需求。但是,一個系統開發除了滿足客戶的功能需求之外,必須同時滿足客戶對系統的非功能需求,如質量需求和技術需求。值調整因子正是基於這一考慮而引入的。它的基礎是14項通用系統特性,其中每一項通用系統特性都與系統開發中某一方向的使用者非功能性需求相聯絡。表1-6列出了14項通用系統特性以及特性描述。

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表1-6:十四項通用系統特性及其調整係數

5)確定值調整因子。

值調整因子的計算公式:

TDI =∑DI i (i=1 to 14)VAF = (TDI× 0。01) + 0。65

其中VAF代表值調整因子:TDI代表總影響程度,由14個通用系統特徵的影響程度(DI)累加得到。

6)計算調整後功能點值。

開發專案功能點計數:DFP = UFP × VAF

其中DFP是開發專案功能點,UFP是安裝後可用功能的未調整功能點,VAF是指調整因子。

3、專家判斷模型

這一模型中,專家依據他們的知識、經驗、以及對專案的理解來給出工作量估算值。在歷史資料不存在的情況,這一方法是非常有價值的。但是專家判斷法往往受到專家的經驗以及主觀性所限制,如個人偏見或對專案的不熟悉等。為避免以上現象採用專家組討論的形式進行工作量評估。這裡,給出的工作量評估模型描述如下:

1)協調人為每個估算專家提供一份系統需求說明和估算單;

2)協調人召開小組會議,就當前專案有關估算的問題進行討論;

3)估算專家匿名提交單獨得到估算值;

4)協調人在一張迭代表單上總結所有專家得到的估算結果並召開小組會議,討論估算值中的差異。

5)小組投票表決是否接受這個估算值的均值,如果不接受則回到步驟三。

6)重複步驟三步驟五的過程直到得出一個足夠收斂的估算結果。

4、綜合評估演算法

1)軟體規模綜合評估的計算。結合軟體系統的需求文件、技術實施方案,分別採用功能點法、專家判斷法等多種估算方法計算軟體系統的規模即功能點數,單位:個。

按照各自方法確定的功能點數,根據評估物件確定兩類方法在本次評估中的重要程度進行加權平均,最終形成軟體專案最後的功能點數。

2)平均生產定額:根據專案的實施特點、技術複雜程度、承建單位所屬地區等因素,透過類比和專家評估,綜合確定工作人員每人每天承擔的基準功能點數。單位:個/人日。3)工作量:根據專案總體的範圍定義,完成某項工作(軟體系統、模組等)所需要的總人日數。工作量的單位:人日。

4)人日單價:這裡,根據遼寧省軟體行業報價慣例,人日單價為800元/人日。(包含差旅費、交通費、人員管理費、餐補。)

5)工作量分配比例:按軟體系統生命週期的不同階段對應的基準工作量比例參考值:專案管理:需求調研:設計:開發:測試:實施支援= 0。5:1:1:2:1:0。5。

6)系統成本:經過評估後該專案建設最終的整體投資額。單位:萬元。

具體計算模型:

工作量= 軟體系統規模÷生產定額系統成本=工作量×人日單價

案例應用

新星諮詢就以東北電網有限公司做的“財務集約化系統”工作量評估專案為例項,簡單闡述應用基於FPA的軟體工作量綜合評估法對該系統軟體的如何進行工作量評估。(以一個小模組為例項)

1、系統規模估算

1)採用FPA的方法估算“排程子系統”的工作量,整體工作量為2572;

2)組織5名資訊化建設方面的專家(其中包括從事過類似專案建設的專家)組成專家評估小組,對該子系統需求文件及技術建設方案進行研究,最終評估出結果為2588;

3)本次FPA和專家判斷法重要程度相同,因此權重分別為1,則最後的評估結果為2580。

具體詳見表2-1系統規模評估結果明細表;

4)在專家不清楚FPA方法評估結果的前提下得出的功能點數與FPA得到的功能點數很接近,從而相互驗證了評估結果的有效性。

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表2-1系統規模評估結果明細表

2、系統工作量估算

軟體專案建設主要包括需求階段、設計階段、開發階段、測試階段、實施培訓及試執行階段,專案管理貫穿整個專案建設階段,根據相關資料描述這些階段工作量佔總工作量的比例分配為“專案管理:需求調研:設計:開發:測試:實施支援= 0。5:1:1:2:1:0。5”,基於該比例關係確定比例係數((1/12):(1/6):(1/6):(1/3):(1/6):(1/12))。平均生產定額根據專案不同階段參與人員的技術水平、工作能力的不同其具體定額值也略有差異,平均生產定額值透過專家評估而確定。透過模型公式專案總體評估工作量為492人日,具體各階段人日分佈情況詳見表3-2工作量評估明細表。

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

表2-2工作量評估明細表

3、系統成本估算

根據遼寧省內軟體行業慣例及相關行業檔案確定遼寧省內人日單價費為800元/人日,其中包括差旅費、交通費、通訊費、餐費。根據公式:系統成本= 工作量×人日單價。

軟體開發工作量評估:基於FPA功能點分析法的深入解讀

總結

基於FPA的軟體工作量綜合評估方法的應用,已經得到使用者的認可,實踐表明了綜合評估方法的有效性和可操作性。隨著方法的研究與應用將完善軟體監理專案中對系統軟體工作量的評估,並且推動監理平臺對IT諮詢業務的開展。該方法還需繼續完善,為了更加準確的對軟體專案工作量的評估,還需要不斷完善軟體專案歷史經驗庫,相關資料越豐富,得到的評估結果就越客觀。