下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件項(xiàng)目的規(guī)模、工作量和成本是如何進(jìn)行估算的2010-08-23 來(lái)源:網(wǎng)絡(luò)1. 基于代碼行和功能點(diǎn)的估算 軟件項(xiàng)目的規(guī)模是影響軟件項(xiàng)目成本和工作量的主要因素。在基于代碼行(loc,line of code)和功能點(diǎn)(function point)的估算方法中,利用代碼行和功能點(diǎn)來(lái)表示軟件系統(tǒng)的規(guī)模,并通過(guò)對(duì)軟件項(xiàng)目規(guī)模的估算進(jìn)而來(lái)估算軟件項(xiàng)目的成本和工作量。顯然,一個(gè)軟件項(xiàng)目的代碼行數(shù)目越多,它的規(guī)模也就越大。軟件代碼行的數(shù)目易于度量,許多軟件開發(fā)組織和項(xiàng)目組都保留有以往軟件項(xiàng)目代碼行數(shù)目的記錄,這有助于在以往類似軟件項(xiàng)目代碼行記錄的基礎(chǔ)上對(duì)當(dāng)前軟件項(xiàng)目的規(guī)模進(jìn)行估算。用代碼行的數(shù)目來(lái)表示軟
2、件項(xiàng)目的規(guī)模簡(jiǎn)單易行,自然、直觀且易于度量。但是其缺點(diǎn)也非常明顯。在軟件開發(fā)初期很難估算出最終軟件系統(tǒng)的代碼行數(shù);軟件項(xiàng)目代碼行的數(shù)目通常依賴于程序設(shè)計(jì)語(yǔ)言的功能和表達(dá)能力;采用代碼行的估算方法會(huì)對(duì)那些設(shè)計(jì)精巧的軟件項(xiàng)目產(chǎn)生不利的影響;該方法只適合于過(guò)程式程序設(shè)計(jì)語(yǔ)言,不適合于非過(guò)程式程序設(shè)計(jì)語(yǔ)言(如函數(shù)式或者邏輯語(yǔ)言)。針對(duì)上述問(wèn)題,人們提出用軟件系統(tǒng)的功能數(shù)目來(lái)表示軟件系統(tǒng)的規(guī)模。1979年ibm的albrecht提出了計(jì)算功能點(diǎn)的方法。該方法需要對(duì)軟件系統(tǒng)的二個(gè)方面進(jìn)行評(píng)估,即評(píng)估軟件系統(tǒng)所需的內(nèi)部基本功能和外部基本功能,然后根據(jù)技術(shù)復(fù)雜度因子對(duì)這二個(gè)方面的評(píng)估結(jié)果進(jìn)行加權(quán)量化,產(chǎn)生軟件
3、系統(tǒng)功能點(diǎn)數(shù)目的具體計(jì)算值。具體的,以下是軟件系統(tǒng)功能點(diǎn)的計(jì)算公式。fp = ct (0.65 + 0.01sfi) (i=1.14)其中,ct是5個(gè)信息量的“加權(quán)和”,fi是14個(gè)因素的“復(fù)雜性調(diào)節(jié)值”(i =1.14),0.65和0.01是經(jīng)驗(yàn)常數(shù)。ct的計(jì)算方法如表 3所示,ct =(簡(jiǎn)單用戶輸入數(shù)3 一般用戶輸入數(shù)4復(fù)雜用戶輸入數(shù)6)+(簡(jiǎn)單用戶輸出數(shù)4一般用戶輸出數(shù)5復(fù)雜用戶輸出數(shù)7)+(簡(jiǎn)單用戶查詢數(shù)3一般用戶查詢數(shù)4復(fù)雜用戶查詢數(shù)6)+(簡(jiǎn)單文件數(shù)7一般文件數(shù)10復(fù)雜文件數(shù)15)+(簡(jiǎn)單外部界面數(shù)5一般外部界面數(shù)7復(fù)雜外部界面數(shù)10)。其中,用戶輸入數(shù)是指由用戶提供的、用來(lái)輸入的
4、應(yīng)用數(shù)據(jù)項(xiàng)的數(shù)目;用戶輸出數(shù)是指軟件系統(tǒng)為用戶提供的、向用戶輸出的應(yīng)用數(shù)據(jù)項(xiàng)的數(shù)目;用戶查詢數(shù)是指要求回答的交互式輸入的項(xiàng);文件數(shù)是指系統(tǒng)中主文件的數(shù)目;外部界面數(shù)是指機(jī)器可讀的文件數(shù)目(如磁盤或者磁帶中的數(shù)據(jù)文件)。表 3. ct值的加權(quán)計(jì)算參數(shù)取值加權(quán)加權(quán)因子 最終值簡(jiǎn)單一般復(fù)雜用戶輸入數(shù)346用戶輸出數(shù)457 用戶查詢數(shù)346 文件數(shù)71015 外部界面數(shù)5710 ct= fi(i=1.14)14個(gè)因素的“復(fù)雜性調(diào)節(jié)值”取值見表 4。表 4. fi的取值表序號(hào)i問(wèn)題fi的取值(0,1,2,3,4,5)0-沒有影響1-偶有影響2-輕微影響平均影響4-較大影響5-嚴(yán)重影響f1系統(tǒng)需要可靠的備
5、份和復(fù)原碼f2系統(tǒng)需要數(shù)據(jù)通信嗎f3系統(tǒng)有分布處理功能嗎f4性能是臨界狀態(tài)嗎f5系統(tǒng)是否在一個(gè)實(shí)用的操作系統(tǒng)下運(yùn)行f6系統(tǒng)需要聯(lián)機(jī)數(shù)據(jù)項(xiàng)嗎f7聯(lián)機(jī)數(shù)據(jù)項(xiàng)是否在多屏幕或多操作之間進(jìn)行切換f8需要聯(lián)機(jī)更新主文件嗎f9輸入、輸出、查詢和文件很復(fù)雜嗎f10內(nèi)部處理復(fù)雜嗎f11代碼需要被設(shè)計(jì)成可重用嗎f12設(shè)計(jì)中需要包括轉(zhuǎn)換和安裝嗎f13系統(tǒng)的設(shè)計(jì)支持不同組織的多次安裝嗎f14應(yīng)用的設(shè)計(jì)方便用戶修改和使用嗎例如,假設(shè)項(xiàng)目組要開發(fā)一個(gè)軟件項(xiàng)目a。根據(jù)用戶的需求描述,該軟件項(xiàng)目的ct取值如表 5所示。進(jìn)一步的,假設(shè)該軟件項(xiàng)目的14個(gè)復(fù)雜性調(diào)節(jié)值全部取平均程度。那么根據(jù)表 5可知,該軟件項(xiàng)目的ct=341,1
6、4個(gè)復(fù)雜性調(diào)節(jié)因素的累加值sfi=42,因而根據(jù)公式fp = ct (0.65 + 0.01sfi) (i=1.14)可知,該軟件項(xiàng)目的功能點(diǎn)fp=341 (0.65 + 0.0142) = 364.87,即該項(xiàng)目的功能點(diǎn)數(shù)目大致為364。表 5. 軟件項(xiàng)目a的ct值參數(shù)取值加權(quán)加權(quán)因子最終值簡(jiǎn)單一般復(fù)雜用戶輸入數(shù)63245656用戶輸出數(shù)746557103用戶查詢數(shù)23045636文件數(shù)0731031575外部界面數(shù)253741071ct=341用功能點(diǎn)來(lái)表示軟件項(xiàng)目規(guī)模的好處是:軟件系統(tǒng)的功能與實(shí)現(xiàn)該軟件系統(tǒng)的語(yǔ)言和技術(shù)無(wú)關(guān),而且在軟件開發(fā)的早期階段(如需求分析)就可通過(guò)對(duì)用戶需求的理解獲
7、得軟件系統(tǒng)的功能點(diǎn)數(shù)目,因而該方法可以較好地克服基于代碼行軟件項(xiàng)目規(guī)模表示方法的不足。其不足主要體現(xiàn)在:該方法沒有直接涉及算法的復(fù)雜度,不適合算法比較復(fù)雜的軟件系統(tǒng);功能點(diǎn)計(jì)算主要靠經(jīng)驗(yàn)公式,主觀因素比較多;此外計(jì)算功能點(diǎn)所需的數(shù)據(jù)不好采集。大量的實(shí)踐表明:針對(duì)特定的程序設(shè)計(jì)語(yǔ)言,軟件系統(tǒng)的功能點(diǎn)和代碼行二者之間存在某種對(duì)應(yīng)關(guān)系(如表 6所示)。根據(jù)該表的數(shù)據(jù),一個(gè)功能點(diǎn)如果用匯編語(yǔ)言來(lái)實(shí)現(xiàn)大約需要320行代碼,如果用c語(yǔ)言來(lái)實(shí)現(xiàn)大約需要150行代碼,如果用smalltalk語(yǔ)言來(lái)實(shí)現(xiàn)大約需要21行代碼。從另一個(gè)角度上看,該表反映了不同程序設(shè)計(jì)語(yǔ)言的描述能力是不一樣的。表 6. 功能點(diǎn)和代碼行
8、之間的轉(zhuǎn)換表序號(hào)程序設(shè)計(jì)語(yǔ)言代碼行/功能點(diǎn)1匯編語(yǔ)言3202c1503cobol1054fottran1055pascal916ada717pl/1658prolog/lisp649smalltalk2110代碼生成器15假設(shè)用l表示軟件系統(tǒng)的規(guī)模(或者用loc表示,或者用fp來(lái)表示)。針對(duì)一個(gè)具體的軟件項(xiàng)目,可以采用自頂向下或者自底向上等多種方式來(lái)估算出軟件項(xiàng)目規(guī)模的樂觀值a、悲觀值b和一般值m,然后根據(jù)以下公式估算出軟件項(xiàng)目規(guī)模的期望值e:e = (a + 4m + b)/6根據(jù)軟件項(xiàng)目規(guī)模的期望值e以及下列公式,就可以估算出軟件項(xiàng)目的成本和工作量。生產(chǎn)率pm = l / e其中,l表示軟
9、件項(xiàng)目的規(guī)模(單位:loc或者fp),e表示軟件工作量(單位:人月),pm表示單個(gè)人月能夠生產(chǎn)的功能點(diǎn)或者代碼行數(shù)。平均成本ckl = s / l其中,s為軟件項(xiàng)目總開銷,l表示軟件項(xiàng)目的規(guī)模(單位:loc或者fp), ckl表示每行代碼或者每個(gè)功能點(diǎn)的平均成本。對(duì)于一個(gè)特定的軟件開發(fā)組織或者項(xiàng)目組而言,其軟件生產(chǎn)率和平均成本在不同的軟件項(xiàng)目實(shí)施中可能是比較穩(wěn)定的。如果有以往軟件項(xiàng)目的歷史信息,可以很容易地獲得關(guān)于軟件開發(fā)組織或者項(xiàng)目組的pm和ckl值。因此,一旦估算出了軟件項(xiàng)目的規(guī)模,獲得了軟件開發(fā)組織或者項(xiàng)目組的pm和ckl的值,就可根據(jù)公式ckl = s / l計(jì)算出軟件項(xiàng)目的成本s =
10、 ckl l,也可根據(jù)公式pm = l / e計(jì)算出軟件項(xiàng)目的工作量e= l / pm。例如,假設(shè)項(xiàng)目組要開發(fā)一個(gè)軟件項(xiàng)目a,經(jīng)過(guò)估算該項(xiàng)目的規(guī)模是364個(gè)功能點(diǎn)。進(jìn)一步的,根據(jù)以往的歷史數(shù)據(jù),該項(xiàng)目組軟件開發(fā)的生產(chǎn)率是8fp/人月,每個(gè)功能點(diǎn)的平均成本為12000元人民幣,那么該軟件項(xiàng)目的開發(fā)成本s = 6800元人民幣 364 = 247,5200元人民幣,工作量為e= 364/ 8 = 45.5人月。基于經(jīng)驗(yàn)?zāi)P偷墓浪慊诮?jīng)驗(yàn)?zāi)P偷墓浪愀鶕?jù)以往軟件項(xiàng)目實(shí)施的經(jīng)驗(yàn)數(shù)據(jù)(如成本、工作量和進(jìn)度等)建立相應(yīng)的估算模型,并以此為基礎(chǔ)對(duì)軟件項(xiàng)目開發(fā)的有關(guān)屬性進(jìn)行估算。構(gòu)造性成本模型cocomo(co
11、nstructive cost model)是目前應(yīng)用最為廣泛的經(jīng)驗(yàn)?zāi)P椭弧T诙兰o(jì)七十年代后期,boehm對(duì)多達(dá)63個(gè)軟件項(xiàng)目的經(jīng)驗(yàn)數(shù)據(jù)進(jìn)行了分析和研究,在此基礎(chǔ)上于1981年提出了cocomo模型用于對(duì)軟件項(xiàng)目的規(guī)模、成本、進(jìn)度等方面進(jìn)行估算。boehm把cocomo模型分為基本、中間和詳細(xì)三個(gè)層次,分別支持軟件開發(fā)的三個(gè)不同階段?;綾ocomo模型用于估算整個(gè)軟件系統(tǒng)開發(fā)所需的工作量和開發(fā)時(shí)間,適合于軟件系統(tǒng)開發(fā)的初期。中間層次的cocomo模型用于估算各個(gè)子系統(tǒng)的工作量和開發(fā)時(shí)間,適合在獲得各個(gè)子系統(tǒng)信息之后對(duì)軟件項(xiàng)目的估算。詳細(xì)層次的cocomo模型用于估算獨(dú)立的軟構(gòu)件,適合在
12、獲得各個(gè)軟構(gòu)件信息之后對(duì)軟件項(xiàng)目的估算。由于篇幅限制,本書僅介紹基本cocomo模型,其模型形式描述如下。e = a * (kloc)b 。其中e是軟件系統(tǒng)的工作量(單位:人月) ,a和b是經(jīng)驗(yàn)常數(shù),其取值見表 7,kloc是軟件系統(tǒng)的規(guī)模(單位:千行代碼)。該公式描述了軟件系統(tǒng)的規(guī)模與工作量之間的關(guān)系。d = c * ed。其中d是開發(fā)時(shí)間(單位:月),c和d是經(jīng)驗(yàn)常數(shù),其取值見表 7。該公式描述了軟件系統(tǒng)的開發(fā)時(shí)間與工作量之間的關(guān)系。表 7. 基本cocomo模型參數(shù)的取值軟件類型abcd適用范圍組織型2.41.052.50.38各類應(yīng)用程序半獨(dú)立型3.01.122.50.35各類實(shí)用程序
13、、編譯程序等嵌入型3.61.202.50.32各類實(shí)時(shí)軟件、os、控制程序等cocomo模型是一個(gè)綜合經(jīng)驗(yàn)?zāi)P?,它考慮了諸多因素,因而是一個(gè)比較全面的估算模型。cocomo模型有許多參數(shù),其取值來(lái)至于經(jīng)驗(yàn)值。該估算模型比較實(shí)用、易于操作,在歐盟國(guó)家應(yīng)用較為廣泛。例如,針對(duì)上面所述的軟件項(xiàng)目a,如果已估算出該項(xiàng)目的軟件規(guī)模是33.3kloc,而且該項(xiàng)目屬于半獨(dú)立型,即cocomo模型中的參數(shù)a、b、c、d的取值分別是3.0、1.12、2.5、0.35,那么根據(jù)模型公式e =a * (kloc)b可以估算出該項(xiàng)目的工作量是3.0*(33.3)1.12,即152人月;然后根據(jù)公式d = c * ed
14、可以估算出該項(xiàng)目的開發(fā)時(shí)間是2.5*(152)0.35,即14.5月。2. 其它估算方法 其它估算方法包括:專家估算、類比估算等等。專家估算方法是由一組專家來(lái)對(duì)軟件項(xiàng)目所需的成本、工作量和進(jìn)度等進(jìn)行估算。一般地,這些專家具有應(yīng)用領(lǐng)域或者開發(fā)環(huán)境方面的知識(shí)、參與了以往類似軟件項(xiàng)目的開發(fā)。為了避免專家估算的片面性,專家估算方法一般要求每位專家給出估算的最小值a、可能值m和最大值b,然后計(jì)算出每位專家估算的平均值esti =(a+4m+b)/6,最后根據(jù)各位專家的估算情況計(jì)算出最終的估算值est=(est1+est2+est3+estn)/n。如果軟件開發(fā)組織或者項(xiàng)目組擁有一批經(jīng)驗(yàn)豐富的專家,可以考慮采用該方法。專家估算方法具有人為因素多、主觀因素大的特點(diǎn),一般應(yīng)用于軟件開發(fā)的初期階段,此時(shí)軟件項(xiàng)目組往往難以獲得估算軟件項(xiàng)目所需的各種數(shù)據(jù)和信息。類比估算方法是指估算人員根據(jù)以往類似軟件項(xiàng)目實(shí)施所積累下來(lái)的數(shù)據(jù),通過(guò)分析待開發(fā)軟件項(xiàng)目和以往軟件項(xiàng)目二者之間的相似性,估算出軟件項(xiàng)目的開發(fā)工作量、成本和進(jìn)度等。使用該方法的前
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通設(shè)施養(yǎng)護(hù)維修制度
- 2026湖北省定向西北工業(yè)大學(xué)選調(diào)生招錄參考題庫(kù)附答案
- 2026湖南財(cái)政經(jīng)濟(jì)學(xué)院招聘勞務(wù)派遣性質(zhì)工作人員參考題庫(kù)附答案
- 2026福建泉州市面向北京科技大學(xué)選優(yōu)生選拔引進(jìn)參考題庫(kù)附答案
- 2026福建省面向華中師范大學(xué)選調(diào)生選拔工作考試備考題庫(kù)附答案
- 2026福建福州第十九中學(xué)招聘編外行政人員(勞務(wù)派遣)1人考試備考題庫(kù)附答案
- 2026西藏林芝市察隅縣農(nóng)村公益電影放映人員招聘1人備考題庫(kù)附答案
- 2026遼寧大連產(chǎn)業(yè)園社招招聘?jìng)淇碱}庫(kù)附答案
- 2026陜西省面向南開大學(xué)招錄選調(diào)生備考題庫(kù)附答案
- 2026魯南技師學(xué)院第一批招聘教師8人參考題庫(kù)附答案
- 規(guī)范外賣企業(yè)管理制度
- 2026年公共部門人力資源管理試題含答案
- 2026年中國(guó)數(shù)聯(lián)物流備考題庫(kù)有限公司招聘?jìng)淇碱}庫(kù)有答案詳解
- 黑龍江省哈爾濱市師范大學(xué)附中2026屆數(shù)學(xué)高三第一學(xué)期期末質(zhì)量檢測(cè)模擬試題含解析
- DB32/T+5311-2025+港口與道路工程+固化土施工技術(shù)規(guī)范
- DB31T+1661-2025公共區(qū)域電子屏播控安全管理要求
- 醫(yī)療聯(lián)合體兒童保健服務(wù)模式創(chuàng)新
- 2025年河南農(nóng)業(yè)大學(xué)輔導(dǎo)員考試真題
- 2026年書記員考試題庫(kù)附答案
- 中國(guó)高尿酸血癥與痛風(fēng)診療指南(2024更新版)課件
- 2025至2030中國(guó)專用車行業(yè)發(fā)展分析及投資前景與戰(zhàn)略規(guī)劃報(bào)告
評(píng)論
0/150
提交評(píng)論