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