功能點分析方法(Function Point Analysis,F(xiàn)PA)是一種可靠、有效的軟件規(guī)模度量方法,功能點分析方法(FPA)作為一種理解和交流系統(tǒng)規(guī)模的手段,針對用戶功能、性能的需求進行度量,具有可在項目早期進行度量,不依賴于項目的語言和技術(shù)等特點,在可用性和客觀性方面都要優(yōu)于傳統(tǒng)的代碼行方法(LOC)。
軟件工程項目建設中作為第三方的監(jiān)理機構(gòu)經(jīng)常需要面臨一些問題,如項目建設初期在用戶需求不是很完善時,業(yè)主方需要了解項目的整體規(guī)模及合理項目進度安排;或者立項階段需要了解項目的總體投資額;項目開發(fā)期間,需要第三方評估機構(gòu)能夠客觀地對其完成的工作量進行審核與評估,確保其應得利益。
本文給出一種基于FPA方法與專家估算法相結(jié)合為主的多算法融合的方法,實現(xiàn)對軟件工作量的評估,并在多個項目中進行實踐,結(jié)果論證該方法既有可操作性又深受用戶的認可,下面就由新星咨詢?yōu)榇蠹疑钊氲膶PA功能點分析法進行解讀!
一、模型及估算方法
1、模型要素說明
FPA是一種用來度量軟件系統(tǒng)規(guī)模的方法。在FPA中,任何一個軟件系統(tǒng)都被看作是由外部輸入處理、外部輸出處理、外部查詢處理、內(nèi)部邏輯文件和外部參照文件五種要素組成。估算系統(tǒng)中這五種要素的個數(shù),并乘以適當?shù)臋?quán)值(權(quán)值即為每個要素的功能點數(shù))就可以計算出系統(tǒng)的功能點數(shù),進而估算出系統(tǒng)的規(guī)模。下圖是在FPA中用到的信息系統(tǒng)模型。
FPA信息系統(tǒng)模型圖
在圖中上述五種要素的含義如下:
- 1、外部輸入處理EI(External Input),是獲取數(shù)據(jù)的過程,對終端用戶的輸入進行相關(guān)的處理。
- 2、外部查詢處理EQ(External Inquiry),針對終端用戶的查詢情況,輸出相應的檢索結(jié)果。
- 3、外部輸出處理EO(External Output),是反饋數(shù)據(jù)的過程,完成對票據(jù)、報表等的輸出。
- 4、內(nèi)部邏輯文件ILF(Internal Logical File),在信息系統(tǒng)內(nèi)部,為了完成相關(guān)功能使用的邏輯文件,包括順序文件、數(shù)據(jù)庫表、臨時文件等。
- 5、外部文件EIF(External Interface File),該系統(tǒng)和外部其他信息系統(tǒng)為交換數(shù)據(jù)而用的接口文件。
其中前三種要素屬于處理,他們涵蓋了終端用戶和信息系統(tǒng)對象之間存在的所可能的交互內(nèi)容,只要明確了該系統(tǒng)和終端用戶的接口就可以正確估算上述三種處理。后兩種要素屬于文件,系統(tǒng)功能確定后,使用文件個數(shù)也可以被估算出來。
2、FPA功能點計算方法
完整的功能點計算流程包括6個步驟,如下圖計算功能點的流程圖所示:
計算功能點的流程
1)識別確定系統(tǒng)范圍:包括識別計數(shù)范圍和應用邊界。
計數(shù)范圍定義了將被包含在一個特定功能點計數(shù)中的功能。它識別了哪些功能應該被包含在功能點計數(shù)中從而為其提供答案。它的劃定是由執(zhí)行功能點的目的決定的。比如,開發(fā)功能點計數(shù)包括項目活動所影響到的所有功能;升級功能點計數(shù)包括增加、修改和刪除的所有功能。
應用邊界定義了被計算系統(tǒng)和外部系統(tǒng)以及用戶之間的界限。邊界基于用戶的角度確定。被度量軟件與其他應用之間的邊界位置是主觀的,有時很難描繪一個應用從什么地方開始,另一個應用從什么地方結(jié)束。所以系統(tǒng)間的邊界界定應盡量從業(yè)務功能的角度去理解而不應該基于技術(shù)或物理上的考慮來劃定。應用邊界一經(jīng)界定,并不會因計數(shù)范圍的改變而改變。
2)計算數(shù)據(jù)功能。
數(shù)據(jù)功能滿足了對數(shù)據(jù)的存儲或引用的功能性用戶需求。計數(shù)范圍內(nèi)的所有數(shù)據(jù)功能應該被評估并求值。在計算數(shù)據(jù)功能時,首先會根據(jù)數(shù)據(jù)間的邏輯關(guān)系將數(shù)據(jù)劃分為一個個的邏輯文件,接著根據(jù)是否被系統(tǒng)維護以及所在邊界內(nèi)外確定每個邏輯文件的類型,最后通過鑒定每個邏輯文件的記錄元素類型(RET)和數(shù)據(jù)元素類型(DET)來確定其復雜度和功能點值(詳見表1-1、表1-2)。
表1-1:內(nèi)部邏輯文件和外部接口文件復雜度分級表
表1-2:內(nèi)部邏輯文件和外部邏輯文件的功能點值
3)計算事務功能。
事務功能表示應用提供給用戶的處理數(shù)據(jù)的功能,他的計算包括三個步驟:
(1)識別基本過程:對用戶有定義,本身有意義并且能夠保持業(yè)務持續(xù)性的最小活動單元都會被識別為基本過程。并且,基本過程必須保證唯一性,防止重復計算。
(2)識別出基本過程類型:根據(jù)其主要目的區(qū)分為外部輸入、外部輸出或者外部查詢。
(3)確定事務功能的復雜度:通過計數(shù)引用文件類型(FTR:是指被事務功能讀取并/或者維護的數(shù)據(jù)功能)數(shù)和數(shù)據(jù)元素類型數(shù)確定事務功能的復雜度等級和功能點。(詳見表1-3、表1-4、表1-5)
表1-3:外部輸入復雜度分級表
表1-4:外部輸出和外部查詢復雜度分級表
表1-5:三種事務功能在不同復雜度評級下的功能點值
4)計算未調(diào)整功能點值。
除了數(shù)據(jù)功能和事務功能五種組件之外,功能點分析方法還定義了值調(diào)整因子(Value Adjustment Factor,V AF)。前面介紹的數(shù)據(jù)功能和事務功能是從用戶的角度對系統(tǒng)做的劃分,它考慮的是系統(tǒng)的功能需求。但是,一個系統(tǒng)開發(fā)除了滿足客戶的功能需求之外,必須同時滿足客戶對系統(tǒng)的非功能需求,如質(zhì)量需求和技術(shù)需求。值調(diào)整因子正是基于這一考慮而引入的。它的基礎(chǔ)是14項通用系統(tǒng)特性,其中每一項通用系統(tǒng)特性都與系統(tǒng)開發(fā)中某一方向的用戶非功能性需求相聯(lián)系。表1-6列出了14項通用系統(tǒng)特性以及特性描述。
表1-6:十四項通用系統(tǒng)特性及其調(diào)整系數(shù)
5)確定值調(diào)整因子。
值調(diào)整因子的計算公式:
TDI =∑DI i (i=1 to 14)VAF = (TDI× 0.01) 0.65
其中VAF代表值調(diào)整因子:TDI代表總影響程度,由14個通用系統(tǒng)特征的影響程度(DI)累加得到。
6)計算調(diào)整后功能點值。
開發(fā)項目功能點計數(shù):DFP = UFP × VAF
其中DFP是開發(fā)項目功能點,UFP是安裝后可用功能的未調(diào)整功能點,VAF是指調(diào)整因子。
3、專家判斷模型
這一模型中,專家依據(jù)他們的知識、經(jīng)驗、以及對項目的理解來給出工作量估算值。在歷史數(shù)據(jù)不存在的情況,這一方法是非常有價值的。但是專家判斷法往往受到專家的經(jīng)驗以及主觀性所限制,如個人偏見或?qū)椖康牟皇煜さ?。為避免以上現(xiàn)象采用專家組討論的形式進行工作量評估。這里,給出的工作量評估模型描述如下:
1)協(xié)調(diào)人為每個估算專家提供一份系統(tǒng)需求說明和估算單;
2)協(xié)調(diào)人召開小組會議,就當前項目有關(guān)估算的問題進行討論;
3)估算專家匿名提交單獨得到估算值;
4)協(xié)調(diào)人在一張迭代表單上總結(jié)所有專家得到的估算結(jié)果并召開小組會議,討論估算值中的差異。
5)小組投票表決是否接受這個估算值的均值,如果不接受則回到步驟三。
6)重復步驟三步驟五的過程直到得出一個足夠收斂的估算結(jié)果。
4、綜合評估算法
1)軟件規(guī)模綜合評估的計算。結(jié)合軟件系統(tǒng)的需求文檔、技術(shù)實施方案,分別采用功能點法、專家判斷法等多種估算方法計算軟件系統(tǒng)的規(guī)模即功能點數(shù),單位:個。
按照各自方法確定的功能點數(shù),根據(jù)評估對象確定兩類方法在本次評估中的重要程度進行加權(quán)平均,最終形成軟件項目最后的功能點數(shù)。
2)平均生產(chǎn)定額:根據(jù)項目的實施特點、技術(shù)復雜程度、承建單位所屬地區(qū)等因素,通過類比和專家評估,綜合確定工作人員每人每天承擔的基準功能點數(shù)。單位:個/人日。3)工作量:根據(jù)項目總體的范圍定義,完成某項工作(軟件系統(tǒng)、模塊等)所需要的總?cè)巳諗?shù)。工作量的單位:人日。
4)人日單價:這里,根據(jù)遼寧省軟件行業(yè)報價慣例,人日單價為800元/人日。(包含差旅費、交通費、人員管理費、餐補。)
5)工作量分配比例:按軟件系統(tǒng)生命周期的不同階段對應的基準工作量比例參考值:項目管理:需求調(diào)研:設計:開發(fā):測試:實施支持= 0.5:1:1:2:1:0.5。
6)系統(tǒng)成本:經(jīng)過評估后該項目建設最終的整體投資額。單位:萬元。
具體計算模型:
工作量= 軟件系統(tǒng)規(guī)?!律a(chǎn)定額系統(tǒng)成本=工作量×人日單價
案例應用
新星咨詢就以東北電網(wǎng)有限公司做的“財務集約化系統(tǒng)”工作量評估項目為實例,簡單闡述應用基于FPA的軟件工作量綜合評估法對該系統(tǒng)軟件的如何進行工作量評估。(以一個小模塊為實例)
1、系統(tǒng)規(guī)模估算
1)采用FPA的方法估算“調(diào)度子系統(tǒng)”的工作量,整體工作量為2572;
2)組織5名信息化建設方面的專家(其中包括從事過類似項目建設的專家)組成專家評估小組,對該子系統(tǒng)需求文檔及技術(shù)建設方案進行研究,最終評估出結(jié)果為2588;
3)本次FPA和專家判斷法重要程度相同,因此權(quán)重分別為1,則最后的評估結(jié)果為2580。
具體詳見表2-1系統(tǒng)規(guī)模評估結(jié)果明細表;
4)在專家不清楚FPA方法評估結(jié)果的前提下得出的功能點數(shù)與FPA得到的功能點數(shù)很接近,從而相互驗證了評估結(jié)果的有效性。
表2-1系統(tǒng)規(guī)模評估結(jié)果明細表
2、系統(tǒng)工作量估算
軟件項目建設主要包括需求階段、設計階段、開發(fā)階段、測試階段、實施培訓及試運行階段,項目管理貫穿整個項目建設階段,根據(jù)相關(guān)資料描述這些階段工作量占總工作量的比例分配為“項目管理:需求調(diào)研:設計:開發(fā):測試:實施支持= 0.5:1:1:2:1:0.5”,基于該比例關(guān)系確定比例系數(shù)((1/12):(1/6):(1/6):(1/3):(1/6):(1/12))。平均生產(chǎn)定額根據(jù)項目不同階段參與人員的技術(shù)水平、工作能力的不同其具體定額值也略有差異,平均生產(chǎn)定額值通過專家評估而確定。通過模型公式項目總體評估工作量為492人日,具體各階段人日分布情況詳見表3-2工作量評估明細表。
表2-2工作量評估明細表
3、系統(tǒng)成本估算
根據(jù)遼寧省內(nèi)軟件行業(yè)慣例及相關(guān)行業(yè)文件確定遼寧省內(nèi)人日單價費為800元/人日,其中包括差旅費、交通費、通訊費、餐費。根據(jù)公式:系統(tǒng)成本= 工作量×人日單價。
總結(jié)
基于FPA的軟件工作量綜合評估方法的應用,已經(jīng)得到用戶的認可,實踐表明了綜合評估方法的有效性和可操作性。隨著方法的研究與應用將完善軟件監(jiān)理項目中對系統(tǒng)軟件工作量的評估,并且推動監(jiān)理平臺對IT咨詢業(yè)務的開展。該方法還需繼續(xù)完善,為了更加準確的對軟件項目工作量的評估,還需要不斷完善軟件項目歷史經(jīng)驗庫,相關(guān)數(shù)據(jù)越豐富,得到的評估結(jié)果就越客觀。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。