国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于預(yù)測(cè)軟件缺陷的方法和系統(tǒng)的制作方法

      文檔序號(hào):6538127閱讀:291來(lái)源:國(guó)知局
      一種用于預(yù)測(cè)軟件缺陷的方法和系統(tǒng)的制作方法
      【專利摘要】本發(fā)明提供了一種用于預(yù)測(cè)軟件缺陷的方法和系統(tǒng),用以解決現(xiàn)有軟件缺陷預(yù)測(cè)精度不高,SVM參數(shù)選擇難的問(wèn)題。該方法包括以下步驟:步驟一、獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型;步驟二、利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集和SVM分類器的參數(shù)C、σ的最優(yōu)取值;其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的屬性;參數(shù)C、σ的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、σ的值;步驟三、根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;步驟四、根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)。
      【專利說(shuō)明】一種用于預(yù)測(cè)軟件缺陷的方法和系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于軟件安全【技術(shù)領(lǐng)域】,涉及一種用于預(yù)測(cè)軟件缺陷的方法和系統(tǒng)。
      【背景技術(shù)】
      [0002]軟件缺陷預(yù)測(cè)技術(shù)經(jīng)歷了長(zhǎng)期的發(fā)展并持續(xù)保持活躍。各種預(yù)測(cè)技術(shù)有著不同的適應(yīng)面,解決不同的問(wèn)題,也有不同的局限。具體的客戶需求、環(huán)境、產(chǎn)品特征、組織的歷史數(shù)據(jù)等情況不同,適用的缺陷預(yù)測(cè)技術(shù)也不同。
      [0003]靜態(tài)的軟件缺陷預(yù)測(cè)技術(shù)起源較早,早期研究集中主要集中在基于軟件規(guī)模等度量元的缺陷預(yù)測(cè)方面,即研究缺陷和軟件規(guī)模、復(fù)雜度等基本屬性之間的關(guān)系,以此預(yù)測(cè)軟件可能存在的缺陷數(shù)量。20世紀(jì)90年代初,人們發(fā)現(xiàn)缺陷并非在軟件中平均或者完全隨機(jī)地分布,出現(xiàn)了針對(duì)缺陷分布的預(yù)測(cè)技術(shù),本發(fā)明則屬于缺陷分布預(yù)測(cè)技術(shù)的一種。
      [0004]這類技術(shù)中,基于支持向量機(jī)(Support Vector Machine,簡(jiǎn)稱SVM)的缺陷預(yù)測(cè)已被驗(yàn)證是較為有效的方法,SVM是一種以有限樣本統(tǒng)計(jì)學(xué)習(xí)理論為基礎(chǔ)發(fā)展起來(lái)的新的通用學(xué)習(xí)方法,有效地解決了小樣本、高維數(shù)、非線性等的學(xué)習(xí)問(wèn)題。SVM廣泛應(yīng)用于軟件缺陷預(yù)測(cè)、圖像掃描和文本分類等領(lǐng)域。但是作為一種新的學(xué)習(xí)機(jī)器,其參數(shù)選擇缺少統(tǒng)一方法和標(biāo)準(zhǔn),因而導(dǎo)致其軟件缺陷預(yù)測(cè)的精度不高;而且現(xiàn)有技術(shù)的思想都是單純地從對(duì)度量元屬性集采用不同方法進(jìn)行降維的角度去提高缺陷預(yù)測(cè)的精度。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明提供了一種用于預(yù)測(cè)軟件缺陷的方法和系統(tǒng),用以解決現(xiàn)有軟件缺陷預(yù)測(cè)精度不高,SVM參數(shù)選擇難的問(wèn)題。
      [0006]一種用于預(yù)測(cè)軟件缺陷的方法,包括以下步驟:
      [0007]步驟一、獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型;
      [0008]步驟二、利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集和SVM分類器的參數(shù)C、O的最優(yōu)取值;其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的屬性;參數(shù)C、σ的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、σ的值;
      [0009]步驟三、根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;
      [0010]步驟四、根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)。
      [0011]其中步驟一中得到基于SVM分類器的軟件缺陷預(yù)測(cè)模型采用下述方法:
      [0012]1.1對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼,生成初始個(gè)體,獲得初始種群;
      [0013]1.2對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、O的取值;根據(jù)得到的度量元屬性子集以及參數(shù)C、O的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率;[0014]1.3根據(jù)適應(yīng)度函數(shù)以及缺陷預(yù)測(cè)準(zhǔn)確率計(jì)算個(gè)體的適應(yīng)度評(píng)價(jià)值,并判斷個(gè)體的適應(yīng)度評(píng)價(jià)值是否滿足終止條件,是則輸出該個(gè)體對(duì)應(yīng)的屬性子集和對(duì)應(yīng)的SVM分類器參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;否則,進(jìn)行遺傳操作,不斷更新個(gè)體獲得新的種群,直至滿足終止條件為止。
      [0015]上述的適應(yīng)度函數(shù)為:F=100R-m|N-n| ;
      [0016]其中,R為SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率,N為當(dāng)前屬性子集中度量元屬性的個(gè)數(shù),η為常數(shù);m為權(quán)重系數(shù),用于調(diào)整追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間的權(quán)重,m越大表示對(duì)計(jì)算開(kāi)銷越敏感,m越小表示對(duì)計(jì)算開(kāi)銷越不敏感,而是更加注重缺陷預(yù)測(cè)的準(zhǔn)確率。
      [0017]上述的終止條件設(shè)定為個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了預(yù)設(shè)值,或是遺傳操作達(dá)到了預(yù)設(shè)的最大遺傳代數(shù)。
      [0018]上述的對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼采用以下方法:
      [0019]設(shè)定初始個(gè)體的染色體編碼總長(zhǎng)度為n+x+y位;
      [0020]前η位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性;
      [0021]中間的X位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)C,其中,C的取值范圍為(0,1000);
      [0022]尾部的y位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)σ,其取值范圍為(0,10)。
      [0023]步驟四中根據(jù)得到的最佳預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行預(yù)測(cè)采用以下方法:將待預(yù)測(cè)軟件中對(duì)應(yīng)的屬性數(shù)據(jù)輸入到預(yù)測(cè)模型中判斷屬性數(shù)據(jù)是否滿足包含缺陷的條件,是則在SVM分類器的輸出結(jié)果上作一種標(biāo)記,否則在SVM分類器的輸出結(jié)果上作另一種標(biāo)記。
      [0024]一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),包括:預(yù)測(cè)模型建立單元、尋優(yōu)單元和缺陷預(yù)測(cè)單元;
      [0025]預(yù)測(cè)模型建立單元,用于獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型;
      [0026]尋優(yōu)單元,用于利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值;根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的那些屬性;參數(shù)C、σ的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、σ的值;
      [0027]缺陷預(yù)測(cè)單元,用于根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)。
      [0028]所述的尋優(yōu)單元包括:編碼單元、SVM分類器訓(xùn)練單元和適應(yīng)度評(píng)價(jià)單元;
      [0029]編碼單元,用于對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼,生成初始個(gè)體,獲得初始種群;
      [0030]SVM分類器訓(xùn)練單元,用于對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、σ的取值;根據(jù)得到的度量元屬性子集以及參數(shù)C、σ的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率;
      [0031]適應(yīng)度評(píng)價(jià)單元,用于根據(jù)適應(yīng)度函數(shù)以及缺陷預(yù)測(cè)準(zhǔn)確率計(jì)算個(gè)體的適應(yīng)度評(píng)價(jià)值,并判斷個(gè)體的適應(yīng)度評(píng)價(jià)值是否滿足終止條件,是則輸出該個(gè)體對(duì)應(yīng)的屬性子集和對(duì)應(yīng)的SVM分類器參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;否則,進(jìn)行遺傳操作,不斷更新個(gè)體獲得新的種群,直至滿足終止條件為止。
      [0032]其中適應(yīng)度評(píng)價(jià)單元中的適應(yīng)度函數(shù)為:
      [0033]F=IOOR-m|N-η ;
      [0034]其中,R為SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率,N為當(dāng)前屬性子集中度量元屬性的個(gè)數(shù),η為常數(shù);m為權(quán)重系數(shù),用于調(diào)整追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間的權(quán)重,m越大表示對(duì)計(jì)算開(kāi)銷越敏感,m越小表示對(duì)計(jì)算開(kāi)銷越不敏感,而是更加注重缺陷預(yù)測(cè)的準(zhǔn)確率。
      [0035]所述的終止條件設(shè)定為個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了預(yù)設(shè)值,或者遺傳操作達(dá)到了預(yù)設(shè)的最大遺傳代數(shù)。
      [0036]其中對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼采用下述方法:
      [0037]設(shè)初始個(gè)體的染色體編碼總長(zhǎng)度為n+x+y位;
      [0038]前η位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性;
      [0039]中間的X位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)C,其中,C的取值范圍為(0,1000);
      [0040]尾部的y位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)σ,其取值范圍為(0,10)。
      [0041]其中缺陷預(yù)測(cè)單元將待預(yù)測(cè)軟件數(shù)據(jù)集中對(duì)應(yīng)的屬性數(shù)據(jù)輸入到最佳軟件缺陷預(yù)測(cè)模型中并判斷屬性數(shù)據(jù)是否滿足包含缺陷的條件;是則在SVM分類器的輸出結(jié)果上作一種標(biāo)記,否則在SVM分類器的輸出結(jié)果上作另一種標(biāo)記。
      [0042]本發(fā)明的有益效果:
      [0043]本發(fā)明以歷史數(shù)據(jù)集中各模塊的各種度量元屬性和模塊是否具有缺陷為初始輸入,然后使用遺傳算法對(duì)度量元屬性集進(jìn)行選擇,通過(guò)種群中各個(gè)個(gè)體的不斷繁殖進(jìn)化,選出在盡可能減少屬性個(gè)數(shù)的情況下,對(duì)缺陷預(yù)測(cè)具有最大利用價(jià)值的最優(yōu)屬性子集,并獲得基于此屬性子集的支持向量機(jī)最優(yōu)參數(shù),以此建立起基于支持向量機(jī)的軟件缺陷預(yù)測(cè)模型。在預(yù)測(cè)過(guò)程中,將所需預(yù)測(cè)的軟件模塊相應(yīng)的屬性值輸入模型中,即可得出對(duì)該軟件模塊是否具有缺陷的預(yù)測(cè)值。
      [0044]本發(fā)明能夠確保軟件缺陷預(yù)測(cè)的較高準(zhǔn)確度和支持向量機(jī)參數(shù)的優(yōu)化精度;同時(shí)將度量元屬性選擇和參數(shù)優(yōu)化一并統(tǒng)籌考慮,解決了這兩項(xiàng)工作之間可能存在的互相影響、互相關(guān)聯(lián)問(wèn)題。
      【專利附圖】

      【附圖說(shuō)明】
      [0045]圖1是本發(fā)明一個(gè)實(shí)施例提供的一種用于預(yù)測(cè)軟件缺陷方法的示意圖;
      [0046]圖2是本發(fā)明又一個(gè)實(shí)施例提供的一種用于預(yù)測(cè)軟件缺陷方法的流程圖;
      [0047]圖3是本發(fā)明一個(gè)實(shí)施例中個(gè)體的染色體編碼總長(zhǎng)度及位數(shù)分配示意圖;[0048]圖4是本發(fā)明一個(gè)實(shí)施例提供的一種用于預(yù)測(cè)軟件缺陷系統(tǒng)的框圖。
      【具體實(shí)施方式】
      [0049]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
      [0050]本發(fā)明的技術(shù)構(gòu)思是:軟件模塊的各種度量元屬性能夠較為全面地描述其自身特性,軟件模塊各類度量元的值越接近,則說(shuō)明模塊的各方面特點(diǎn)越相似,則它們存在缺陷的可能性也就越接近。本發(fā)明基于此,將歷史的軟件項(xiàng)目各模塊的各類度量值和存在缺陷與否作為知識(shí)數(shù)據(jù),并通過(guò)支持向量機(jī)作為分類器,根據(jù)待預(yù)測(cè)模塊的各類度量值,將其匹配到對(duì)應(yīng)的類別中,即預(yù)測(cè)出該模塊具有缺陷或者不存在缺陷。由于過(guò)多的度量元數(shù)據(jù)可能對(duì)于預(yù)測(cè)沒(méi)有實(shí)際意義,且會(huì)增加計(jì)算開(kāi)銷影響效率,且當(dāng)前對(duì)于支持向量機(jī)的參數(shù)選擇還沒(méi)有統(tǒng)一明確的方法,多是憑借經(jīng)驗(yàn)和大量實(shí)驗(yàn)人工獲得,本發(fā)明提出基于遺傳算法的度量元選擇和參數(shù)優(yōu)化方法,使用遺傳算法對(duì)度量元屬性集進(jìn)行選擇,通過(guò)種群中各個(gè)個(gè)體的不斷繁殖進(jìn)化,選出在盡可能減少屬性個(gè)數(shù)(即減少運(yùn)算開(kāi)銷)的情況下,對(duì)缺陷預(yù)測(cè)具有最大利用價(jià)值的最優(yōu)屬性子集,并獲得基于此屬性子集的支持向量機(jī)最優(yōu)參數(shù),以此建立起基于支持向量機(jī)的軟件缺陷預(yù)測(cè)模型,從而有效提高基于支持向量機(jī)的軟件缺陷預(yù)測(cè)精度。遺傳算法是指利用生物遺傳學(xué)的觀點(diǎn),結(jié)合適者生存和隨機(jī)信息交換的思想,通過(guò)自然選擇、交叉、變異等操作,更新個(gè)體實(shí)現(xiàn)種群的進(jìn)化。在尋優(yōu)過(guò)程中,遺傳算法(GeneticAlgorithm,簡(jiǎn)稱GA)在解空間隨機(jī)產(chǎn)生多個(gè)起始點(diǎn)并同時(shí)開(kāi)始搜索,由適應(yīng)度函數(shù)來(lái)指導(dǎo)搜索方向,是一種能夠在復(fù)雜搜索空間快速尋求全局優(yōu)化解的搜索技術(shù)。目前已在優(yōu)化和機(jī)器學(xué)習(xí)等領(lǐng)域得到了廣泛的應(yīng)用。
      [0051]本發(fā)明一個(gè)實(shí)施例提供了一種用于預(yù)測(cè)軟件缺陷的方法。圖1是本發(fā)明一個(gè)實(shí)施例提供的一種用于預(yù)測(cè)軟件缺陷方法的示意圖;參見(jiàn)圖1,該方法包括:
      [0052]步驟SlOO:獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型;
      [0053]步驟SllO:利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集和SVM分類器的參數(shù)C、O的值;
      [0054]步驟S120:根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;
      [0055]步驟S130:根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)。
      [0056]其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的那些屬性;參數(shù)C、σ的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、σ的取值。
      [0057]具體地,獲取訓(xùn)練數(shù)據(jù)集是指本實(shí)施例中以往版本軟件中各模塊的各種度量元屬性和模塊是否具有缺陷為初始輸入,得到訓(xùn)練數(shù)據(jù)集。同時(shí),本實(shí)施例采用支持向量機(jī)為工具建立軟件缺陷預(yù)測(cè)模型,支持向量機(jī)的基本思想是求解核函數(shù)和二次規(guī)劃問(wèn)題,通過(guò)核函數(shù)將數(shù)據(jù)映射到高維特征空間來(lái)解決非線性可分的問(wèn)題。徑向基核函數(shù)(Radial BasisFunction,簡(jiǎn)稱RBF)具有較寬的收斂范圍,是較理想的分類依據(jù)函數(shù),本發(fā)明即選用徑向基核函數(shù)。核函數(shù)的參數(shù)σ和參數(shù)(懲罰因子)C的選擇對(duì)SVM分類器的性能至關(guān)重要,只有選擇合適的模型參數(shù),SVM的優(yōu)越性才能更好地發(fā)揮出來(lái)。在本實(shí)施例中,采用目前使用最廣泛的徑向基函數(shù)對(duì)SVM進(jìn)行優(yōu)化,采用遺傳算法GA對(duì)其核參數(shù)σ和懲罰因子C進(jìn)行選擇。
      [0058]圖2是本發(fā)明又一個(gè)實(shí)施例提供的一種用于預(yù)測(cè)軟件缺陷方法的流程圖。參見(jiàn)圖2,本發(fā)明一個(gè)實(shí)施例提供的這種軟件缺陷預(yù)測(cè)方法的工作流程為:
      [0059]步驟S200:獲取訓(xùn)練數(shù)據(jù)集;
      [0060]步驟S201:建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型;
      [0061]步驟S202:對(duì)數(shù)據(jù)集的度量元屬性和SVM的參數(shù)進(jìn)行編碼
      [0062]具體地,步驟S202包括:設(shè)定初始個(gè)體的染色體編碼總長(zhǎng)度為n+x+y位;前11位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性;中間的X位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)懲罰因子C,其中,C的取值范圍為(0,1000);尾部的y位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)σ,其取值范圍為(0,10)。
      [0063]圖3是本發(fā)明一個(gè)實(shí)施例中個(gè)體的染色體編碼總長(zhǎng)度及位數(shù)分配示意圖;參見(jiàn)圖3,在本實(shí)施例中,設(shè)定個(gè)體的染色體編碼總長(zhǎng)度為η+40位,前η位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性。
      [0064]η代表了獲取的訓(xùn)練數(shù)據(jù)集中度量元屬性的個(gè)數(shù),有幾個(gè)度量元屬性,η就等于幾。由于獲取到的數(shù)據(jù)集不同,數(shù)據(jù)集中的度量元屬性的個(gè)數(shù)也會(huì)不同,η根據(jù)獲取到的數(shù)據(jù)集中的度量元屬性的不同而不同。
      [0065]參見(jiàn)圖3,中間的20位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)支持向量機(jī)SVM分類器的懲罰因子C,其中,C的取值范圍為(0,1000),本實(shí)施例中C的值精確到小數(shù)點(diǎn)后3位,則20位的長(zhǎng)度能夠滿足該精度,即用20位的染色體長(zhǎng)度表示一個(gè)精確到小數(shù)點(diǎn)后3位的SVM分類器中的懲罰因子C。
      [0066]參見(jiàn)圖3,尾部的20位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)核函數(shù)的參數(shù)σ,其取值范圍為(0,10)。本實(shí)施例中σ的取值精確到小數(shù)點(diǎn)后5位,同樣需要20位的編碼長(zhǎng)度滿足該精度。即用20位的染色體長(zhǎng)度表示一個(gè)精確到小數(shù)點(diǎn)后5位的核函數(shù)的參數(shù)σ。
      [0067]可以理解,在本發(fā)明的其他實(shí)施例中,個(gè)體的染色體編碼總長(zhǎng)度不限于η+40位,應(yīng)該根據(jù)訓(xùn)練集實(shí)際包含的度量元屬性集以及懲罰因子C和核參數(shù)σ的精度進(jìn)行具體確定。
      [0068]步驟S203:生成初始個(gè)體,并隨機(jī)初始化初始個(gè)體的值,即隨機(jī)地將染色體編碼總長(zhǎng)度中的前η位的值設(shè)為I或者O;初始化懲罰因子C的值以及核參數(shù)σ的值。初始化時(shí),對(duì)每個(gè)個(gè)體對(duì)應(yīng)的二進(jìn)制編碼位進(jìn)行賦值。
      [0069]步驟S204:獲得初始種群。在本實(shí)施例中,初始種群的大小為100,即一個(gè)種群包含100個(gè)個(gè)體。
      [0070]步驟S205:使用相應(yīng)的屬性子集和參數(shù)訓(xùn)練SVM ;
      [0071]對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、0的取值;根據(jù)得到的度量元屬性子集以及參數(shù)C、σ的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率。
      [0072]具體地,對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、O的取值。由于初始個(gè)體初始化時(shí),會(huì)在前η位中隨機(jī)的輸入I或者O,I代表選用該度量元屬性,O代表不選用該度量元屬性,在解碼時(shí),只取那些對(duì)應(yīng)值為I的度量元屬性,在數(shù)據(jù)集的η個(gè)度量元屬性中,所有編碼值為I的度量元屬性組成了一個(gè)度量元屬性子集。在初始個(gè)體時(shí),會(huì)給染色體編碼總長(zhǎng)度的中間20位賦一個(gè)C值,C的值精確到小數(shù)點(diǎn)后3位,S卩1/1000。在解碼時(shí),需將這中間20位用二進(jìn)制編碼表示的數(shù)值解碼成I個(gè)具體的C值。同樣地,在解碼時(shí),需將這尾部20位用二進(jìn)制編碼表示的數(shù)值解碼成I個(gè)具體的σ值。σ的值精確到小數(shù)點(diǎn)后5位,S卩1/10000。
      [0073]解碼后,根據(jù)得到的度量元屬性子集以及參數(shù)C、σ的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率。
      [0074]對(duì)于選定一個(gè)度量元屬性子集和SVM的參數(shù)C、σ的取值下計(jì)算得到的缺陷預(yù)測(cè)準(zhǔn)確率,采用十折交叉驗(yàn)證方法獲取當(dāng)前支持向量機(jī)的性能數(shù)據(jù)(如預(yù)測(cè)準(zhǔn)確率等等)。具體地,十折交叉驗(yàn)證方法為:將獲取到的訓(xùn)練數(shù)據(jù)集分成10份,其中I份做測(cè)試集,其余9份做訓(xùn)練集,計(jì)算得到I個(gè)在參數(shù)C、σ取值下的缺陷預(yù)測(cè)準(zhǔn)確率,如此重復(fù)10次,得到10個(gè)在參數(shù)C、σ取值下的缺陷預(yù)測(cè)準(zhǔn)確率。對(duì)這10個(gè)缺陷預(yù)測(cè)準(zhǔn)確率求平均,得到一個(gè)平均缺陷預(yù)測(cè)準(zhǔn)確率,將得到的平均預(yù)測(cè)準(zhǔn)確率作為當(dāng)前C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率。
      [0075]步驟S206:獲得適應(yīng)度評(píng)價(jià)值;根據(jù)適應(yīng)度函數(shù)以及缺陷預(yù)測(cè)準(zhǔn)確率計(jì)算個(gè)體的適應(yīng)度評(píng)價(jià)值。在本實(shí)施例中,適應(yīng)度函數(shù)為F=IOOR-m|N-n| ;其中,R為步驟S205中計(jì)算得到的缺陷預(yù)測(cè)準(zhǔn)確率,N為S205中采用的屬性子集中度量元屬性的個(gè)數(shù),η為常數(shù);m為權(quán)重系數(shù),用于調(diào)整追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間的權(quán)重,m越大表示對(duì)計(jì)算開(kāi)銷越敏感,m越小表示對(duì)計(jì)算開(kāi)銷越不敏感,而是更加注重缺陷預(yù)測(cè)的準(zhǔn)確率。
      [0076]對(duì)個(gè)體進(jìn)行適應(yīng)度評(píng)價(jià)的目的在于在追求軟件缺陷預(yù)測(cè)模型的缺陷預(yù)測(cè)準(zhǔn)確率越高越好的同時(shí)還要考慮到過(guò)多度量元屬性帶來(lái)的計(jì)算開(kāi)銷過(guò)大問(wèn)題。該函數(shù)通過(guò)調(diào)整權(quán)重系數(shù)m來(lái),更好地在追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間做一個(gè)平衡。
      [0077]步驟S207:判斷個(gè)體的適應(yīng)度評(píng)價(jià)值是否滿足終止條件,是則輸出該個(gè)體對(duì)應(yīng)的屬性子集和對(duì)應(yīng)的SVM分類器參數(shù)C、σ的取值。其中,終止條件為:
      [0078]個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了預(yù)先設(shè)定的值;或者,遺傳操作達(dá)到最大的遺傳代數(shù)。
      [0079]在本實(shí)施例中,最大的遺傳代數(shù)為500代;個(gè)體的適應(yīng)度評(píng)價(jià)值就是上述步驟S207中通過(guò)適應(yīng)度函數(shù)計(jì)算得到的F的值。當(dāng)F的值滿足預(yù)先設(shè)定的閥值或者遺傳操作達(dá)到了 500代時(shí),則確定個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了終止條件。
      [0080]步驟S208:得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;若步驟S207中的個(gè)體適應(yīng)度評(píng)價(jià)值達(dá)到了終止條件,則確定個(gè)體中對(duì)應(yīng)的度量元屬性子集和參數(shù)C、σ的值為最優(yōu),并根據(jù)該最優(yōu)參數(shù)C、σ的值計(jì)算出SVM分類器的最優(yōu)分類超平面函數(shù),根據(jù)該最優(yōu)分類超平面函數(shù)以及找到的軟件缺陷預(yù)測(cè)使用的最優(yōu)度量屬性子集得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型。
      [0081]步驟S211:否則,進(jìn)行遺傳操作,不斷更新個(gè)體獲得新的種群,直至滿足終止條件為止。
      [0082]若步驟S207中的個(gè)體適應(yīng)度評(píng)價(jià)值沒(méi)有達(dá)到終止條件,則對(duì)該個(gè)體進(jìn)行遺傳操作,不斷更新個(gè)體,獲得新的種群,直到滿足終止條件為止。遺傳操作具體包括選擇、交叉、變異。
      [0083]優(yōu)化完成后,根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè),具體地:
      [0084]步驟S209:輸入測(cè)試數(shù)據(jù)集;根據(jù)步驟S208得到了最優(yōu)的支持向量機(jī)模型和最優(yōu)屬性子集;在具體預(yù)測(cè)時(shí),需要收集待預(yù)測(cè)的軟件模塊對(duì)應(yīng)最優(yōu)屬性子集中的度量元數(shù)據(jù),將這些度量元數(shù)據(jù)輸入到最佳缺陷預(yù)測(cè)模型中。
      [0085]步驟S210:將度量元數(shù)據(jù)輸入到最佳缺陷預(yù)測(cè)模型后,即可得到對(duì)于該模型是否具有缺陷的預(yù)測(cè)值。是則在SVM分類器的輸出結(jié)果上作一種標(biāo)記,否則在SVM分類器的輸出結(jié)果上作另一種標(biāo)記。在本實(shí)施例中,采用字母“N”表示該軟件模塊中沒(méi)有缺陷,字母“Y”則表示該軟件模塊中包含缺陷,需要軟件測(cè)試人員采取有效對(duì)策,著重對(duì)此模塊加以測(cè)試。
      [0086]由此,本發(fā)明基于遺傳算法GA和支持向量機(jī)SVM建立軟件缺陷預(yù)測(cè)模型,同時(shí)尋找對(duì)軟件缺陷預(yù)測(cè)使用的最優(yōu)的度量屬性子集以及SVM的參數(shù),解決了度量元屬性子集選擇與SVM參數(shù)選擇之間可能存在的相互關(guān)聯(lián)的問(wèn)題。同時(shí)采用本方法可以進(jìn)一步提高提高軟件缺陷預(yù)測(cè)的精度。
      [0087]本發(fā)明又一個(gè)實(shí)施例提供了一種用于預(yù)測(cè)軟件缺陷的系統(tǒng),圖4是本發(fā)明一個(gè)實(shí)施例提供的一種用于預(yù)測(cè)軟件缺陷系統(tǒng)的框圖。參見(jiàn)圖4,該系統(tǒng)包括:預(yù)測(cè)模型建立單元410、尋優(yōu)單元420和缺陷預(yù)測(cè)單元430 ;
      [0088]預(yù)測(cè)模型建立單元410,用于獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型;
      [0089]尋優(yōu)單元420,用于利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的取值;根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;
      [0090]缺陷預(yù)測(cè)單元430,用于根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè);
      [0091]其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的那些屬性;參數(shù)C、O的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、O
      [0092]在本實(shí)施例中,尋優(yōu)單元420包括:編碼單元、SVM分類器訓(xùn)練單元和適應(yīng)度評(píng)價(jià)單元;
      [0093]編碼單元,用于對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼,生成初始個(gè)體,并隨機(jī)初始化初始個(gè)體的值,獲得初始種群;
      [0094]SVM分類器訓(xùn)練單元,用于對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、σ的取值;根據(jù)得到的度量元屬性子集以及參數(shù)C、σ的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率;
      [0095]適應(yīng)度評(píng)價(jià)單元,用于根據(jù)適應(yīng)度函數(shù)以及缺陷預(yù)測(cè)準(zhǔn)確率計(jì)算個(gè)體的適應(yīng)度評(píng)價(jià)值,并判斷個(gè)體的適應(yīng)度評(píng)價(jià)值是否滿足終止條件,是則輸出該個(gè)體對(duì)應(yīng)的屬性子集和對(duì)應(yīng)的SVM分類器參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;否則,進(jìn)行遺傳操作,不斷更新個(gè)體獲得新的種群,直至滿足終止條件為止;
      [0096]在本實(shí)施例中,適應(yīng)度評(píng)價(jià)單元中的適應(yīng)度函數(shù)為:F=100R-m|N_n| ;其中,R為SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率,N為當(dāng)前屬性子集中度量元屬性的個(gè)數(shù),η為常數(shù);m為權(quán)重系數(shù),用于調(diào)整追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間的權(quán)重,m越大表示對(duì)計(jì)算開(kāi)銷越敏感,m越小表示對(duì)計(jì)算開(kāi)銷越不敏感,而是更加注重缺陷預(yù)測(cè)的準(zhǔn)確率。
      [0097]在本實(shí)施例中,終止條件為:個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了預(yù)設(shè)值;或者,遺傳操作達(dá)到了預(yù)設(shè)的最大遺傳代數(shù)。
      [0098]在本實(shí)施例中,對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼包括:
      [0099]設(shè)初始個(gè)體的染色體編碼總長(zhǎng)度為n+x+y位;
      [0100]前η位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性;
      [0101]中間的X位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)懲罰因子C,其中,C的取值范圍為(0,1000);
      [0102]尾部的y位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)O,其取值范圍為(0,10)。
      [0103]在本實(shí)施例中,缺陷預(yù)測(cè)單元430,用于根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)包括:
      [0104]將待預(yù)測(cè)軟件數(shù)據(jù)集中對(duì)應(yīng)的屬性數(shù)據(jù)輸入到最佳軟件缺陷預(yù)測(cè)模型中并判斷屬性數(shù)據(jù)是否滿足包含缺陷的條件;是則在SVM分類器的輸出結(jié)果上作一種標(biāo)記,否則在SVM分類器的輸出結(jié)果上作另一種標(biāo)記。
      [0105]需要注意的是,本發(fā)明實(shí)施例提供的這種用于預(yù)測(cè)軟件缺陷的系統(tǒng)與前述用于預(yù)測(cè)軟件缺陷的方法是相對(duì)應(yīng)的,具體的工作過(guò)程參見(jiàn)前述方法實(shí)施例,此處不在贅述。
      [0106]綜上所述,本發(fā)明通過(guò)遺傳算法利用種群中各個(gè)個(gè)體的不斷繁殖進(jìn)化,選出在盡可能減少屬性個(gè)數(shù)的情況下,對(duì)缺陷預(yù)測(cè)具有最大利用價(jià)值的最優(yōu)屬性子集,并獲得基于此屬性子集的支持向量機(jī)最優(yōu)參數(shù),以此建立起基于支持向量機(jī)的軟件缺陷預(yù)測(cè)模型。本發(fā)明的有益效果在于:首先,解決了度量元屬性選擇(即數(shù)據(jù)降維)與SVM參數(shù)選擇之間可能存在的相互關(guān)聯(lián)問(wèn)題;其次,通過(guò)調(diào)整適應(yīng)度函數(shù)中的權(quán)重參數(shù),在追求缺陷預(yù)測(cè)準(zhǔn)確率和計(jì)算開(kāi)銷之間找到一種平衡,這樣實(shí)際使用中更加靈活;最后,本發(fā)明技術(shù)方案能夠進(jìn)一步提高軟件缺陷預(yù)測(cè)的準(zhǔn)確率。
      [0107]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
      【權(quán)利要求】
      1.一種用于預(yù)測(cè)軟件缺陷的方法,其特征在于,包括以下步驟: 步驟一、獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型; 步驟二、利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集和SVM分類器的參數(shù)C、σ的最優(yōu)取值;其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的屬性;參數(shù)C、σ的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、σ的值; 步驟三、根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型; 步驟四、根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)。
      2.如權(quán)利要求1所述的一種用于預(yù)測(cè)軟件缺陷的方法,其特征在于,其中步驟一中得到基于SVM分類器的軟件缺陷預(yù)測(cè)模型采用下述方法: 1.1對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性以及SVM分類器的參數(shù)C、O進(jìn)行二進(jìn)制編碼,生成初始個(gè)體,獲得初始種群; 1.2對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、0的取值;根據(jù)得到的度量元屬性子集以及參數(shù)C、σ的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率; 1.3根據(jù)適應(yīng)度函數(shù)以及缺陷預(yù)測(cè)準(zhǔn)確率計(jì)算個(gè)體的適應(yīng)度評(píng)價(jià)值,并判斷個(gè)體的適應(yīng)度評(píng)價(jià)值是否滿足終止 條件,是則輸出該個(gè)體對(duì)應(yīng)的屬性子集和對(duì)應(yīng)的SVM分類器參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;否則,進(jìn)行遺傳操作,不斷更新個(gè)體獲得新的種群,直至滿足終止條件為止。
      3.如權(quán)利要求2所述的一種用于預(yù)測(cè)軟件缺陷的方法,其特征在于,上述的適應(yīng)度函數(shù)為:F=100R-m|N-n ; 其中,R為SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率,N為當(dāng)前屬性子集中度量元屬性的個(gè)數(shù),η為常數(shù);m為權(quán)重系數(shù),用于調(diào)整追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間的權(quán)重,m越大表示對(duì)計(jì)算開(kāi)銷越敏感,m越小表示對(duì)計(jì)算開(kāi)銷越不敏感,而是更加注重缺陷預(yù)測(cè)的準(zhǔn)確率。
      4.如權(quán)利要求2或3所述的一種用于預(yù)測(cè)軟件缺陷的方法,其特征在于,上述的終止條件設(shè)定為個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了預(yù)設(shè)值,或是遺傳操作達(dá)到了預(yù)設(shè)的最大遺傳代數(shù)。
      5.如權(quán)利要求2或3所述的一種用于預(yù)測(cè)軟件缺陷的方法,其特征在于,上述的對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼采用以下方法: 設(shè)定初始個(gè)體的染色體編碼總長(zhǎng)度為n+x+y位; 前η位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為O,則表示不選用該度量元屬性; 中間的X位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)C,其中,C的取值范圍為(O,1000); 尾部的y位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)σ,其取值范圍為(0,10)。
      6.如權(quán)利要求1或2或3所述的一種用于預(yù)測(cè)軟件缺陷的方法,其特征在于,步驟四中根據(jù)得到的最佳預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行預(yù)測(cè)采用以下方法:將待預(yù)測(cè)軟件中對(duì)應(yīng)的屬性數(shù)據(jù)輸入到預(yù)測(cè)模型中判斷屬性數(shù)據(jù)是否滿足包含缺陷的條件,是則在SVM分類器的輸出結(jié)果上作一種標(biāo)記,否則在SVM分類器的輸出結(jié)果上作另一種標(biāo)記。
      7.一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),其特征在于,包括:預(yù)測(cè)模型建立單元、尋優(yōu)單元和缺陷預(yù)測(cè)單元; 預(yù)測(cè)模型建立單元,用于獲取訓(xùn)練數(shù)據(jù)集,并建立基于SVM分類器的軟件缺陷預(yù)測(cè)模型; 尋優(yōu)單元,用于利用遺傳算法同時(shí)尋找訓(xùn)練數(shù)據(jù)集的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值;根據(jù)得到的最優(yōu)度量元屬性子集以及SVM分類器的參數(shù)C、σ的最優(yōu)取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;其中,最優(yōu)度量元屬性子集是指能夠獨(dú)立代表訓(xùn)練數(shù)據(jù)集相應(yīng)模塊的那些屬性;參數(shù)C、σ的最優(yōu)取值是指能夠確定SVM分類器最優(yōu)分類超平面函數(shù)的那組參數(shù)C、σ的值; 缺陷預(yù)測(cè)單元,用于根據(jù)得到的最佳軟件缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件進(jìn)行缺陷預(yù)測(cè)。
      8.如權(quán)利要求7所述的一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),其特征在于,所述的尋優(yōu)單元包括:編碼單元、SVM分類器訓(xùn)練單元和適應(yīng)度評(píng)價(jià)單元; 編碼單元,用于對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼,生成初始個(gè)體,獲得初始種群; SVM分類器訓(xùn)練單元,用于對(duì)初始個(gè)體進(jìn)行解碼,得到二進(jìn)制編碼對(duì)應(yīng)的度量元屬性子集以及SVM分類器的參數(shù)C、σ的取值;根據(jù)得到的度量元屬性子集以及參數(shù)C、σ的取值對(duì)SVM分類器進(jìn)行訓(xùn)練,得到在度量元屬性子集和參數(shù)C、σ取值下的SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率; 適應(yīng)度評(píng)價(jià)單元,用于根據(jù)適應(yīng)度函數(shù)以及缺陷預(yù)測(cè)準(zhǔn)確率計(jì)算個(gè)體的適應(yīng)度評(píng)價(jià)值,并判斷個(gè)體的適應(yīng)度評(píng)價(jià)值是否滿足終止條件,是則輸出該個(gè)體對(duì)應(yīng)的屬性子集和對(duì)應(yīng)的SVM分類器參數(shù)C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預(yù)測(cè)模型;否則,進(jìn)行遺傳操作,不斷更新個(gè)體獲得新的種群,直至滿足終止條件為止。
      9.如權(quán)利要求8所述的一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),其特征在于,其中適應(yīng)度評(píng)價(jià)單元中的適應(yīng)度函數(shù)為: F=IOOR-m|N-η ; 其中,R為SVM分類器的缺陷預(yù)測(cè)準(zhǔn)確率,N為當(dāng)前屬性子集中度量元屬性的個(gè)數(shù),η為常數(shù);m為權(quán)重系數(shù),用于調(diào)整追求較高分類準(zhǔn)確率和減少計(jì)算開(kāi)銷兩者之間的權(quán)重,m越大表示對(duì)計(jì)算開(kāi)銷越敏感,m越小表示對(duì)計(jì)算開(kāi)銷越不敏感,而是更加注重缺陷預(yù)測(cè)的準(zhǔn)確率。
      10.如權(quán)利要求8或9所述的一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),其特征在于,所述的終止條件設(shè)定為個(gè)體的適應(yīng)度評(píng)價(jià)值達(dá)到了預(yù)設(shè)值,或者遺傳操作達(dá)到了預(yù)設(shè)的最大遺傳代數(shù)。
      11.如權(quán)利要求8或9所述的一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),其特征在于,其中對(duì)訓(xùn)練數(shù)據(jù)集中的度量元屬性集以及SVM分類器的參數(shù)C、σ進(jìn)行二進(jìn)制編碼采用下述方法: 設(shè)初始個(gè)體的染色 體編碼總長(zhǎng)度為n+x+y位; 前η位編碼長(zhǎng)度每位對(duì)應(yīng)訓(xùn)練數(shù)據(jù)集中的一個(gè)度量元屬性;其中,每一位的取值有兩種情況:1或O ;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性; 中間的X位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)C,其中,C的取值范圍為(O,1000); 尾部的y位編碼長(zhǎng)度對(duì)應(yīng)一個(gè)參數(shù)σ,其取值范圍為(0,10)。
      12.如權(quán)利要求8或9所述的一種用于軟件缺陷預(yù)測(cè)的系統(tǒng),其特征在于,其中缺陷預(yù)測(cè)單元將待預(yù)測(cè)軟件數(shù)據(jù)集中對(duì)應(yīng)的屬性數(shù)據(jù)輸入到最佳軟件缺陷預(yù)測(cè)模型中并判斷屬性數(shù)據(jù)是否滿足包含缺陷的條件;是則在SVM分類器的輸出結(jié)果上作一種標(biāo)記,否則在SVM分類器的 輸出結(jié)果上作另一種標(biāo)記。
      【文檔編號(hào)】G06F11/36GK103810102SQ201410056820
      【公開(kāi)日】2014年5月21日 申請(qǐng)日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
      【發(fā)明者】胡昌振, 薛靜鋒, 王男帥, 單純, 胡晶晶 申請(qǐng)人:北京理工大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1