[發明專利]一種基于聚類分析的軟件缺陷修復模板提取方法有效
| 申請號: | 201810637180.2 | 申請日: | 2018-06-20 |
| 公開(公告)號: | CN109165155B | 公開(公告)日: | 2021-06-22 |
| 發明(設計)人: | 孫小兵;朱軒銳;李斌 | 申請(專利權)人: | 揚州大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/41;G06F8/70 |
| 代理公司: | 南京理工大學專利中心 32203 | 代理人: | 馬魯晉 |
| 地址: | 226009 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 聚類分析 軟件 缺陷 修復 模板 提取 方法 | ||
1.一種基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,包括以下步驟:
步驟1、定義bug的細粒度修改模式,之后對bug缺陷庫中的bug進行文本分析處理,識別出每個bug相關的細粒度修改模式;
步驟2、利用代碼分析技術對每個bug相關的細粒度修改模式的程序元素進行捕獲;
步驟3、確定步驟2捕獲的每個bug中程序元素之間的關系,然后將同一類型的頂層程序元素歸為該bug的一個頂層修改模式多重集;之后對所有bug的頂層修改模式多重集進行層次聚類,獲得聚類后的多個頂層修改模式多重集;
步驟4、根據頂層修改模式多重集對應的程序元素,獲取每個頂層修改模式多重集對應的新的修改模式多重集;
步驟5、根據程序元素之間的關系,確定步驟4獲得的所有新的修改模式多重集之間的關系,之后對新的修改模式多重集進行連接,獲得修改模式多重集圖;
步驟6、利用頻繁模式挖掘技術對步驟5獲得的修改模式多重集圖進行分割優化,獲得修改模式聚類;
步驟7、根據步驟6獲得的修改模式聚類構建軟件缺陷修復模板。
2.根據權利要求1所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟1中所述對bug缺陷庫中的bug進行文本分析處理,識別出每個bug相關的細粒度修改模式,具體為:通過解析數據、搜索檢索、文本挖掘,識別出每個bug的條件語句、賦值語句、接口、變量方面的細粒度修改模式。
3.根據權利要求1所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟2中所述程序元素包括類、接口、方法和字段。
4.根據權利要求1所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟3具體為:
步驟3-1、利用自頂向下的方法確定步驟2捕獲的每個bug中程序元素之間的關系,并將同一類型的頂層程序元素歸為該bug的一個頂層修改模式多重集;其中所述程序元素之間的關系包括聲明、擴展、調用、實現和讀取;
步驟3-2、利用代碼相似性和啟發式規則對所有bug的頂層修改模式多重集進行層次聚類,獲得聚類后的多個頂層修改模式多重集。
5.根據權利要求4所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟3-2所述代碼相似性為代碼的相似程度,其是通過代碼相似度衡量,而代碼相似度是由杰卡德相似系數來表示,杰卡德相似系數為:
式中,s1、s2分別為第一源代碼塊、第二源代碼塊。
6.根據權利要求5所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟3-2所述利用代碼相似性和啟發式規則對步驟2獲得的頂層程序元素進行層次聚類,定義以下規則:程序元素類與接口之間的相似度、類與超類之間的相似度均為0,即無相似性。
7.根據權利要求1所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟4所述根據頂層修改模式多重集對應的程序元素,獲取每個頂層修改模式多重集對應的新的修改模式多重集,具體為:
若頂層修改模式多重集對應的程序元素為方法、字段,則將該頂層修改模式多重集直接作為其對應的新的修改模式多重集;
若頂層修改模式多重集對應的程序元素為類、接口,利用聲明規則對該頂層修改模式多重集進行遞歸,直至獲得僅包含方法、字段的修改模式多重集,將遞歸過程中的所有修改模式多重集作為該頂層修改模式多重集對應的新的修改模式多重集。
8.根據權利要求1所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟6所述利用頻繁模式挖掘技術對步驟5獲得的修改模式多重集圖進行分割優化,獲得修改模式聚類具體為:
步驟6-1、對修改模式多重集圖進行過濾,將修改模式多重集圖中每個修改模式多重集的超集、與該修改模式多重集具有相同支持的修改模式多重集過濾;
步驟6-2、根據修改模式多重集之間的依賴性對步驟6-1過濾后剩余的修改模式多重集進行排序,獲得修改模式聚類。
9.根據權利要求1所述的基于聚類分析的軟件缺陷修復模板提取方法,其特征在于,步驟7所述軟件缺陷修復模板包括名稱、參數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于揚州大學,未經揚州大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810637180.2/1.html,轉載請聲明來源鉆瓜專利網。





