天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 軟件論文 >

基于代碼克隆檢測的重構(gòu)模式識別

發(fā)布時(shí)間:2021-08-26 06:16
  代碼重構(gòu)技術(shù)是指使用一系列重構(gòu)手法,改進(jìn)優(yōu)化軟件的內(nèi)部結(jié)構(gòu),降低其修改成本,增加它的可拓展性、可理解性和可維護(hù)性,同時(shí)保持軟件的功能不發(fā)生改變,這是一種在結(jié)構(gòu)層次上的代碼整理技術(shù)。重構(gòu)模式識別指的是對比變更前原代碼和變更后代碼以尋找符合某種重構(gòu)模式的代碼段。在代碼變更中,往往包含著對老版本代碼的bug的修復(fù)、功能的添加以及重構(gòu)的變更代碼,這幾種種類各異的變更代碼的混合增加了閱讀其代碼理解其內(nèi)容的難度,若能對變更代碼中重構(gòu)相關(guān)的變更代碼進(jìn)行自動(dòng)識別,則可使重構(gòu)與其他種類的變更行為相互分離,利于代碼的閱讀和理解,同時(shí)有助于研究人員了解代碼變更中的重構(gòu)行為,增加研究者代碼修改經(jīng)驗(yàn),獲取諸如重構(gòu)的方式、重構(gòu)的動(dòng)機(jī)以及重構(gòu)對代碼質(zhì)量的影響等知識,有利于研究者理解軟件演化的歷程。在幾種常用的重構(gòu)模式之中,有一部分在重構(gòu)的過程中包含搬移代碼行這種操作,在重構(gòu)實(shí)踐中,重構(gòu)前后代碼行的搬移并不是簡單的一字不改的粘貼和復(fù)制,在很多情況下需要按照需求對所搬移的代碼行進(jìn)行一定程度的調(diào)整,比如調(diào)整搬移代碼行中的變量名、常量名、花括號、修飾符、標(biāo)識符、字符大小寫、數(shù)字、字符串,或者是添加或刪除其中的部分代碼。由于... 

【文章來源】:齊魯工業(yè)大學(xué)山東省

【文章頁數(shù)】:80 頁

【學(xué)位級別】:碩士

【文章目錄】:
摘要
ABSTRACT
第1章 緒論
    1.1 研究背景和意義
    1.2 本文的研究內(nèi)容
    1.3 文章結(jié)構(gòu)
第2章 國內(nèi)外研究現(xiàn)狀
    2.1 重構(gòu)和重構(gòu)模式
        2.1.1 什么是重構(gòu)以及重構(gòu)的研究現(xiàn)狀
        2.1.2 重構(gòu)的作用和缺陷
        2.1.3 什么是重構(gòu)模式
    2.2 重構(gòu)模式識別
    2.3 克隆代碼和代碼克隆檢測技術(shù)
        2.3.1 克隆代碼
        2.3.2 代碼克隆檢測
    2.4 本章小結(jié)
第3章 基于代碼克隆檢測的重構(gòu)模式識別方法
    3.1 識別方法概述
    3.2 代碼變更塊(hunk)的獲取和拆分
        3.2.1 代碼變更塊的獲取(hunk識別模塊)
        3.2.2 代碼變更塊的分割(split模塊)
    3.3 基于代碼克隆檢測技術(shù)獲取候選hunk集(克隆檢測模塊)
    3.4 基于抽象語法樹的重構(gòu)模式識別(模式識別模塊)
        3.4.1 使用抽象語法樹解析源代碼
        3.4.2 Java模型
        3.4.3 尋找抽象語法樹節(jié)點(diǎn)的方法
        3.4.4 從AST節(jié)點(diǎn)中獲取信息
        3.4.5 本文如何使用抽象語法樹完成語法分析
    3.5 與常見的重構(gòu)模式識別方法的對比
    3.6 本章小結(jié)
第4章 抽取函數(shù)和內(nèi)聯(lián)函數(shù)重構(gòu)模式的識別
    4.1 抽取函數(shù)(Extract Method)模式
    4.2 抽取函數(shù)模式的識別
        4.2.1 基于克隆檢測對方法的代碼搬移進(jìn)行判斷
        4.2.2 對新增方法調(diào)用的判斷
        4.2.3 抽取函數(shù)算法
    4.3 數(shù)據(jù)來源
    4.4 simian參數(shù)與閾值設(shè)定
    4.5 抽取函數(shù)實(shí)驗(yàn)結(jié)果和分析
    4.6 內(nèi)聯(lián)函數(shù)(Inline Method)模式
        4.6.1 基于克隆代碼檢測對函數(shù)級代碼搬移進(jìn)行判斷
        4.6.2 基于抽象語法樹對函數(shù)引用情況進(jìn)行判斷
        4.6.3 內(nèi)聯(lián)函數(shù)重構(gòu)模式識別算法
    4.7 內(nèi)聯(lián)函數(shù)實(shí)驗(yàn)結(jié)果和分析
    4.8 本章小結(jié)
第5章 替換算法重構(gòu)模式的識別
    5.1 替換算法(Substitute Algorithm)模式
    5.2 替換算法模式的識別
    5.3 替換算法模式算法
    5.4 替換算法實(shí)驗(yàn)結(jié)果和分析
    5.5 本章小結(jié)
第6章 函數(shù)改名、添加參數(shù)以及移除參數(shù)重構(gòu)模式的識別
    6.1 函數(shù)改名(Rename Method)模式
    6.2 函數(shù)改名模式的識別
        6.2.1 基于代碼克隆檢測對行變更進(jìn)行判斷
        6.2.2 使用基于文本的語法分析判定函數(shù)頭
        6.2.3 判斷原函數(shù)和修改后函數(shù)是否存在函數(shù)改名情況
        6.2.4 函數(shù)改名算法
    6.3 函數(shù)改名實(shí)驗(yàn)結(jié)果
    6.4 添加參數(shù)(Add Parameter)和移除參數(shù)(Remove Parameter)模式
        6.4.1 添加參數(shù)(Add Parameter)模式
        6.4.2 移除參數(shù)(Remove Parameter)重構(gòu)模式
    6.5 對添加參數(shù)和移除參數(shù)重構(gòu)模式的識別
    6.6 添加參數(shù)和移除參數(shù)算法
    6.7 添加參數(shù)和移除參數(shù)實(shí)驗(yàn)結(jié)果
    6.8 本章小結(jié)
第7章 抽取類重構(gòu)模式的識別
    7.1 抽取類(Extract Classs)重構(gòu)模式
    7.2 抽取類重構(gòu)模式識別
        7.2.1 基于克隆檢測技術(shù)對部分代碼搬移進(jìn)行判斷
        7.2.2 基于抽象語法樹對被轉(zhuǎn)移代碼中是否有函數(shù)進(jìn)行判斷
        7.2.3 對變更后文件是否調(diào)用了轉(zhuǎn)移代碼行中的函數(shù)進(jìn)行判斷
        7.2.4 抽取類識別算法
    7.3 抽取類實(shí)驗(yàn)結(jié)果
    7.4 本章小結(jié)
第8章 結(jié)論
參考文獻(xiàn)
致謝
在學(xué)期間主要科研成果
    一、發(fā)表學(xué)術(shù)論文


【參考文獻(xiàn)】:
期刊論文
[1]面向Java多線程機(jī)制的軟件重構(gòu)方法[J]. 張楊,柳晨光,張冬雯,鄭琨,鄭雅潔.  北京理工大學(xué)學(xué)報(bào). 2018(11)
[2]基于版本的多重軟件重構(gòu)自動(dòng)檢測技術(shù)研究[J]. 鐘林輝,黃小明,薛良波,葉海濤.  江西師范大學(xué)學(xué)報(bào)(自然科學(xué)版). 2018(05)
[3]代碼審查在軟件工程實(shí)施中的重要性[J]. 井濤.  電子技術(shù)與軟件工程. 2017(21)
[4]分支語句重構(gòu)算法的研究與應(yīng)用[J]. 趙會(huì)群,孫雨.  計(jì)算機(jī)工程與應(yīng)用. 2018(06)
[5]基于后綴樹的相似代碼檢測方法的研究[J]. 禤靜.  信息通信. 2016(10)
[6]基于JavaCC的抽象語法樹的構(gòu)建與實(shí)現(xiàn)[J]. 黃松,黃玉,惠戰(zhàn)偉.  計(jì)算機(jī)工程與設(shè)計(jì). 2016(04)
[7]函數(shù)抽取重構(gòu)的自動(dòng)檢測方法[J]. 劉陽,劉秋榮,劉輝.  計(jì)算機(jī)科學(xué). 2015(12)
[8]大規(guī)模軟件系統(tǒng)日志研究綜述[J]. 廖湘科,李?yuàn)檴?董威,賈周陽,劉曉東,周書林.  軟件學(xué)報(bào). 2016(08)
[9]長方法壞味重構(gòu)選擇策略[J]. 馬飛飛,吳海濤.  計(jì)算機(jī)應(yīng)用. 2014(S1)
[10]基于程序依賴圖的克隆檢測及改進(jìn)[J]. 郭婧,吳軍華.  計(jì)算機(jī)工程與設(shè)計(jì). 2012(02)

博士論文
[1]面向軟件重構(gòu)的推薦方法研究[D]. 高原.北京理工大學(xué) 2015



本文編號:3363713

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3363713.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶a27e0***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請E-mail郵箱bigeng88@qq.com