開(kāi)源軟件生態(tài)系統(tǒng)中自承認(rèn)代碼重構(gòu)的研究與應(yīng)用
發(fā)布時(shí)間:2023-04-09 19:55
時(shí)至今日,開(kāi)源軟件早已經(jīng)成為軟件領(lǐng)域不可或缺的重要組成部分。在當(dāng)今大數(shù)據(jù)的時(shí)代背景下,軟件代碼的規(guī)模也越來(lái)越龐大,這使得代碼質(zhì)量(可維護(hù)性、可閱讀性等)的維護(hù)越來(lái)越困難。在以Github為代表的開(kāi)源軟件開(kāi)發(fā)系統(tǒng)中,開(kāi)發(fā)者常常在提交代碼時(shí)附加與修改相關(guān)的信息。其中,開(kāi)發(fā)者明確地聲明代碼的修改為重構(gòu)(Refactoring)的現(xiàn)象較為普遍,本文把此類代碼修改稱為開(kāi)發(fā)者自我承認(rèn)的代碼重構(gòu),即自承認(rèn)重構(gòu)(Self-admitted refactoring,簡(jiǎn)稱 SAR)。雖然自承認(rèn)重構(gòu)在代碼提交信息中較為尋常,然而少有相關(guān)的研究,一方面修改信息沒(méi)有得到充分利用,另一方面,SAR中的的關(guān)系、SAR中代碼異味的嚴(yán)重級(jí)別、SAR開(kāi)發(fā)者數(shù)量、SAR中是否有重構(gòu)發(fā)生等等。本文將基于3個(gè)大型開(kāi)源的項(xiàng)目,使用PMD作為代碼異味檢測(cè)工具,并結(jié)合實(shí)驗(yàn)流程編寫了開(kāi)源軟件PMDlet,它可以用來(lái)收集PMD代碼異味檢測(cè)報(bào)告中的代碼異味、作者等信息,并且可以用來(lái)對(duì)比兩個(gè)PMD檢測(cè)報(bào)告間的差異。本文的案例研究得出了如下結(jié)論:(1)總體上SAR的版本中具有提高代碼質(zhì)量的傾向,SAR是代碼質(zhì)量提高的標(biāo)志。(2)Dataflo...
【文章頁(yè)數(shù)】:67 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
Abstract
第一章 緒論
1.1 研究背景
1.2 研究現(xiàn)狀
1.2.1 代碼異味與代碼重構(gòu)
1.2.2 代碼異味檢測(cè)工具與方法
1.2.3 自承認(rèn)現(xiàn)象的研究
1.3 本文的工作
1.4 研究?jī)?nèi)容和創(chuàng)新點(diǎn)
1.5 論文的組織和結(jié)構(gòu)
1.6 本章小結(jié)
第二章 相關(guān)技術(shù)與知識(shí)
2.1 PMD
2.2 SVN
2.3 Pearson相關(guān)系數(shù)與顯著水平
2.4 批處理腳本
2.5 Ref-Finder
2.6 本章總結(jié)
第三章 問(wèn)題研究、數(shù)據(jù)收集分析方法與實(shí)驗(yàn)流程
3.1 問(wèn)題與項(xiàng)目選擇規(guī)則
3.1.1 目標(biāo)與研究問(wèn)題
3.1.2 案例選取規(guī)則
3.2 數(shù)據(jù)收集過(guò)程
3.2.1 需要收集的數(shù)據(jù)
3.2.2 數(shù)據(jù)收集的方法
3.2.3 非SAR版本收集
3.2.4 代碼異味收集
3.3 數(shù)據(jù)分析方法
3.4 實(shí)驗(yàn)程序設(shè)計(jì)
3.4.1 PMD檢測(cè)集結(jié)構(gòu)
3.4.2 PMDlet工具介紹
3.5 自動(dòng)下載與靜態(tài)分析腳本
3.6 實(shí)驗(yàn)出現(xiàn)的問(wèn)題極其解決辦法
3.6.1 PMD分析報(bào)告預(yù)處理
3.6.2 重復(fù)數(shù)據(jù)清洗
3.6.3 重復(fù)身份識(shí)別
3.6.4 自承認(rèn)重構(gòu)密度的度量
3.6.5 程序腳本的下載問(wèn)題
3.7 PMDlet實(shí)驗(yàn)程序邏輯
3.7.1 Pickuprefactors
3.7.2 matchString
3.7.3 randomnumber
3.7.4 JavaBat
3.7.5 pmdraw
3.8 本章小結(jié)
第四章 案例分析實(shí)驗(yàn)
4.1 案例分析項(xiàng)目
4.2 實(shí)驗(yàn)結(jié)果
4.3 結(jié)果討論
4.4 關(guān)鍵結(jié)論驗(yàn)證
4.5 啟發(fā)信息
4.6 效度分析
4.7 本章小結(jié)
第五章 結(jié)束語(yǔ)
5.1 總結(jié)
5.2 展望
參考文獻(xiàn)
附錄1 攻讀碩士學(xué)位期間發(fā)表的學(xué)術(shù)論文
附錄2 攻讀碩士學(xué)位期間參加的科研項(xiàng)目
致謝
本文編號(hào):3787638
【文章頁(yè)數(shù)】:67 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
Abstract
第一章 緒論
1.1 研究背景
1.2 研究現(xiàn)狀
1.2.1 代碼異味與代碼重構(gòu)
1.2.2 代碼異味檢測(cè)工具與方法
1.2.3 自承認(rèn)現(xiàn)象的研究
1.3 本文的工作
1.4 研究?jī)?nèi)容和創(chuàng)新點(diǎn)
1.5 論文的組織和結(jié)構(gòu)
1.6 本章小結(jié)
第二章 相關(guān)技術(shù)與知識(shí)
2.1 PMD
2.2 SVN
2.3 Pearson相關(guān)系數(shù)與顯著水平
2.4 批處理腳本
2.5 Ref-Finder
2.6 本章總結(jié)
第三章 問(wèn)題研究、數(shù)據(jù)收集分析方法與實(shí)驗(yàn)流程
3.1 問(wèn)題與項(xiàng)目選擇規(guī)則
3.1.1 目標(biāo)與研究問(wèn)題
3.1.2 案例選取規(guī)則
3.2 數(shù)據(jù)收集過(guò)程
3.2.1 需要收集的數(shù)據(jù)
3.2.2 數(shù)據(jù)收集的方法
3.2.3 非SAR版本收集
3.2.4 代碼異味收集
3.3 數(shù)據(jù)分析方法
3.4 實(shí)驗(yàn)程序設(shè)計(jì)
3.4.1 PMD檢測(cè)集結(jié)構(gòu)
3.4.2 PMDlet工具介紹
3.5 自動(dòng)下載與靜態(tài)分析腳本
3.6 實(shí)驗(yàn)出現(xiàn)的問(wèn)題極其解決辦法
3.6.1 PMD分析報(bào)告預(yù)處理
3.6.2 重復(fù)數(shù)據(jù)清洗
3.6.3 重復(fù)身份識(shí)別
3.6.4 自承認(rèn)重構(gòu)密度的度量
3.6.5 程序腳本的下載問(wèn)題
3.7 PMDlet實(shí)驗(yàn)程序邏輯
3.7.1 Pickuprefactors
3.7.2 matchString
3.7.3 randomnumber
3.7.4 JavaBat
3.7.5 pmdraw
3.8 本章小結(jié)
第四章 案例分析實(shí)驗(yàn)
4.1 案例分析項(xiàng)目
4.2 實(shí)驗(yàn)結(jié)果
4.3 結(jié)果討論
4.4 關(guān)鍵結(jié)論驗(yàn)證
4.5 啟發(fā)信息
4.6 效度分析
4.7 本章小結(jié)
第五章 結(jié)束語(yǔ)
5.1 總結(jié)
5.2 展望
參考文獻(xiàn)
附錄1 攻讀碩士學(xué)位期間發(fā)表的學(xué)術(shù)論文
附錄2 攻讀碩士學(xué)位期間參加的科研項(xiàng)目
致謝
本文編號(hào):3787638
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3787638.html
最近更新
教材專著