• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于敏捷開發(fā)項目工作量的估計方法研究

      2014-09-08 10:17:35沈春元
      雷達與對抗 2014年1期
      關(guān)鍵詞:工作量權(quán)值誤差

      沈春元 ,陸 峻

      (1.海軍駐南京地區(qū)雷達系統(tǒng)軍事代表室,南京210003; 2.中國船舶重工集團公司第七二四研究所,南京211153)

      基于敏捷開發(fā)項目工作量的估計方法研究

      沈春元1,陸 峻2

      (1.海軍駐南京地區(qū)雷達系統(tǒng)軍事代表室,南京210003; 2.中國船舶重工集團公司第七二四研究所,南京211153)

      敏捷開發(fā)是當前非常流行的一種軟件開發(fā)方法,而常用的軟件工作量估計方法針對敏捷開發(fā)項目效果并不好。為能準確估算出敏捷開發(fā)項目的工作量,研究一種基于神經(jīng)網(wǎng)絡(luò)工作量估算模型,以適用于敏捷開發(fā)項目的工作量估計。

      敏捷開發(fā);工作量估計;神經(jīng)網(wǎng)絡(luò)

      0 引 言

      “軟件危機”是在上世紀60年代末在第一屆北大西洋公約組織軟件工程會議上首次出現(xiàn)的。產(chǎn)生“軟件危機”的主要原因之一是:對軟件開發(fā)成本、所耗費的資源以及軟件開發(fā)所需時間的估算準確程度不能滿足實際的需要。經(jīng)過近半世紀的歲月,“軟件危機”這個術(shù)語所蘊涵的軟件項目超時、超支等問題依然困擾著軟件行業(yè)[1],究其原因,軟件項目估算不準確與需求不穩(wěn)定是最普遍的兩個原因[2]。

      軟件估算是對軟件項目成本、開發(fā)時間以及工作量等的估測,其活動貫穿于軟件項目開發(fā)的各個階段。軟件估算是軟件項目管理的關(guān)鍵組成部分。軟件項目估算的準確與否事關(guān)軟件項目的成敗。尤其是在軟件項目的早期,準確可信的軟件估算顯得尤為重要。比如,軟件項目的可行性、接下來項目的總體規(guī)劃和計劃以及各種資源的分配等都離不開對項目的估算。由于軟件開發(fā)是個漸進的過程,在軟件項目的早期對該軟件認識還比較模糊,加上影響軟件開發(fā)的因素也比較多,只有隨著項目的進展對軟件項目的認識才逐漸清晰,對其影響因素才逐漸明確。因此,影響軟件準確估算的參數(shù)也是由不確定變動大到確定變動小的逐漸明確的過程[3]。

      軟件項目工作量估計從項目的功能需求定義開始,首先對軟件規(guī)模進行估計,估計源代碼行數(shù)(SLOC)和文檔頁數(shù),再以軟件規(guī)模估計為基礎(chǔ)估計項目的工作量和成本,最后安排進度。對項目來說,工作量是項目中主要的成本內(nèi)容,所以大部分情況下不必再額外估計成本。在軟件開發(fā)過程中,一直存在軟件的不可知性、工作量難以量化、需求難以確定等諸多問題。這些問題導致了難以對軟件的工作量進行精確的估計。所以,軟件開發(fā)項目的工作量估計問題也成為了軟件工程中非常重要且亟須解決的問題。在開發(fā)之前,如果對軟件的開發(fā)工作量有一個可靠而精確的估計,可以幫助軟件開發(fā)管理者更有效地控制開發(fā)時間和預算。而沒有進行估計或者估計偏差較大,將會導致項目的延期,甚至是失敗。那么,軟件工作量估計作為軟件項目開發(fā)計劃編制的依據(jù)也就變得越來越重要。

      1 早期基于算法模型的軟件工作量估計

      1.1 Putnam 模型

      1978年P(guān)utnam提出了一種動態(tài)多變量模型,假定在軟件開發(fā)的整個生存期中工作量有特定的分布。這種模型是依據(jù)在一些大型項目(總工作量達到或超過30人年)中收集到的工作量分布情況而推導出來的,但也可以應用在一些較小的軟件項目中。

      L=Ck*K1/3*td4/3

      其中,L為源代碼行數(shù)(以LOC計) ,K為整個開發(fā)過程所花費的工作量(以人年計),td為開發(fā)持續(xù)時間(以年計),Ck為技術(shù)狀態(tài)常數(shù),它反映了“妨礙開發(fā)進展的限制”,取值因開發(fā)環(huán)境而異。Ck典型取值見表1。

      表1 技術(shù)狀態(tài)常數(shù)Ck典型取值

      從上述方程加以變換,可以得到估算工作量的公式:

      K=L3/(Ck3*td4)

      還可以估算開發(fā)時間:

      td=[L3/(Ck3*K)]1/4

      1.2COCOMO模型(constructivecostmodel)

      COCOMO模型又為構(gòu)造性成本模型。它是由巴里·勃姆(Barry Boehm)提出的一種基本的回歸分析公式,使用從項目歷史和現(xiàn)狀中的某些特征作為參數(shù)來進行計算。

      COCOMO由3個不斷深入和詳細的層次組成。第一層,“基本COCOMO”,適用對軟件開發(fā)進行快速、早期地對重要的方面進行粗略的成本估計,但因其缺少不同的項目屬性(“成本驅(qū)動者”)的因素,所以準確性有一定的局限性?!爸屑塁OCOMO”中考慮進了這些成本驅(qū)動者?!霸敿欳OCOMO”加入了對不同軟件開發(fā)階段影響的考量。

      COCOMO這3 個等級的模型也都滿足下列公式,即

      Effort=a×(KDSI)b×F

      其中,Effort為工作量,表示為人月;a和b為系數(shù),具體的值取決于建模等級(即基本、中等或詳細)以及項目的模式(即組織型、半獨立型或嵌入型)。這個系數(shù)的取值先由專家意見來決定,然后用COCOMO數(shù)據(jù)庫的項目數(shù)據(jù)來對專家給出的取值再進一步求精。KDSI為軟件項目開發(fā)中交付的源指令(delivered source instruction,簡稱DSI)千行數(shù),也有用代碼行(line of codes,簡稱LOC)表示,代表著軟件規(guī)模。F是調(diào)整因子,基本COCOMO模型中,F(xiàn)=1,后兩個模型中F為15 個成本因子對應的工作量乘數(shù)的乘積。

      1.3 早期算法模型的缺點

      Putnam 模型和COCOMO 模型屬于比較早期的模型,適合于瀑布式生存周期的軟件開發(fā)方法。隨著面向?qū)ο箝_發(fā)方法和敏捷開發(fā)方法等的出現(xiàn),早期的模型已不再適合于軟件工作量估計和過程管理的需要。于是,針對目前主流開發(fā)方法的估計模型的研究日益迫切。

      2 基于敏捷開發(fā)的軟件工作量估計模型

      敏捷開發(fā)是當前非常流行的一種開發(fā)方法,而目前對敏捷開發(fā)項目的工作量估計主要存在以下兩個問題:第一,工作量估計的重視程度不夠。在制定開發(fā)計劃之前只是作粗糙的估計,或者根本不作估計,以合同給定的時間來制定軟件產(chǎn)品的開發(fā)計劃;第二,沒有針對敏捷開發(fā)項目的工作量估計工具。目前,對軟件工作量的估計主要有Wideband Delphi估計法、類比估計法、功能點估計方法等。而針對敏捷開發(fā)項目,使用這些估計方法的效果并不好。所以,往往憑項目管理者的經(jīng)驗進行估計,估計結(jié)果也根據(jù)管理者的不同而不同,并不能為項目計劃的制定提供準確有效的數(shù)據(jù)支持。

      由于常用的工作量估計方法對敏捷開發(fā)項目的估計效果不好,且沒有一個針對敏捷開發(fā)項目的工作量估計工具,所以本文提出了一種基于人工神經(jīng)網(wǎng)絡(luò)的工作量估計模型來解決這一問題,將使用敏捷開發(fā)方法的項目進行工作量估計,并獲得工作量估計服務。

      利用軟件估算模型進行高度準確性的估算,離不開歷史數(shù)據(jù)的支持。從早期基于算法模型的工作量估算來看,都需要利用歷史數(shù)據(jù)對其中的因子參數(shù)進行校正調(diào)整;基于類比的估算是對新項目和歷史項目進行比較,以此找出和新項目特征最匹配的歷史項目,進而對新項目進行估算。而基于人工神經(jīng)網(wǎng)絡(luò)的工作量估計模型同樣也需要歷史數(shù)據(jù)的支撐,好在國際軟件基準組織ISBSG (International Software Benchmarking Standards Group)提供的數(shù)據(jù)集是從各個國家收集的真實軟件開發(fā)項目數(shù)據(jù),可為估計模型提供數(shù)據(jù)支撐。

      2.1 ISBSG 數(shù)據(jù)集

      ISBSG數(shù)據(jù)集是行業(yè)內(nèi)比較著名的公開數(shù)據(jù)集,其中包括了由國際軟件基準組織收集的3000多個項目。但是,由于該數(shù)據(jù)集并不完整,許多項目的屬性缺失,因此采用其中屬性值完整的502個項目組成的子集進行研究。通過對ISBSG 數(shù)據(jù)集的研究,并結(jié)合實際軟件項目特點選取軟件開發(fā)過程中影響工作量估計的9個因子作為基礎(chǔ)數(shù)據(jù),即功能點、生產(chǎn)率、開發(fā)類型、組織類型、團隊規(guī)模、應用領(lǐng)域、開發(fā)平臺、編程語言和開發(fā)技術(shù)等。

      2.2 基于 BP 神經(jīng)網(wǎng)絡(luò)的工作量估算模型

      工作量估算模型選取三層BP 神經(jīng)網(wǎng)絡(luò),其拓撲結(jié)構(gòu)包括輸入層、隱藏層和輸出層。在本模型中輸入層的神經(jīng)元的個數(shù)為 9 個,而只有一個工作量的輸出,所以輸出層的神經(jīng)元個數(shù)為 1 個。圖1所示為面向敏捷開發(fā)項目的工作量估算模型的三層結(jié)構(gòu)圖。

      圖1 工作量估算模型

      圖1中,X1~ X9 分別代表功能點、生產(chǎn)率、開發(fā)類型、組織類型、團隊規(guī)模、應用領(lǐng)域、開發(fā)平臺、編程語言和開發(fā)技術(shù)9 個因子的輸入數(shù)據(jù),經(jīng)權(quán)值矩陣W加權(quán)求和后傳入隱藏層,通過sigmoid 函數(shù)的作用的輸出數(shù)據(jù),經(jīng)權(quán)值矩陣V加權(quán)求和后,同樣通過sigmoid 函數(shù)的作用輸出工作量估算數(shù)據(jù)effort,然后與真實工作量進行比較,根據(jù)最小均方誤差方法不斷調(diào)整權(quán)值矩陣W和V的值,直到滿足停止條件。

      (1) 網(wǎng)絡(luò)初始權(quán)值的設(shè)計

      網(wǎng)絡(luò)權(quán)值的初始化決定了人工神經(jīng)網(wǎng)絡(luò)的訓練初始狀態(tài),為避免網(wǎng)絡(luò)訓練不會從誤差曲面上某個局部極小點開始,權(quán)值矩陣的初始值使用(0,1) 之間的隨機值賦值。

      (2) 網(wǎng)絡(luò)訓練算法的設(shè)計

      訓練算法選擇最小均方誤差,輸入數(shù)據(jù)為影響因子與工作量成對提供到網(wǎng)絡(luò),所以根據(jù)網(wǎng)絡(luò)計算輸出的實際工作量與期望輸出的工作量之間誤差信號,通過逐層向后傳播調(diào)整權(quán)值,使得實際工作量與期望輸出的工作量之間誤差越來越小。權(quán)值的調(diào)整算法通常采用梯度下降算法,即沿著誤差曲面下降最快的方向調(diào)整權(quán)值。

      (3) 網(wǎng)絡(luò)終止訓練條件的設(shè)計

      設(shè)置兩個可以停止訓練的條件,首先是模型的精度,也就是誤差的大小,在本模型中最大誤差設(shè)置為 0.05,即當模型的誤差總和小于 0.05 時即可停止訓練網(wǎng)絡(luò)。

      2.3 工作量估算模型的訓練

      根據(jù)以上對工作量估算模型的設(shè)計,首先對輸入、輸出數(shù)據(jù)進行處理,然后將整個樣本數(shù)據(jù)集輸入到網(wǎng)絡(luò)中去,保證神經(jīng)網(wǎng)絡(luò)是從整個樣本數(shù)據(jù)集中學習知識,而不是逐個學習單個樣本的知識。采用最小均方誤差方法調(diào)整網(wǎng)絡(luò)的權(quán)值參數(shù),當總誤差滿足精度要求時,停止訓練,得到神經(jīng)網(wǎng)絡(luò)模型的各個參數(shù),也就確定了該工作量估算模型。 圖 2 所示為整個模型的實現(xiàn)算法流程圖。

      該模型的算法實現(xiàn)步驟如下所述:

      (1) 權(quán)值初始化,輸入層與隱藏層之間的權(quán)值矩陣用V表示,而隱藏層到輸出層之間的取值矩陣用W表示,對權(quán)值矩陣W、V初始化為0~1之間的隨機數(shù),樣本計數(shù)器p=1,樣本總個數(shù)P,樣本總誤差E賦為0,網(wǎng)絡(luò)學習率賦值為0~1之間的小數(shù),網(wǎng)絡(luò)的訓練精度Emin設(shè)置為0.05;

      (2) 首先對訓練樣本集進行歸一化處理,然后輸入待訓練的樣本對,并計算各層的輸出;

      圖2 實現(xiàn)算法流程圖

      (3) 計算網(wǎng)絡(luò)的輸出誤差,根據(jù)每個樣本的實際輸出與期望輸出,可以得出網(wǎng)絡(luò)的輸出誤差;

      (4) 計算網(wǎng)絡(luò)隱藏層和輸出層誤差信號;

      (5) 調(diào)整網(wǎng)絡(luò)隱藏層和輸出層權(quán)值;

      (6) 檢查是否所有樣本完成一輪訓練。若p

      (7) 檢查網(wǎng)絡(luò)是否滿足精度要求。當滿足精度要求時,即E

      當訓練結(jié)束后即可確定神經(jīng)網(wǎng)絡(luò)的各部分信息,包括各層的神經(jīng)元節(jié)點,輸入層到隱藏層之間的權(quán)值矩陣,以及隱藏層與輸出層之間的權(quán)值矩陣,然后利用該神經(jīng)網(wǎng)絡(luò)對其他輸入數(shù)據(jù)進行計算。

      3 估算方法比較

      本模型與幾種常用估算方法的優(yōu)缺點對比表如表2所示。

      表2 本模型與常用估算方法優(yōu)缺點對比

      4 結(jié)束語

      本文研究了基于敏捷開發(fā)的軟件工作量估計模型,通過對敏捷開發(fā)項目數(shù)據(jù)集的分析和訓練學習,得出對應敏捷開發(fā)項目的影響因子和工作量估算模型,針對性強,估算精度高。分析認為可大大提高了敏捷開發(fā)項目工作量估算的準確性。

      [1] Hughes Bob,Cotterell Mike.軟件項目管理 [M].廖彬山,王慧譯.4版.北京:機械工業(yè)出版社,2007.

      [2] Swapna Kishore,Rajesh Naik.軟件需求與估算[M].姜路,柳劍鋒,丁一夫,譯.北京:機械工業(yè)出版社,2004.

      [3] Little Todd.Schedule estimation and uncertainty surrounding the cone of uncertainty[J].Ieee Software,2006,23(3):48-54.

      Research on effort estimation method based on agile development projects

      SHEN Chun-yuan1,LU Jun2

      (1.Military Representatives Office of Radar System of the Chinese PLA Navy in Nanjing, Nanjing 210003; 2.No.724 Research Institute of CSIC, Nanjing 211153)

      Agile development is currently a very popular software development method, but commonly-used software effort estimation methods for agile development projects are not good. In order to accurately estimate the workload of agile development projects, an effort estimation model based on neural networks is studied for agile development project applications.

      agile development; effort estimation; neural networks

      2013-11-12;

      2013-12-10

      沈春元(1965-),男,高級工程師,研究方向:雷達及指揮控制系統(tǒng);陸峻(1976-),女,高級工程師,研究方向:計算 機軟件工程化。

      TP306

      A

      1009-0401(2014)01-0065-04

      猜你喜歡
      工作量權(quán)值誤差
      一種融合時間權(quán)值和用戶行為序列的電影推薦模型
      應用地表覆蓋數(shù)據(jù)估算LiDAR內(nèi)業(yè)工作量的方法研究
      CONTENTS
      角接觸球軸承接觸角誤差控制
      哈爾濱軸承(2020年2期)2020-11-06 09:22:26
      Beidou, le système de navigation par satellite compatible et interopérable
      壓力容器制造誤差探究
      基于權(quán)值動量的RBM加速學習算法研究
      自動化學報(2017年7期)2017-04-18 13:41:02
      一個兼顧教學科研的高校教師績效考核模型及其應用
      思科發(fā)布云計算市場發(fā)展報告
      九十億分之一的“生死”誤差
      山東青年(2016年2期)2016-02-28 14:25:41
      夹江县| 长葛市| 应城市| 洮南市| 阳新县| 惠安县| 岑溪市| 梅河口市| 平昌县| 商都县| 阿鲁科尔沁旗| 剑川县| 奉贤区| 来凤县| 普兰县| 涪陵区| 泽州县| 台湾省| 福州市| 霞浦县| 隆子县| 慈利县| 乐山市| 榆社县| 慈溪市| 大竹县| 巴东县| 巍山| 甘泉县| 文山县| 保靖县| 开阳县| 横山县| 出国| 安龙县| 宁城县| 揭西县| 南开区| 铁岭县| 沙雅县| 余干县|