摘?要:文章使用神經網絡進行敏捷開發工作量的預估,分析當前在敏捷開發過程中工作量預估不足的問題,然后對如何使用神經網絡進行開發展開研究,提升敏捷開發工作量估計的精確性。
關鍵詞:敏捷開發;項目工作量;估計方法;研究
一、 引言
敏捷開發項目在項目工作量上估計比較難,在缺少預估的情況下,不利于項目開發管理工作。因此,需要設計一套合理的工作量評估方法,滿足工作量估計的需求。
二、 敏捷開發的軟件工作量估計問題
敏捷開發是目前主流的軟件開發方式,但在對工作量估計上存在以下兩個問題。首先,很多采取敏捷開發的項目都對工作量估計的重視不高,所以再定制開發的時候都是使用粗糙的模型做出估計,一些項目甚至不做估計,完全根據合同的時間要求完成軟件產品的開發計劃;其次,缺少針對敏捷開發工作量的估計工具,很多軟件的工作量估計都是用類比估計、功能點估計等,使用敏捷開發的項目,采取這種估計方式并不能取得效果。因此,實際工作中都傾向于憑借管理者的經驗展開估計,但是在管理者對敏捷開發認識不同的情況下,并不能準確地確定項目的工作量,就會導致開發當中的管理困難。
三、 神經網絡對項目預算量估計的優勢
普通的工作量預估方法并不能滿足敏捷開發項目的估計要求,為了解決這個問題問題,可以采用神經網絡來對工作量進行預估,提高對敏捷開發項目估計的精確性,以及做好工作量的估計服務。使用軟件估算模型進行估算,需要有歷史數據作為支撐。但是,早期的項目在工作量計算方法上和開發方式上都與當前有一定不同,所以需要對參數進行修正以滿足要求。為此,需要找到與當前情況匹配的項目,根據他們的數據對項目的工作量進行分析。
四、 使用神經網絡對敏捷開發估算的方法
(一)數據集的選擇
為了獲得歷史數據,使用了國家軟件基準組織對各項軟件開發儲存的歷史數據,其中總共包含數千個項目,擁有各種不同的類型,神經網絡可以對其進行學習,能模型提供強有力的支撐。同時,由于這個數據集并不是完整的,有很多項目存在缺失,所以從其中篩選了500各項目進行研究。并且通過對數據集的研究,結合不同軟件項目開發的各種特性,確定了影響工作量的因子,作為開發工作的基礎數據。
(二)BP神經網絡工作量預估模型
工作量估算模型使用三層BP神經網絡,分別包括輸入層、隱藏層和輸出層。根據工作過程中的經驗,對工作量的影響因子為功能點、開發類型、組織類型、團隊規模、應用領域、開發平臺、編程語言、生產率和實用技術,分別對應輸入層的9個神經元,之后經過加權之后獲得最后的工作量估算結果。
不同因子輸入數據經過權值矩陣加權之后進入隱藏層,然后通過計算函數進行計算,再輸出數據,經過全職矩陣加權求和之后,再用計算函數獲得工作量的預估數據。通過將獲得預估數據和真實工作量不斷比較,然后根據小均方誤差發不斷對權值矩陣進行調整,使其最終滿足條件要求。
在網絡初始權值的設計中,為了能獲得良好的初始狀態,避免訓練在誤差曲面上某個局部極小點開始,權值矩陣的初始值選擇(0,1)之間的隨機數。訓練網絡時,訓練算法選擇最小均方誤差,輸入數據為影響因子和工作量成對提供到網絡中,然后根據網絡計算出的實際工作量和期望值的誤差,再經過逐層向后傳播對權重進行調整,讓實際工作量和期望輸出的工作量之間的誤差減小。為了能提升訓練的速度,調整權重采用了梯度下降算法,并且根據誤差曲面的最快下降方法來調整權值,保證訓練的效率。對于訓練停止條件的設計,進行了模型精度的是設計,在本模型中最大的誤差精度設置為0.05,在模型蹤誤差在0.05以下的時候,就可以停止訓練。
五、 模型估算的訓練
通過對工作量估算模型的設計,先進行輸入和輸出數據的處理工作,然后把樣本數據輸入到網絡當中,確保神經網絡在整個樣本數據集中學習知識,防治因為從單個樣本學習知識。之后使用最小均方法來對矩陣的權值進行調整,逐漸降低總體誤差,在達到精度之后再停止訓練,獲得完成訓練的深井網絡模型,有效對工作量進行預估。
模型的算法實現中,對于輸入層和隱藏層的權值矩陣、隱藏層到輸出層的取值矩陣,最開始所有的權值都是0-1的隨機數,對網絡學習率賦值為0-1的隨機數;樣本跟蹤誤差為0,訓練精度設置為0.05。訓練時,先要對樣本集歸一化,然后輸入帶訓練樣本對,計算各層級的輸出。
根據樣本所計算的數據,以及后來的輸出進行計算誤差,之后從輸出誤差信號來對矩陣的權重進行調整,加強對隱藏層和輸出層的修正,經過對所有的樣本都進行模擬后,檢查精度是否滿足誤差在0.05以下的要求,否則將網絡的誤差賦值為0,再重新開始對所有的樣本進行學習。
在訓練結束后就可以確定神經網絡的信息,包括神經元節點、權值矩陣等,之后就可以利用全新的模型,對其他數據展開計算。
六、 結語
使用神經網絡能夠避開個人偏好等因素的影響,可以對敏捷開發進行準確的估計。但是文章中的方法只能在敏捷開發項目中使用,所以存在一定的局部現象。使用過程中需要充分利用數據集進行學習和分析,從而得到敏捷開發的最準確模型,提升項目估算的精確性。
參考文獻:
[1]沈春元,陸峻.基于敏捷開發項目工作量的估計方法研究[J].雷達與對抗,2014,34(1):65-68.
[2]施擁軍.上海貝爾敏捷SCRUM模式下軟件質量改進措施的研究[D].上海:復旦大學,2013.
作者簡介:顏景波,南京優瑪軟件科技有限公司。