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