面向開源代碼復(fù)用的程序比對分析技術(shù)研究
發(fā)布時間:2022-04-23 19:49
隨著軟件產(chǎn)業(yè)的發(fā)展和開源運動的興起,開源軟件復(fù)用已經(jīng)成為軟件開發(fā)過程中的常用手段。復(fù)用開源軟件在縮短開發(fā)周期、降低研發(fā)成本、提高軟件質(zhì)量等方面擁有顯著優(yōu)勢,大量IT企業(yè)以開源軟件為基礎(chǔ)構(gòu)建其核心產(chǎn)品,開源軟件已成為軟件行業(yè)中一股重要的新興勢力。盡管開源軟件的資源儲量非常豐富,然而要做到對現(xiàn)有成果的有效復(fù)用卻并非易事,其中開源許可證侵權(quán)及代碼同步更新困難是復(fù)用過程中面臨的兩個挑戰(zhàn)。上述兩方面挑戰(zhàn)是影響開源軟件復(fù)用的主要障礙,有效的程序比對分析技術(shù)是解決此類問題的有效途徑。針對上述問題,本文提出了一種以函數(shù)為基本單元的代碼比對分析方法,細化了分析粒度。結(jié)合代碼倉庫增量分析方法,僅對軟件版本快照間變動的內(nèi)容(后文統(tǒng)稱為增量文本)進行分析,有效縮減了分析規(guī)模。分析方法大致分為四個步驟:首先,獲取軟件版本快照間的文本變動內(nèi)容。然后,設(shè)計增量函數(shù)提取算法,將增量文本轉(zhuǎn)化為完整的、可執(zhí)行語法分析的函數(shù)。之后根據(jù)語法規(guī)則提取函數(shù)特征信息,并使用Simhash算法將函數(shù)轉(zhuǎn)化為對應(yīng)的二進制哈希數(shù)列(即函數(shù)指紋),建立代碼索引庫。最后,利用大數(shù)據(jù)分析技術(shù)實現(xiàn)了函數(shù)指紋的比對和溯源,根據(jù)比對和溯源結(jié)果找到可用...
【文章頁數(shù)】:56 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
1 緒論
1.1 研究背景及意義
1.2 國內(nèi)外研究現(xiàn)狀
1.3 工作內(nèi)容
1.4 課題來源
1.5 論文結(jié)構(gòu)
2 相關(guān)技術(shù)介紹
2.1 版本控制軟件
2.1.1 SVN
2.1.2 Git
2.2 詞法分析器
2.3 語法分析器
2.4 哈希算法
2.4.1 傳統(tǒng)哈希算法
2.4.2 局部敏感哈希算法
2.5 海量數(shù)據(jù)搜索技術(shù)
2.6 本章小結(jié)
3 程序比對分析方法
3.1 獲取倉庫代碼
3.1.1 獲取完整的倉庫代碼
3.1.2 獲取增量文本
3.2 完整和增量語法分析
3.2.1 完整語法分析
3.2.2 增量函數(shù)提取
3.3 構(gòu)造函數(shù)指紋
3.3.1 詞法分析
3.3.2 Simhash函數(shù)指紋構(gòu)造算法
3.4 相似度計算和比對分析
3.5 代碼侵權(quán)檢測和代碼同步更新實現(xiàn)機制
3.5.1 開源許可證侵權(quán)檢測
3.5.2 代碼同步更新
3.6 本章小結(jié)
4 原型系統(tǒng)的設(shè)計與實現(xiàn)
4.1 原型系統(tǒng)客戶端實現(xiàn)
4.2 原型系統(tǒng)服務(wù)端實現(xiàn)
4.2.1 函數(shù)指紋數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計
4.2.2 函數(shù)指紋檢索接口設(shè)計
4.3 本章小結(jié)
5 原型系統(tǒng)分析能力驗證
5.1 實驗1:代碼分析效率對比
5.2 實驗2:工程相似度判定能力驗證
5.3 實驗3:函數(shù)更新能力驗證
5.4 實驗4:海量函數(shù)指紋檢索能力驗證
6 總結(jié)與展望
6.1 結(jié)論
6.2 主要貢獻
6.3 未來的工作
參考文獻
個人簡介
導(dǎo)師簡介
獲得成果
致謝
【參考文獻】:
期刊論文
[1]基于倒排索引的可驗證混淆關(guān)鍵字密文檢索方案[J]. 杜瑞忠,李明月,田俊峰,吳萬青. 軟件學(xué)報. 2019(08)
[2]基于局部敏感哈希的多維海量數(shù)據(jù)處理[J]. 張博文,張淑麗,郝昕,馬超. 科技創(chuàng)新與應(yīng)用. 2019(02)
[3]Gartner:2018年十大安全項目詳解(三)[J]. 陸英. 計算機與網(wǎng)絡(luò). 2018(24)
[4]東北亞開源軟件標準化成果綜述[J]. 苗宗利,王雷. 信息技術(shù)與標準化. 2018(11)
[5]基于版本控制的中文文檔到源代碼的自動跟蹤方法[J]. 沈力,劉洪星,李勇華. 計算機應(yīng)用. 2018(10)
[6]開源軟件的著作權(quán)保護研究[J]. 王婧潼. 法制與經(jīng)濟. 2018(09)
[7]開源許可證及其檢測工具研究[J]. 何東杰,宋昊,王琪,匡翔宇,劉為懷,蔣丹妮. 計算機應(yīng)用與軟件. 2018(06)
[8]大規(guī)模源代碼增量式資源泄漏檢測方法[J]. 高志偉,計衛(wèi)星,石劍君,王一拙,高玉金,廖心怡,羅輝,石峰. 軟件學(xué)報. 2018(05)
[9]基于局部敏感哈希的安全相似性查詢方案[J]. 吳瑾,彭延國,崔江濤. 密碼學(xué)報. 2018(02)
[10]開源代碼倉庫增量分析方法[J]. 許福,楊湛宇,陳志泊,孫鈺,張海燕. 清華大學(xué)學(xué)報(自然科學(xué)版). 2018(07)
碩士論文
[1]基于哈希算法的大規(guī)模圖像最近鄰檢索算法研究[D]. 高新.電子科技大學(xué) 2018
本文編號:3647866
【文章頁數(shù)】:56 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
1 緒論
1.1 研究背景及意義
1.2 國內(nèi)外研究現(xiàn)狀
1.3 工作內(nèi)容
1.4 課題來源
1.5 論文結(jié)構(gòu)
2 相關(guān)技術(shù)介紹
2.1 版本控制軟件
2.1.1 SVN
2.1.2 Git
2.2 詞法分析器
2.3 語法分析器
2.4 哈希算法
2.4.1 傳統(tǒng)哈希算法
2.4.2 局部敏感哈希算法
2.5 海量數(shù)據(jù)搜索技術(shù)
2.6 本章小結(jié)
3 程序比對分析方法
3.1 獲取倉庫代碼
3.1.1 獲取完整的倉庫代碼
3.1.2 獲取增量文本
3.2 完整和增量語法分析
3.2.1 完整語法分析
3.2.2 增量函數(shù)提取
3.3 構(gòu)造函數(shù)指紋
3.3.1 詞法分析
3.3.2 Simhash函數(shù)指紋構(gòu)造算法
3.4 相似度計算和比對分析
3.5 代碼侵權(quán)檢測和代碼同步更新實現(xiàn)機制
3.5.1 開源許可證侵權(quán)檢測
3.5.2 代碼同步更新
3.6 本章小結(jié)
4 原型系統(tǒng)的設(shè)計與實現(xiàn)
4.1 原型系統(tǒng)客戶端實現(xiàn)
4.2 原型系統(tǒng)服務(wù)端實現(xiàn)
4.2.1 函數(shù)指紋數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計
4.2.2 函數(shù)指紋檢索接口設(shè)計
4.3 本章小結(jié)
5 原型系統(tǒng)分析能力驗證
5.1 實驗1:代碼分析效率對比
5.2 實驗2:工程相似度判定能力驗證
5.3 實驗3:函數(shù)更新能力驗證
5.4 實驗4:海量函數(shù)指紋檢索能力驗證
6 總結(jié)與展望
6.1 結(jié)論
6.2 主要貢獻
6.3 未來的工作
參考文獻
個人簡介
導(dǎo)師簡介
獲得成果
致謝
【參考文獻】:
期刊論文
[1]基于倒排索引的可驗證混淆關(guān)鍵字密文檢索方案[J]. 杜瑞忠,李明月,田俊峰,吳萬青. 軟件學(xué)報. 2019(08)
[2]基于局部敏感哈希的多維海量數(shù)據(jù)處理[J]. 張博文,張淑麗,郝昕,馬超. 科技創(chuàng)新與應(yīng)用. 2019(02)
[3]Gartner:2018年十大安全項目詳解(三)[J]. 陸英. 計算機與網(wǎng)絡(luò). 2018(24)
[4]東北亞開源軟件標準化成果綜述[J]. 苗宗利,王雷. 信息技術(shù)與標準化. 2018(11)
[5]基于版本控制的中文文檔到源代碼的自動跟蹤方法[J]. 沈力,劉洪星,李勇華. 計算機應(yīng)用. 2018(10)
[6]開源軟件的著作權(quán)保護研究[J]. 王婧潼. 法制與經(jīng)濟. 2018(09)
[7]開源許可證及其檢測工具研究[J]. 何東杰,宋昊,王琪,匡翔宇,劉為懷,蔣丹妮. 計算機應(yīng)用與軟件. 2018(06)
[8]大規(guī)模源代碼增量式資源泄漏檢測方法[J]. 高志偉,計衛(wèi)星,石劍君,王一拙,高玉金,廖心怡,羅輝,石峰. 軟件學(xué)報. 2018(05)
[9]基于局部敏感哈希的安全相似性查詢方案[J]. 吳瑾,彭延國,崔江濤. 密碼學(xué)報. 2018(02)
[10]開源代碼倉庫增量分析方法[J]. 許福,楊湛宇,陳志泊,孫鈺,張海燕. 清華大學(xué)學(xué)報(自然科學(xué)版). 2018(07)
碩士論文
[1]基于哈希算法的大規(guī)模圖像最近鄰檢索算法研究[D]. 高新.電子科技大學(xué) 2018
本文編號:3647866
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3647866.html
最近更新
教材專著