專利名稱::一種基于新增需求的代碼變更量量化評估方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于新增需求的代碼變更量量化評估方法及其系統(tǒng),屬于計(jì)算機(jī)軟件開發(fā)
技術(shù)領(lǐng)域:
。
背景技術(shù):
:軟件代碼量的大小對軟件的開發(fā)進(jìn)度以及軟件應(yīng)用前景有著重要影響,研究人員通過控制軟件代碼量的大小滿足了用戶的不同需求(參考專利號ZL03800635.9,發(fā)明名稱“代碼量控制裝置和代碼量控制方法”的技術(shù)文獻(xiàn))。同時軟件代碼量的大小與軟件開發(fā)過程的需求演化直接相關(guān),需求演化是軟件需求開發(fā)中最容易發(fā)生的,也是不可避免的問題,需求演化會導(dǎo)致軟件項(xiàng)目代碼量的變化,如果沒有得到恰當(dāng)?shù)奶幚?,對軟件的開發(fā)成本和進(jìn)度都會產(chǎn)生較大的影響,往往導(dǎo)致軟件項(xiàng)目失敗的主要原因是需求演化。當(dāng)需求發(fā)生演化的時候,需要對演化帶來的影響進(jìn)行評價(jià)和分析,以便采取相應(yīng)的處理措施。量化的影響分析方法將有利于上層決策者對于軟件演化做出準(zhǔn)確的分析和決策,從而保證軟件項(xiàng)目順利完成。軟件項(xiàng)目的需求多為使用自然語言對軟件功能的描述,而軟件的代碼量則是由編程語言開發(fā)。當(dāng)需求發(fā)生演化時,很難將自然語言描述的變化準(zhǔn)確地定位到編程語言開發(fā)的代碼中。而當(dāng)軟件項(xiàng)目新增需求的時候,更加無法有效地估算新增需求將要產(chǎn)生的代碼量?,F(xiàn)有的需求演化影響分析方法中,能夠預(yù)測代碼變更量的方法比較少。已有方法主要分為兩類,一類是根據(jù)代碼中的調(diào)用關(guān)系進(jìn)行估算;一類是根據(jù)需求間的依賴關(guān)系進(jìn)行估算。根據(jù)代碼調(diào)用關(guān)系的估算需求演化代碼影響量的方法(參考文獻(xiàn)“FranckXia,PraveenSrikanth.“AChangeImpactDependencyMeasureforPredictingtheMaintainabilityofSourceCode,"[C].compsac,vol.2,28thAnnualInternationalComputerSoftwareandApplicationsConference-fforkshopsandFastAbstracts-(COMPSAC'04),200422-23")當(dāng)一個需求發(fā)生變化的時候,由于受到這個變化導(dǎo)致代碼中某部分直接受到影響,影響根據(jù)代碼的調(diào)用與被調(diào)用關(guān)系擴(kuò)散,并且隨著調(diào)用層次的增加,受到的影響逐漸變小。對受到影響的代碼量進(jìn)行求和,作為需求影響值。根據(jù)需求依賴關(guān)系的估算需求演化代碼影響量的方法(參考文獻(xiàn)“楊鶴標(biāo),張繼敏,朱玉全.一種需求變更影響的評估算法[J].計(jì)算機(jī)工程,2006,32(23):82_84”)根據(jù)需求依賴關(guān)系,建立由需求依賴樹形成的森林。當(dāng)依賴源需求發(fā)生變化,會對依賴目標(biāo)需求產(chǎn)生影響,影響通過依賴關(guān)系從源需求向目標(biāo)需求傳遞。對受到影響的需求對應(yīng)的工作量求和,作為需求的影響值。以上兩類方法在估算影響時,都需要首先確定演化的需求所對應(yīng)的代碼,而對于新增需求,則不能夠?qū)⑿略鲂枨笈c已有代碼建立有效的關(guān)聯(lián)關(guān)系,所以無法準(zhǔn)確估算新增需求將要產(chǎn)生的代碼量。
發(fā)明內(nèi)容鑒于量化需求演化影響的重要性以及現(xiàn)有方法的局限性,本發(fā)明通過基于數(shù)據(jù)挖掘的需求演化影口向的量化分析方法(Requirementevolutionimpactanalysisusingdatamining,REIA-DM)對代碼變更量進(jìn)行量化分析,并實(shí)現(xiàn)了基于REIA-DM方法的自動化估算系統(tǒng)。即本發(fā)明的目的在于提供一種基于新增需求的代碼變更量量化評估方法及其系統(tǒng),其能夠估算新增需求將要產(chǎn)生的代碼量,從而當(dāng)軟件項(xiàng)目新增需求的時候,能夠有效的幫助項(xiàng)目管理者降低軟件項(xiàng)目失敗的風(fēng)險(xiǎn)。本發(fā)明的技術(shù)方案為一種基于新增需求的代碼變更量量化評估方法,其步驟為1)根據(jù)設(shè)定的需求特征對數(shù)據(jù)庫中某軟件項(xiàng)目已有的N個需求進(jìn)行特征提??;2)選取該項(xiàng)目中m個需求的特征提取數(shù)據(jù)(RS1,Rs2,Rsi,RsJ作為訓(xùn)練數(shù)據(jù),其中0<m<N;3)將m個需求中每個需求的特征提取數(shù)據(jù)Rsi分別與除該需求外的已有需求的特征提取數(shù)據(jù)進(jìn)行聚類,并計(jì)算該需求Rsi的實(shí)際代碼量與其所在簇的代碼量參考值的比值Yi;其中,i=1.··m;4)根據(jù)得到的比值Yi計(jì)算該軟件項(xiàng)目的調(diào)整系數(shù)Y;5)根據(jù)設(shè)定的需求特征對該軟件項(xiàng)目的新增需求進(jìn)行特征提取;6)利用1)和5)的特征提取數(shù)據(jù)對每一新增需求與該N個已有需求進(jìn)行聚類;7)根據(jù)公式E=γ·(估算新增需求的代碼量E,其中C為新增需求所在簇中的代碼量參考值。進(jìn)一步的,所述需求特征包括需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力。進(jìn)一步的,將特征提取的需求特征值映射到一相同的取值區(qū)間;每個需求的特征提取數(shù)據(jù)的格式為需求編號代碼量需求特征1特征值1需求特征2特征值2···。進(jìn)一步的,根據(jù)每個需求的實(shí)際代碼量篩選出所述訓(xùn)練數(shù)據(jù)。進(jìn)一步的,所述代碼量參考值為某需求所在簇中除去該需求以外其他需求對應(yīng)的代碼量的平均值為該需求的代碼量參考值。進(jìn)一步的,所述根據(jù)得到的比值Yi計(jì)算該軟件項(xiàng)目的調(diào)整系數(shù)Y的方法為首先檢查所得到的每個比值Yi是否符合設(shè)定要求,然后取符合設(shè)定要求的比值^平均值為該軟件項(xiàng)目的調(diào)整系數(shù)Y。進(jìn)一步的,所述聚類算法為基于劃分的k均值方法。一種基于新增需求的代碼變更量量化評估系統(tǒng),其包括特征提取模塊、核心聚類算法計(jì)算模塊、調(diào)整參數(shù)Y訓(xùn)練模塊、代碼量預(yù)測模塊;所述特征提取模塊,用于根據(jù)設(shè)定的需求特征對軟件項(xiàng)目的每個需求進(jìn)行特征提??;所述核心聚類算法計(jì)算模塊,用于提供所需的聚類算法,對輸入數(shù)據(jù)進(jìn)行聚類計(jì)算;所述調(diào)整參數(shù)Y訓(xùn)練模塊,用于根據(jù)特征提取的數(shù)據(jù),調(diào)用核心聚類算法模塊的接口,訓(xùn)練調(diào)整參數(shù)Y,獲得估算公式;所述代碼量預(yù)測模塊,用于根據(jù)新增需求和已有需求的特征提取后的數(shù)據(jù),調(diào)用核心聚類算法模塊的接口并利用所述估算公式,預(yù)測每一新增需求將要產(chǎn)生的代碼量。進(jìn)一步的,所述系統(tǒng)還包括一測試驗(yàn)證模塊,用于對所述代碼量預(yù)測模塊估算出來的新增需求代碼量與實(shí)際代碼量進(jìn)行比較,驗(yàn)證預(yù)測的有效性。進(jìn)一步的,所述需求特征包括需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力。本發(fā)明的REIA-DM是一種針對新增需求使用聚類的無監(jiān)督學(xué)習(xí)方法,關(guān)于“聚類的無監(jiān)督學(xué)習(xí)方法”出自英文書籍(JiaweiHan,MichelineKamber.DataMiningConceptsandTechniques,SecondEdition[Μ].MorganKaufmannPublishersInc.SanFransisco,CA,USA.2001),或者對應(yīng)的中文書籍(數(shù)據(jù)挖掘技術(shù)與概念(原書第2版)/(加)韓家煒,堪博(MichelineKamber)著;范明,孟小峰譯。北京機(jī)械工業(yè)出版社,2007.3),不需要對軟件的需求進(jìn)行預(yù)先的分類而直接對新增需求與軟件已有需求進(jìn)行劃分的方法,使得聚為一個簇中的需求具有相似的屬性。通過對新增需求所在簇中的元素來進(jìn)行分析,能夠相對準(zhǔn)確的量化新增需求將要產(chǎn)生的代碼量。根據(jù)發(fā)明的目的,REIA-DM的具體流程為(一)訓(xùn)練調(diào)整參數(shù)Y,獲得估算公式(1)對已有的N個需求進(jìn)行特征提取選擇需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力作為需求特征。(2)選擇該軟件項(xiàng)目中的m(0<m<N)個需求(RS1,Rs2,Rsi,...,RsJ作為訓(xùn)練數(shù)據(jù),以獲得調(diào)整參數(shù)Y;(3)對選擇的訓(xùn)練數(shù)據(jù)中的每一個需求Rsi與另外N-I個已有的需求進(jìn)行聚類,計(jì)算該需求實(shí)際代碼量與所在簇的代碼量參考值的比值Yi;1m(4)將/=一Σ廣作為針對當(dāng)前軟件項(xiàng)目的調(diào)整系數(shù)。(二)預(yù)測新增需求的代碼量(1)對新增需求進(jìn)行特征提取選擇與步驟(一)中相同的需求特征以相同的標(biāo)準(zhǔn)進(jìn)行需求特征的提取。(2)將每一個新增需求與已有需求按照選取的需求特征分別進(jìn)行聚類使用與(一)中相同的聚類方法對需求進(jìn)行聚類。(3)分析新增需求所在簇中的其他需求由于使用與需求對應(yīng)的代碼量相關(guān)的需求特征作為聚類特征,當(dāng)一個新增需求與軟件已有需求聚類到同一個簇之后,說明這些需求有著相似的性質(zhì)。因而,新增需求將要產(chǎn)生的代碼量與所在簇中的需求所對應(yīng)的代碼量相似。(4)估算新增需求的代碼量為了能夠相對準(zhǔn)確的估算新增需求將要產(chǎn)生的代碼量,選取簇中需求代碼量均值作為參考值,并認(rèn)為新增需求將產(chǎn)生的代碼量也在參考值上下。使用估算公式丄對新增需求的代碼量進(jìn)行估算。其中,<formula>formulaseeoriginaldocumentpage5</formula>為簇中需求代碼量均值;Y為(一)中獲得的調(diào)整參數(shù),η為已有需求數(shù)目,Li為第i個已有需求對應(yīng)的代碼量。本發(fā)明的另一個目的在于提供一個使用REIA-DM方法的預(yù)測新增需求代碼量的軟件系統(tǒng),該系統(tǒng)在輸入特征提取的數(shù)據(jù)后,能夠自動化的實(shí)現(xiàn)新增需求代碼量的預(yù)測,也能夠接受用戶自行調(diào)整的參數(shù)進(jìn)行半自動的預(yù)測。本系統(tǒng)包括特征提取模塊、核心聚類算法計(jì)算模塊、調(diào)整參數(shù)Y訓(xùn)練模塊、代碼量預(yù)測模塊和測試驗(yàn)證模塊,具體功能如下特征提取模塊,用于根據(jù)設(shè)定的需求特征對軟件項(xiàng)目的每個需求進(jìn)行特征提??;核心聚類算法模塊作為系統(tǒng)的基礎(chǔ)模塊,提供整個系統(tǒng)需要的聚類算法,此部分聚類算法可以使用多種不同的算法,不局限于基于劃分的k均值方法(k-means)。調(diào)整參數(shù)Y訓(xùn)練模塊,使用輸入的根據(jù)需求特征提取后的數(shù)據(jù),調(diào)用核心聚類算法模塊的接口,訓(xùn)練調(diào)整參數(shù)Y,從而獲得估算公式。代碼量預(yù)測模塊,使用用戶輸入的新增需求和已有需求的特征提取后的數(shù)據(jù),調(diào)用核心聚類算法模塊的接口,使用調(diào)整參數(shù)Y訓(xùn)練模塊獲得的估算公式,預(yù)測每一個新增需求將要產(chǎn)生的代碼量。測試驗(yàn)證模塊,對代碼量預(yù)測模塊估算出來的新增需求代碼量與實(shí)際代碼量進(jìn)行比較,驗(yàn)證估算方法的有效性。本發(fā)明的優(yōu)點(diǎn)和技術(shù)效果如下(1)本發(fā)明的方法將新增需求與軟件項(xiàng)目已有需求進(jìn)行聚類,對于聚類結(jié)果進(jìn)行分析,能夠相對準(zhǔn)確的量化新增需求將要產(chǎn)生的代碼量。(2)本發(fā)明根據(jù)REIA-DM方法實(shí)現(xiàn)的估算系統(tǒng),在用戶輸入根據(jù)需求特征提取的數(shù)據(jù)后,能夠自動化的預(yù)測新增需求將要產(chǎn)生的代碼量,并且能夠直觀顯示估算結(jié)果。圖IREIA-DM方法訓(xùn)練調(diào)整參數(shù)Y并獲得估算公式主要流程;圖2REIA-DM方法預(yù)測新增需求的代碼量主要流程;圖3自動化估算系統(tǒng)流程圖。具體實(shí)施例方式下面將具體說明基于數(shù)據(jù)挖掘的需求演化影響的量化分析方法和系統(tǒng)本發(fā)明提出的REIA-DM方法可以分為兩大步驟訓(xùn)練調(diào)整參數(shù)Y,獲得估算公式;估算新增需求將要產(chǎn)生的代碼量。(一)訓(xùn)練調(diào)整參數(shù)Y,獲得估算公式REIA-DM方法提出一個估算新增需求將要產(chǎn)生的代碼量的方法,并給出估算公式Ε=γ·€=γ·-·(^)其中,丄.ff丄為簇中需求代碼量均值,而Y為調(diào)整參數(shù)。YnV'=i乂。η^‘)是根據(jù)估算的軟件項(xiàng)目而定制的調(diào)整參數(shù),使得估算公式更加準(zhǔn)確的應(yīng)用于某一個軟件項(xiàng)目。訓(xùn)練調(diào)整參數(shù)Y的步驟主要有以下四步(1)已有需求的特征提取因?yàn)樽罱K的目的是為了量化新增需求將要產(chǎn)生的代碼量,所以在進(jìn)行需求特征提取的時候,只選擇與需求對應(yīng)代碼量相關(guān)聯(lián)的需求特征。最終選擇的特征是需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力作為需求特征。在此,不使用通常的文本聚類時所用到的文本特征(特征詞),主要的原因是同一個軟件的需求的描述比較相似,因而文本特征對于不同需求的區(qū)分度不夠,如果摻入文本特征將會對于需求固有的特征造成一定的影響。在進(jìn)行需求特征提取時,為了保證每個需求特征在聚類效果上的有效性,應(yīng)將每個需求特征值映射到一個相同的取值區(qū)間中,比如,其中0表示“非常差/非常短/非常弱”,10表示“非常好/非常長/非常強(qiáng)”。對于一個軟件項(xiàng)目的已有的N個需求進(jìn)行特征提取,并生成需求特征提取后的數(shù)據(jù)文件。數(shù)據(jù)文件作為輸入數(shù)據(jù)應(yīng)用于估算系統(tǒng),估算系統(tǒng)的數(shù)據(jù)格式為需求IDl代碼量1特征1特征值特征2特征值特征3特征值...需求ID2代碼量2特征1特征值特征2特征值特征3特征值......需求IDN代碼量N特征1:特征值特征2特征值特征3特征值...(2)選擇訓(xùn)練調(diào)整參數(shù)的訓(xùn)練數(shù)據(jù)數(shù)據(jù)選擇時,應(yīng)該去除掉比較明顯的不合理數(shù)據(jù),以避免對于估算方法的影響,使得估算公式盡量的準(zhǔn)確。不合理數(shù)據(jù)包括軟件項(xiàng)目開發(fā)過程中,工作量極大和極小的需求,或者工作量明顯偏離當(dāng)時估算值的。最終,選擇該軟件項(xiàng)目中的m(0<m<N)個需求(Rsi,Rs2,Rsi,...,Rsm)作為訓(xùn)練數(shù)據(jù)。(3)需求聚類對選擇的訓(xùn)練數(shù)據(jù)(m個需求)中的每一個需求Rsi與另外N-I個已有的需求進(jìn)行聚類。對于聚類結(jié)果,計(jì)算與需求Rsi處在同一個簇中的其他需求對應(yīng)的代碼量的均值作為簇代碼量參考值;如果需求Rsi自己單獨(dú)處在一個簇,那么這個需求Rsi應(yīng)該在(2)中不選擇,并且不參與計(jì)算。計(jì)算需求Rsi實(shí)際代碼量與所在簇的代碼量參考值的比值Yi:_需求Rs,實(shí)際代碼量h"簇代碼量參考值°(4)計(jì)算調(diào)整參數(shù)Y1m為了使得估算公式更加的準(zhǔn)確,對m個Yi取均值,將7=二Σ廣作為針對當(dāng)前軟m=\件項(xiàng)目的調(diào)整參數(shù),并帶入估算公式用于當(dāng)前軟降項(xiàng)目的新增需求估算。(二)估算新增需求將要產(chǎn)生的代碼量(1)新增需求的特征提取選擇與步驟(一)(1)中相同的需求特征以相同的標(biāo)準(zhǔn)對新增需求進(jìn)行需求特征的提取,并生成相同格式的數(shù)據(jù)。(2)需求聚類為了保證每個新增需求之間不互相影響,因而將每一個新增需求與已有需求分別進(jìn)行聚類,單獨(dú)估算每一個新增需求的代碼量。此步驟中的聚類,使用上一步中需求特征提取的數(shù)據(jù),并且使用與(一)(3)中相同的聚類方法。(3)分析新增需求所在簇中的其他需求由于使用與需求對應(yīng)的代碼量相關(guān)的需求特征作為聚類特征,當(dāng)一個新增需求與軟件已有需求聚類到同一個簇之后,說明這些需求有著相似的性質(zhì)。因而,新增需求將要產(chǎn)生的代碼量與所在簇中的需求所對應(yīng)的代碼量相似。每個簇中需求對應(yīng)代碼量的平均值可以作為該簇中需求對應(yīng)代碼量的一個參考值,而每個需求實(shí)際對應(yīng)代碼量在這個參考值上下小范圍波動。(4)估算新增需求的代碼量為了能夠相對準(zhǔn)確的估算新增需求將要產(chǎn)生的代碼量,選取簇中需求代碼量均值作為參考值,并認(rèn)為新增需求將產(chǎn)生的代碼量也在參考值上下。假設(shè)新增需求所在簇中包含η條軟件項(xiàng)目的已有需求,每條已有需求對應(yīng)代碼量分別為L1L2L3...Ln,則新增需求代碼量參考值c為Ijt/^。使用估算公式五〒C=y丄對新增需求的代碼量進(jìn)n\i=\JnV'=IJ行估算。其中,γ為(一)中獲得的調(diào)整參數(shù)。以下結(jié)合實(shí)例對操作各部分進(jìn)行具體說明。實(shí)例為辦公自動化軟件項(xiàng)目OfficeAutomation,該軟件項(xiàng)目自2002年開始開發(fā)并不斷維護(hù)升級,主要應(yīng)用于實(shí)驗(yàn)室內(nèi)部人員的工作記錄。該軟件項(xiàng)目共有11個大的功能模塊(具體功能及描述參照表1中需求對應(yīng)模塊一欄的11個功能模塊),按照這11個大的功能模塊,對應(yīng)將需求歸類為11個大類的功能需求并編號為R1R2R3...R11,每大類的功能需求Ri的實(shí)現(xiàn)一個對應(yīng)的功能模塊。將需求Rl至R9作為訓(xùn)練數(shù)據(jù),而將需求RlO和Rll視為新增需求,估算需求RlO和Rll將要產(chǎn)生的代碼量。實(shí)驗(yàn)的主要過程如下對數(shù)據(jù)進(jìn)行特征提??;對訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練以獲得調(diào)整參數(shù)Y;使用估算公式進(jìn)行預(yù)測。(1)需求特征提取此步驟中,完成對于全部需求的特征提取工作,包括已有需求與新增需求。在選取需求特征時,使用需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求描述的文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力作為需求特征。進(jìn)行需求特征提取,并將每個需求特征值映射到區(qū)間中,其中0表示“非常差/非常短/非常弱”,10表示“非常好/非常長/非常強(qiáng)”。需求特征值以及需求對應(yīng)代碼量統(tǒng)計(jì)結(jié)果如表1表1需求特征值以及需求對應(yīng)代碼量統(tǒng)計(jì)結(jié)果<table>tableseeoriginaldocumentpage9</column></row><table>生成的數(shù)據(jù)文件如下Rl8081:62:83:54:105:6R814831:62:73:94:25:8R24091:42:43:34:15:8R39801:42:43:64:15:6R41771:42:43:14:15:6R59871:42:53:64:25:6R69831:42:43:64:15:6R72791:42:43:24:15:6R98741:42:43:54:15:6*R104611:62:53:34:25:6*R1117971:62:63:94:25:8其中RlO和Rll前面的“*”表示需求RlO和需求Rll是新增需求,RlO和Rll對應(yīng)的的代碼行數(shù)如果為0,則只進(jìn)行估算,不進(jìn)行估算值與實(shí)際值的比較工作。(2)選擇訓(xùn)練調(diào)整參數(shù)的訓(xùn)練數(shù)據(jù)去除掉訓(xùn)練數(shù)據(jù)(Rl至R9)中代碼量最小的需求R4和最大的需求R8,將其余的需求數(shù)據(jù)用于訓(xùn)練調(diào)整參數(shù)Y。(3)需求聚類,訓(xùn)練調(diào)整參數(shù)Y將需求Rl、R2、R3、R5、R6、R7和R9分別作為被估算需求,與其余8個需求進(jìn)行聚類,并計(jì)算需求對應(yīng)代碼量的實(shí)際值與所在簇代碼量參考值的比值。設(shè)置聚類中心點(diǎn)個數(shù)為4,聚類需求Rl至R9結(jié)果如表2表2需求R1至R9聚類結(jié)果<table>tableseeoriginaldocumentpage10</column></row><table>對于聚類結(jié)果,計(jì)算每個需求Ri所在簇中其他需求對應(yīng)代碼量的平均值作為簇代碼量參考值,并計(jì)算Ri對應(yīng)的實(shí)際代碼量與簇代碼量參考值的比值。分析結(jié)果如表3表3Ri對應(yīng)的實(shí)際代碼量與簇代碼量參考值的比值_____<table>tableseeoriginaldocumentpage10</column></row><table>其中,需求對應(yīng)代碼量的實(shí)際值取自(1)中的需求對應(yīng)代碼量;簇代碼量參考值是聚類結(jié)果中,需求Ri所在簇中去除掉Ri外所有需求對應(yīng)代碼量的平均值;對于計(jì)算調(diào)整參數(shù),應(yīng)該去除掉比值中不合理的數(shù)值。這時,去除沒有值的R1。(4)計(jì)算調(diào)整參數(shù)Y最終,取Y為比值的平均值<formula>formulaseeoriginaldocumentpage10</formula>獲得估算公式<formula>formulaseeoriginaldocumentpage10</formula>(5)新增需求特征提取將需求RlO和Rll作為新增需求,對新增需求進(jìn)行特征提取。因?yàn)?,新增需求的特征提取工作已?jīng)在(1)中完成,所以跳過此步驟。如果先前沒有對新增需求進(jìn)行過特征提取,則此處應(yīng)當(dāng)先對新增需求進(jìn)行需求特征提取。(6)聚類新增需求為了避免兩個新增需求的相互影響,分別將需求RlO和Rll與訓(xùn)練集數(shù)據(jù)(需求Rl至R9)進(jìn)行聚類,估算其將要產(chǎn)生的代碼量,聚類結(jié)果如表4、表5表4需求Rltl與需求R1至R9聚類結(jié)果<table>tableseeoriginaldocumentpage11</column></row><table>表5需求R11與需求R1至R9聚類結(jié)果<table>tableseeoriginaldocumentpage11</column></row><table>(7)分析簇特征,估算代碼量使用估算公式(需求代碼量估算值等于調(diào)整參數(shù)Y與所在簇的代碼量參考值的乘積)的估算兩個新增需求將要產(chǎn)生的代碼量,結(jié)果如表6表6兩個新增需求將要產(chǎn)生的代碼量估算結(jié)果<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>綜上,本發(fā)明所提出的基于新增需求的代碼變更量量化評估方法是通過有效的利用軟件項(xiàng)目的歷史數(shù)據(jù),最終得出代碼量的估算值。本發(fā)明提供的基于新增需求的代碼變更量量化評估系統(tǒng)可以全自動的完成預(yù)測的過程,也可以根據(jù)用戶的需求進(jìn)行手動進(jìn)行數(shù)據(jù)的調(diào)整。以上對本發(fā)明所述的基于新增需求的代碼變更量量化評估方法及其系統(tǒng)進(jìn)行了詳細(xì)的說明,但顯然本發(fā)明的具體實(shí)現(xiàn)形式并不局限于此。對于本
技術(shù)領(lǐng)域:
的一般技術(shù)人員來說,在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對它進(jìn)行的各種顯而易見的改變都在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求一種基于新增需求的代碼變更量量化評估方法,其步驟為1)根據(jù)設(shè)定的需求特征對數(shù)據(jù)庫中某軟件項(xiàng)目已有的N個需求進(jìn)行特征提??;2)選取該項(xiàng)目中m個需求的特征提取數(shù)據(jù)(RS1,RS2,RSi,...,RSm)作為訓(xùn)練數(shù)據(jù),其中0<m<N;3)將m個需求中每個需求的特征提取數(shù)據(jù)RSi分別與除該需求外的已有需求的特征提取數(shù)據(jù)進(jìn)行聚類,并計(jì)算該需求RSi的實(shí)際代碼量與其所在簇的代碼量參考值的比值γi;其中,i=1...m;4)根據(jù)得到的比值γi計(jì)算該軟件項(xiàng)目的調(diào)整系數(shù)γ;5)根據(jù)設(shè)定的需求特征對該軟件項(xiàng)目的新增需求進(jìn)行特征提??;6)利用1)和5)的特征提取數(shù)據(jù)對每一新增需求與該N個已有需求進(jìn)行聚類;7)根據(jù)公式E=γ·C估算新增需求的代碼量E,其中C為新增需求所在簇中的代碼量參考值。2.如權(quán)利要求1所述的方法,其特征在于所述需求特征包括需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力。3.如權(quán)利要求1或2所述的方法,其特征在于將特征提取的需求特征值映射到一相同的取值區(qū)間;每個需求的特征提取數(shù)據(jù)的格式為需求編號代碼量需求特征1特征值1需求特征2:特征值2…。4.如權(quán)利要求3所述的方法,其特征在于根據(jù)每個需求的實(shí)際代碼量篩選出所述訓(xùn)練數(shù)據(jù)。5.如權(quán)利要求1所述的方法,其特征在于所述代碼量參考值為某需求所在簇中除去該需求以外其他需求對應(yīng)的代碼量的平均值為該需求的代碼量參考值。6.如權(quán)利要求1所述的方法,其特征在于所述根據(jù)得到的比值L計(jì)算該軟件項(xiàng)目的調(diào)整系數(shù)、的方法為首先檢查所得到的每個比值^是否符合設(shè)定要求,然后取符合設(shè)定要求的比值L平均值為該軟件項(xiàng)目的調(diào)整系數(shù)Y。7.如權(quán)利要求1所述的方法,其特征在于所述聚類算法為基于劃分的k均值方法。8.一種基于新增需求的代碼變更量量化評估系統(tǒng),其包括特征提取模塊、核心聚類算法計(jì)算模塊、調(diào)整參數(shù)Y訓(xùn)練模塊、代碼量預(yù)測模塊;所述特征提取模塊,用于根據(jù)設(shè)定的需求特征對軟件項(xiàng)目的每個需求進(jìn)行特征提??;所述核心聚類算法計(jì)算模塊,用于提供所需的聚類算法,對輸入數(shù)據(jù)進(jìn)行聚類計(jì)算;所述調(diào)整參數(shù)Y訓(xùn)練模塊,用于根據(jù)特征提取的數(shù)據(jù),調(diào)用核心聚類算法模塊的接口,訓(xùn)練調(diào)整參數(shù)Y,獲得估算公式;所述代碼量預(yù)測模塊,用于根據(jù)新增需求和已有需求的特征提取后的數(shù)據(jù),調(diào)用核心聚類算法模塊的接口并利用所述估算公式,預(yù)測每一新增需求將要產(chǎn)生的代碼量。9.如權(quán)利要求8所述的系統(tǒng),其特征在于還包括一測試驗(yàn)證模塊,用于對所述代碼量預(yù)測模塊估算出來的新增需求代碼量與實(shí)際代碼量進(jìn)行比較,驗(yàn)證預(yù)測的有效性。10.如權(quán)利要求8所述的系統(tǒng),其特征在于所述需求特征包括需求描述質(zhì)量、需求內(nèi)容質(zhì)量、需求文本長度、需求依賴密度、開發(fā)團(tuán)隊(duì)綜合能力。全文摘要本發(fā)明公開了一種基于新增需求的代碼變更量量化評估方法及其系統(tǒng),屬于計(jì)算機(jī)軟件開發(fā)
技術(shù)領(lǐng)域:
。本方法為1)根據(jù)設(shè)定的需求特征對某軟件項(xiàng)目已有的N個需求進(jìn)行特征提??;2)選取該項(xiàng)目中m個需求的特征提取數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),計(jì)算該軟件項(xiàng)目的調(diào)整系數(shù)γ;3)根據(jù)設(shè)定的需求特征對該軟件項(xiàng)目的新增需求進(jìn)行特征提??;4)利用1)和3)的特征提取數(shù)據(jù)對每一新增需求與該N個已有需求進(jìn)行聚類;5)根據(jù)公式E=γ·C估算新增需求的代碼量E。本系統(tǒng)包括特征提取模塊、核心聚類算法計(jì)算模塊、調(diào)整參數(shù)γ訓(xùn)練模塊、代碼量預(yù)測模塊。與現(xiàn)有技術(shù)相比,本發(fā)明能夠自動化的預(yù)測新增需求將要產(chǎn)生的代碼量,并且能夠直觀顯示估算結(jié)果。文檔編號G06F11/36GK101833501SQ20101014090公開日2010年9月15日申請日期2010年4月2日優(yōu)先權(quán)日2010年4月2日發(fā)明者李娟,李引,楊達(dá),王青,高健申請人:中國科學(xué)院軟件研究所