[發明專利]一種基于相似度分析的源代碼版本演化注釋復用方法有效
| 申請號: | 201611204086.5 | 申請日: | 2016-12-23 |
| 公開(公告)號: | CN106843840B | 公開(公告)日: | 2020-04-17 |
| 發明(設計)人: | 李斌;賈荻;陳晨;余海;賀也平 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44;G06F40/30 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 司立彬 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 相似 分析 源代碼 版本 演化 注釋 方法 | ||
1.一種基于相似度分析的源代碼版本演化注釋復用方法,其步驟為:
1)查找目標源代碼的新版本,對該新版本進行遍歷,生成該新版本的標識符信息并寫入復用庫;
2)對該目標源代碼與該新版本進行文本相似度分析,將該目標源代碼中與該新版本相同的代碼片段的標識符對應的注釋寫入復用庫中對應標識符的注釋字段;將該目標源代碼中剩余的代碼片段的標識符寫入一文本相似度分析中間文件;
3)根據該文本相似度分析中間文件中記錄的每一標識符及其對應代碼片段生成一功能相似度信息;所述功能相似度信息為代碼片段的語法樹或控制流圖;
4)對于該文本相似度分析中間文件中的標識符,根據該目標源代碼中該標識符對應的代碼片段與該新版本該標識符對應的代碼片段生成該標識符的克隆對;
5)利用代碼克隆檢測技術對每一克隆對的功能相似度進行分析,并將功能相似度大于設定閾值的克隆對對應的標識符在該目標源代碼中的注釋寫入該復用庫中該標識符的注釋字段;
其中,檢測所述克隆對的功能相似度的方法為:基于語法的檢測技術生成該目標源代碼中標識符對應的代碼片段的抽象語法樹以及該新版本該標識符對應的代碼片段的抽象語法樹;如果克隆對對應的兩抽象語法樹相似度大于設定閾值,則將該克隆對對應的標識符在該目標源代碼中的注釋寫入該復用庫中該標識符的注釋字段;
或者,檢測所述克隆對的功能相似度的方法為:基于語義的檢測技術生成該目標源代碼中標識符對應的代碼片段的控制流圖以及該新版本該標識符對應的代碼片段的控制流圖;如果克隆對對應的兩控制流圖相似度大于設定閾值,則將該克隆對對應的標識符在該目標源代碼中的注釋寫入該復用庫中該標識符的注釋字段。
2.如權利要求1所述的方法,其特征在于,所述標識符信息包括函數、結構體、宏定義。
3.如權利要求1所述的方法,其特征在于,所述目標源代碼的新版本為目標源代碼的演化版本或升級版本。
4.如權利要求1或3所述的方法,其特征在于,所述復用庫至少包含文件表和標識符表;其中文件表包含文件名稱、文件路徑、文件類型、文件注釋、對應版本,標識符表包含標識符名稱、標識符類型、所屬文件、標識符注釋。
5.如權利要求1所述的方法,其特征在于,利用diff差異分析技術對該目標源代碼與該新版本進行文本相似度分析。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611204086.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:爆震傳感器
- 下一篇:使用在抽煙狀態下的過濾嘴





