[發明專利]一種計算機軟件源代碼相似度檢測方法在審
| 申請號: | 201510794525.1 | 申請日: | 2015-11-18 |
| 公開(公告)號: | CN105426711A | 公開(公告)日: | 2016-03-23 |
| 發明(設計)人: | 嵩天;田星;李鳳霞;劉政祎 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F21/16 | 分類號: | G06F21/16 |
| 代理公司: | 北京理工正陽知識產權代理事務所(普通合伙) 11639 | 代理人: | 唐華 |
| 地址: | 100081 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 計算機軟件 源代碼 相似 檢測 方法 | ||
本發明涉及一種計算機軟件源代碼相似度檢測方法,屬于計算機應用技術領域,該方法包括如下步驟:首先依據編程語言不同,對源代碼進行分詞操作,然后選擇特定標注詞對分詞結果進行分塊處理,依據變量屬性對變量分詞進行相關處理;而后基于分塊結果對各塊進行差異測算操作,得到差異矩陣,依據各塊差異結果及相關性,得到整體差異;進而根據公式最終得到代碼相似度檢測結果。對比現有技術,本發明方法能夠比較成功的識別代碼相似度檢測中遇到的逐字拷貝、更改注釋語句空白區域、重命名標識符、更改數據類型等手段,能夠成功檢測改變代碼塊順序、改變語句順序、增加冗余語句和變量以及用等價的控制結構替換原有控制結構等手段。
技術領域:
本發明涉及一種計算機程序分析技術和計算機軟件的代碼相似度檢測算法,特別涉及一種基于源代碼分詞分塊提取處理及多種差異測量方法可擴展的代碼相似度檢測算法,屬于計算機應用技術領域。
背景技術
代碼相似度檢測技術目前最主要應用于代碼的剽竊檢測上,是計算機軟件開發和維護活動中一項重要任務,在源代碼剽竊檢測、軟件組件庫查詢、軟件缺陷檢測、程序理解等多個領域中有廣泛應用。其不僅可以幫助教師檢測學生的程序作業抄襲情況,同時對軟件版權的鑒定也具有好的現實意義。
在發表于第六屆北美大學計算科學協會年會論文集“抄襲檢測度量元”(Metricsbased plagiarism monitoring.Paper presented at the 6th Annual CCSCNortheastern Conference,Middlebury VT.2001)一文中,瓊斯(Jones)總結了十種剽竊手段。分別為(1)逐字拷貝(2)更改注釋語句(3)更改空白區域(4)重新命名標識符(5)改變代碼塊的順序(6)改變代碼塊中語句的順序(7)改變表達式中操作符和操作數的順序(8)更改數據類型(9)增加冗余的語句和變量(10)用等價的控制結構替換原有控制結構。
從國內外的研究現狀可以發現,國內在對程序相似度判別研究相對較少,大部分集中在對中文分詞和語義的研究上。可以參考的工具有:北航高級程序課程教學輔助平臺中用于檢測學生提交程序作業是否抄襲的BUAASIM系統等。
國外目前已有許多軟件工具可用來檢測源程序是否抄襲,如美國斯坦福大學的MOSS系統、威奇塔州立大學的SIM系統、伊利諾伊大學的GPLAG系統、德國Karlsruhe大學的JPlag系統和澳大利亞悉尼大學的YAP3系統。目前最主要的代碼相似度檢測技術主要分為兩大類,屬性計數技術及結構度量技術,包含如下幾種具體的方法:Textual comparison,Token comparison,Metric comparison,Comparison of abstract syntax trees(AST,抽象語法樹),Comparison of program dependency graphs(PDG,程序依賴圖)及其他相關方法。
而在實際使用及研究中發現,目前主要流行的上述幾種方法各自存在其不同的缺陷。兩種token-based的方法和text-based的方法效果一般且相差不大。AST-based的方法效果表現很好,但算法流程復雜,難于實現且執行時間長,且對于不同語言的匹配實現算法改動較大,PDG-based的方法表現性能不佳。另有文章指出,上述五種方法均拒絕了大量真正的相似代碼,且其對于注入代碼等某些特殊情況檢測率低。
綜上,目前主流的代碼相似度檢測方法普遍存在檢測效果低、部分方法復雜執行時間長、某些情況錯誤率高以及難于應用在不同編程語言上等問題。
發明內容
本發明的目的是為解決在檢測代碼相似度過程中遇到的檢測效果低、部分方法復雜執行時間長、某些情況錯誤率高以及難于應用在不同編程語言上等問題,提出了一種計算機軟件源代碼相似度檢測方法,該方法基于源代碼分詞處理和分塊分析比較差異獲得代碼相似度檢測結果。應用該方法,可以在低內存短執行時間的前提下,顯著提升代碼相似度檢測結果準確度,并大幅度降低代碼檢測最短代碼長度限制。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510794525.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:應用加密方法和裝置
- 下一篇:一種基于空域排序的矢量地理數據精確認證方法





