[發明專利]一種用于預測軟件缺陷的方法和系統無效
| 申請號: | 201410056820.2 | 申請日: | 2014-02-19 |
| 公開(公告)號: | CN103810102A | 公開(公告)日: | 2014-05-21 |
| 發明(設計)人: | 胡昌振;薛靜鋒;王男帥;單純;胡晶晶 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F19/00 |
| 代理公司: | 北京理工大學專利中心 11120 | 代理人: | 仇蕾安 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 預測 軟件 缺陷 方法 系統 | ||
技術領域
本發明屬于軟件安全技術領域,涉及一種用于預測軟件缺陷的方法和系統。
背景技術
軟件缺陷預測技術經歷了長期的發展并持續保持活躍。各種預測技術有著不同的適應面,解決不同的問題,也有不同的局限。具體的客戶需求、環境、產品特征、組織的歷史數據等情況不同,適用的缺陷預測技術也不同。
靜態的軟件缺陷預測技術起源較早,早期研究集中主要集中在基于軟件規模等度量元的缺陷預測方面,即研究缺陷和軟件規模、復雜度等基本屬性之間的關系,以此預測軟件可能存在的缺陷數量。20世紀90年代初,人們發現缺陷并非在軟件中平均或者完全隨機地分布,出現了針對缺陷分布的預測技術,本發明則屬于缺陷分布預測技術的一種。
這類技術中,基于支持向量機(Support?Vector?Machine,簡稱SVM)的缺陷預測已被驗證是較為有效的方法,SVM是一種以有限樣本統計學習理論為基礎發展起來的新的通用學習方法,有效地解決了小樣本、高維數、非線性等的學習問題。SVM廣泛應用于軟件缺陷預測、圖像掃描和文本分類等領域。但是作為一種新的學習機器,其參數選擇缺少統一方法和標準,因而導致其軟件缺陷預測的精度不高;而且現有技術的思想都是單純地從對度量元屬性集采用不同方法進行降維的角度去提高缺陷預測的精度。
發明內容
本發明提供了一種用于預測軟件缺陷的方法和系統,用以解決現有軟件缺陷預測精度不高,SVM參數選擇難的問題。
一種用于預測軟件缺陷的方法,包括以下步驟:
步驟一、獲取訓練數據集,并建立基于SVM分類器的軟件缺陷預測模型;
步驟二、利用遺傳算法同時尋找訓練數據集的最優度量元屬性子集和SVM分類器的參數C、σ的最優取值;其中,最優度量元屬性子集是指能夠獨立代表訓練數據集相應模塊的屬性;參數C、σ的最優取值是指能夠確定SVM分類器最優分類超平面函數的那組參數C、σ的值;
步驟三、根據得到的最優度量元屬性子集以及SVM分類器的參數C、σ的最優取值,得到基于SVM分類器的最佳軟件缺陷預測模型;
步驟四、根據得到的最佳軟件缺陷預測模型對待測軟件進行缺陷預測。
其中步驟一中得到基于SVM分類器的軟件缺陷預測模型采用下述方法:
1.1對訓練數據集中的度量元屬性以及SVM分類器的參數C、σ進行二進制編碼,生成初始個體,獲得初始種群;
1.2對初始個體進行解碼,得到二進制編碼對應的度量元屬性子集以及SVM分類器的參數C、σ的取值;根據得到的度量元屬性子集以及參數C、σ的取值對SVM分類器進行訓練,得到在度量元屬性子集和參數C、σ取值下的SVM分類器的缺陷預測準確率;
1.3根據適應度函數以及缺陷預測準確率計算個體的適應度評價值,并判斷個體的適應度評價值是否滿足終止條件,是則輸出該個體對應的屬性子集和對應的SVM分類器參數C、σ的取值,得到基于SVM分類器的最佳軟件缺陷預測模型;否則,進行遺傳操作,不斷更新個體獲得新的種群,直至滿足終止條件為止。
上述的適應度函數為:F=100R–m|N–n|;
其中,R為SVM分類器的缺陷預測準確率,N為當前屬性子集中度量元屬性的個數,n為常數;m為權重系數,用于調整追求較高分類準確率和減少計算開銷兩者之間的權重,m越大表示對計算開銷越敏感,m越小表示對計算開銷越不敏感,而是更加注重缺陷預測的準確率。
上述的終止條件設定為個體的適應度評價值達到了預設值,或是遺傳操作達到了預設的最大遺傳代數。
上述的對訓練數據集中的度量元屬性集以及SVM分類器的參數C、σ進行二進制編碼采用以下方法:
設定初始個體的染色體編碼總長度為n+x+y位;
前n位編碼長度每位對應訓練數據集中的一個度量元屬性;其中,每一位的取值有兩種情況:1或0;若某位取值為1,則表示選用該度量元屬性,若某位取值為0,則表示不選用該度量元屬性;
中間的x位編碼長度對應一個參數C,其中,C的取值范圍為(0,1000);
尾部的y位編碼長度對應一個參數σ,其取值范圍為(0,10)。
步驟四中根據得到的最佳預測模型對待測軟件進行預測采用以下方法:將待預測軟件中對應的屬性數據輸入到預測模型中判斷屬性數據是否滿足包含缺陷的條件,是則在SVM分類器的輸出結果上作一種標記,否則在SVM分類器的輸出結果上作另一種標記。
一種用于軟件缺陷預測的系統,包括:預測模型建立單元、尋優單元和缺陷預測單元;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410056820.2/2.html,轉載請聲明來源鉆瓜專利網。





