[發明專利]結合代碼演化信息構造代碼壞味訓練數據集的方法有效
| 申請號: | 201711365477.X | 申請日: | 2017-12-18 |
| 公開(公告)號: | CN108108168B | 公開(公告)日: | 2021-02-02 |
| 發明(設計)人: | 王逸君;周曉聰 | 申請(專利權)人: | 中山大學 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06N3/08;G06K9/62 |
| 代理公司: | 廣州粵高專利商標代理有限公司 44102 | 代理人: | 林麗明 |
| 地址: | 510275 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 結合 代碼 演化 信息 構造 訓練 數據 方法 | ||
本發明涉及一種結合代碼演化信息構造代碼壞味訓練數據集的方法,包括有以下步驟:A、從網絡源代碼倉庫中獲取一個軟件的基線版本和基線版本之后的對照版本的源代碼;B、對基線版本和對照版本的源代碼實體進行檢測,并提取基線版本中的變化壞味實體和無壞味實體,將變化壞味實體標注為具有壞味的實體,將無壞味實體標注為不具有壞味的實體;C、抽取數量與變化壞味實體數量相當的無壞味實體;D、計算變化壞味實體和無壞味實體在基線版本源代碼中的度量特征;E、變化壞味實體和無壞味實體組成變化壞味訓練數據集;F、利用遺傳算法對變化壞味訓練數據集內的實體的度量特征進行降維,降維后的變化壞味實體和無壞味實體組成代碼壞味訓練數據集。
技術領域
本發明涉及代碼壞味檢測技術領域,更具體地,涉及一種結合代碼演化信息構造代碼壞味訓練數據集的方法。
背景技術
代碼壞味自動檢測是目前軟件工程研究的熱點問題之一,其中一類重要的方法是基于機器學習算法構建模型對代碼是否存在壞味進行分類,影響這類方法準確性的關鍵之一是用于構建機器學習算法模型的訓練數據集。目前這類方法都是使用多個開源軟件項目,通過人工審查項目源代碼或使用自動工具(例如iPlasma,inFusion,PMD等)標注項目的實體(類/方法)是否含有代碼壞味,將這些開源軟件項目的實體及其是否有壞味的標注作為有監督機器學習算法的訓練數據集,得到有壞味實體的特征訓練模型,然后進行代碼壞味的自動檢測。
近年來,代碼壞味自動檢測的研究取得了一定的成果。Maiga等學者于2012年提出的一種支持向量機的方法檢測軟件源代碼中的壞味,通過一個給定的訓練集,可以學習如何識別類似的壞味。這種方法的特點是不依賴于大量的反模式知識,通過采用增量的支持向量機和程序員的反饋來提高精度。但是用于支持向量機算法訓練的數據集依然需要根據壞味的定義和上下文,人工進行標注。Palomba等學者于2013年提出的一種名為HIST(Historical Information for Smell deTection)的方法,他們通過分析從版本管理工具中提取出的歷史修改信息采用啟發式算法檢測壞味,這種方法要求待檢測的程序需要有版本管理工具提供修改信息,同時由于版本管理工具只提供文件級別的變化,依然需要人工標注文件內部各個類、方法、屬性的變化,最后對于壞味實體的判斷需要人工的參與。Sahin等學者于2014年將獲取壞味檢測規則的方法定義為一個雙層優化問題,上層是基于遺傳算法生成的檢測規則,而下層是典型的壞味實體,只有下層的最優選擇才會成為上層優化的候選方案。這種方法的檢測依據仍然是程序度量值,通過上層的遺傳算法總結規律,但是下層的典型壞味數據集仍然需要人工標注,其數量有限,并且不能保證覆蓋各種壞味情況。ShizheFu等學者于2015年采用關聯分析的方法結合演化信息識別壞味,這種方法首先從版本管理工具中提取目標系統的變化信息,然后進行預處理構造變化數據集,接下來采用頻繁項算法,比如Apriori或FP增長算法對變化數據集進行挖掘,輸出不同代碼實體的耦合情況,最后根據不同的壞味在文獻中的定義,定義啟發式算法,將關聯規則和結構信息結合起來自動尋找壞味。這種方法和HIST比較相似,仍然需要手工的干預,并且結合了演化數據來檢測壞味。Lucas等學者于2015年研究了決策樹算法在識別壞味方面的有效性,他們基于Ptidej團隊的數據集,通過決策樹算法生成模型進行預測,結果表明決策樹算法能夠有效的學習壞味檢測的規則,但是這種方法的準確率依然取決于標注的可信度。
綜上可知,現有的標注方法通常是基于人工或者工具,但都存在局限性。通過人工審查項目源代碼標注壞味依賴審查者的主觀經驗,且難以對大規模的項目源代碼進行人工審查;使用自動工具標注壞味則依賴工具本身的準確度,但自動工具本身的準確度難以保證,甚至不同的自動工具對同一個實體是否有壞味的檢測結果也不盡相同。這些問題使得要得到大規模可信的訓練數據集變得很困難,所以有必要加以改進。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中山大學,未經中山大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711365477.X/2.html,轉載請聲明來源鉆瓜專利網。
- 信息記錄介質、信息記錄方法、信息記錄設備、信息再現方法和信息再現設備
- 信息記錄裝置、信息記錄方法、信息記錄介質、信息復制裝置和信息復制方法
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄設備、信息重放設備、信息記錄方法、信息重放方法、以及信息記錄介質
- 信息存儲介質、信息記錄方法、信息重放方法、信息記錄設備、以及信息重放設備
- 信息存儲介質、信息記錄方法、信息回放方法、信息記錄設備和信息回放設備
- 信息記錄介質、信息記錄方法、信息記錄裝置、信息再現方法和信息再現裝置
- 信息終端,信息終端的信息呈現方法和信息呈現程序
- 信息創建、信息發送方法及信息創建、信息發送裝置





