一種基于變更塊的代碼重構展示方法的研究與實現
發(fā)布時間:2021-07-23 11:47
代碼重構是調整改善軟件結構的一種手段,它在不對軟件功能特征進行更改的條件下,提高軟件的可理解性和可維護性。重構在軟件演化過程中存在普遍性,檢測并移除復雜代碼已經成為軟件生命周期中重構階段的基本工作。在理解代碼變更時將變更數據抽取出來進行相應的可視化展示,將有助于代碼重構分析人員區(qū)分哪些代碼存在重構關系,幫助其高效的理解代碼是如何進行變更的。代碼變更的理解一般基于文本差異化比較工具,并且各種版本的管理工具中都集成了某種文本差異化比較工具,幫助用戶查看文本代碼變更情況,而文本差異化比較工具處理輸出的基本單位就是變更塊(Hunk)。因此,基于變更塊對代碼重構模式進行分析展示,有利于將來可以較容易的集成到版本管理工具中。在代碼演進過程中,代碼變更每天都在產生,由代碼重構檢測工具檢測出的重構代碼數量也是巨大的,為了快速大量的瀏覽數據,采用可視化技術是首選方法?梢暬夹g就是采用圖形化的形式將定性或定量的數據給展示出來,它能夠使用戶快速大量的瀏覽數據,為理解代碼變更提供了便利。然而,現有的代碼可視化方法僅展示變更文本,未進行代碼變更前后重構模式的展示,沒有發(fā)揮出可視化技術的優(yōu)越性。本文設計了一種基...
【文章來源】:齊魯工業(yè)大學山東省
【文章頁數】:69 頁
【學位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
第1章 緒論
1.1 研究背景及意義
1.2 主要研究內容與創(chuàng)新點
1.2.1 主要研究內容
1.2.2 創(chuàng)新點
1.3 本文結構及章節(jié)安排
第2章 相關研究概述
2.1 重構
2.1.1 什么是重構
2.1.2 重構技術的相關研究
2.1.3 重構模式
2.1.4 模式識別方法的相關研究
2.2 可視化技術的相關研究
2.3 模式可視化的相關研究
2.4 展示方法相關技術
2.4.1 MVC設計模式
2.4.2 相關Web開發(fā)技術
2.4.3 相關開發(fā)工具
2.5 本章小結
第3章 基于Hunk的代碼重構展示方法
3.1 展示方法框架
3.2 框架流程設計
3.2.1 源文件數據的獲取
3.2.2 Hunk數據的獲取
3.2.3 Hunk數據的展示
3.2.4 重構模式識別
3.2.5 重構模式模板的定義
3.3 本章小結
第4章 代碼重構展示方法的設計
4.1 功能需求分析
4.2 數據需求分析
4.3 性能需求分析
4.4 展示方法功能設計
4.5 數據庫設計
4.6 重構模式模板設計
4.7 本章小結
第5章 代碼重構展示方法的實現
5.1 數據源代碼的獲取
5.2 展示方法的實現
5.2.1 文件數據模塊
5.2.2 代碼變更塊展示
5.2.3 抽取方法(Extract Method)重構模式展示
5.2.4 替換算法(Substitute Algorithm)重構模式展示
5.2.5 抽取類(Extract Class)重構模式展示
5.2.6 移除參數(Remove Parameter)重構模式展示
5.3 展示方法與現有方法的比較分析
5.4 本章小結
第6章 總結與展望
參考文獻
致謝
在學期間主要科研成果
一、發(fā)表學術論文
二、其它科研成果
【參考文獻】:
期刊論文
[1]動態(tài)交互式可視化應用研究[J]. 陳勇躍,卜磊磊,閆文軒,吳金紅. 情報理論與實踐. 2019(05)
[2]代碼變更中抽取類重構模式的識別[J]. 孫美榮,楊春花. 計算機系統(tǒng)應用. 2018(09)
[3]基于深度學習的代碼克隆檢測技術研究[J]. 劉復星,魏金津,任女爾. 電腦知識與技術. 2018(18)
[4]基于變更類型和相似性比較的代碼重構模式識別[J]. 孫美榮,楊春花. 智能計算機與應用. 2018(02)
[5]代碼審查在軟件工程實施中的重要性[J]. 井濤. 電子技術與軟件工程. 2017(21)
[6]可視化在大數據分析領域的實現要點[J]. 王博,沈方方. 中國新通信. 2017(14)
[7]基于軟件度量的函數提取重構初探[J]. 馮燕,肖笛. 數字技術與應用. 2017(06)
[8]構件化軟件開發(fā)可視化設計研究[J]. 舒毅,粟福嵩,楊書. 微型機與應用. 2016(24)
[9]基于索引的分布式代碼克隆檢測[J]. 林嬋,李俊杰,饒飛,羅平. 信息安全研究. 2016(03)
[10]基于MVC框架的系統(tǒng)重構方法研究與實踐[J]. 李景炤,咼文承,胡伶俐,謝垂益,梁國軍. 電腦知識與技術. 2015(22)
碩士論文
[1]面向多線程機制的軟件重構方法研究與實現[D]. 柳晨光.河北科技大學 2016
[2]克隆代碼可視化系統(tǒng)的設計與實現[D]. 何薔.哈爾濱工業(yè)大學 2015
[3]基于Eclipse的可視化界面設計器的設計與實現[D]. 褚曉偉.北京交通大學 2015
[4]函數抽取重構的檢測與分析[D]. 劉陽.北京理工大學 2015
[5]CODEREBUILDER:一種自動化Java并發(fā)程序重構工具的研究與實現[D]. 陶彬賢.南京航空航天大學 2014
[6]基于逆向工程的代碼重構與分析評估系統(tǒng)的設計與實現[D]. 劉鑫銓.哈爾濱工業(yè)大學 2008
本文編號:3299233
【文章來源】:齊魯工業(yè)大學山東省
【文章頁數】:69 頁
【學位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
第1章 緒論
1.1 研究背景及意義
1.2 主要研究內容與創(chuàng)新點
1.2.1 主要研究內容
1.2.2 創(chuàng)新點
1.3 本文結構及章節(jié)安排
第2章 相關研究概述
2.1 重構
2.1.1 什么是重構
2.1.2 重構技術的相關研究
2.1.3 重構模式
2.1.4 模式識別方法的相關研究
2.2 可視化技術的相關研究
2.3 模式可視化的相關研究
2.4 展示方法相關技術
2.4.1 MVC設計模式
2.4.2 相關Web開發(fā)技術
2.4.3 相關開發(fā)工具
2.5 本章小結
第3章 基于Hunk的代碼重構展示方法
3.1 展示方法框架
3.2 框架流程設計
3.2.1 源文件數據的獲取
3.2.2 Hunk數據的獲取
3.2.3 Hunk數據的展示
3.2.4 重構模式識別
3.2.5 重構模式模板的定義
3.3 本章小結
第4章 代碼重構展示方法的設計
4.1 功能需求分析
4.2 數據需求分析
4.3 性能需求分析
4.4 展示方法功能設計
4.5 數據庫設計
4.6 重構模式模板設計
4.7 本章小結
第5章 代碼重構展示方法的實現
5.1 數據源代碼的獲取
5.2 展示方法的實現
5.2.1 文件數據模塊
5.2.2 代碼變更塊展示
5.2.3 抽取方法(Extract Method)重構模式展示
5.2.4 替換算法(Substitute Algorithm)重構模式展示
5.2.5 抽取類(Extract Class)重構模式展示
5.2.6 移除參數(Remove Parameter)重構模式展示
5.3 展示方法與現有方法的比較分析
5.4 本章小結
第6章 總結與展望
參考文獻
致謝
在學期間主要科研成果
一、發(fā)表學術論文
二、其它科研成果
【參考文獻】:
期刊論文
[1]動態(tài)交互式可視化應用研究[J]. 陳勇躍,卜磊磊,閆文軒,吳金紅. 情報理論與實踐. 2019(05)
[2]代碼變更中抽取類重構模式的識別[J]. 孫美榮,楊春花. 計算機系統(tǒng)應用. 2018(09)
[3]基于深度學習的代碼克隆檢測技術研究[J]. 劉復星,魏金津,任女爾. 電腦知識與技術. 2018(18)
[4]基于變更類型和相似性比較的代碼重構模式識別[J]. 孫美榮,楊春花. 智能計算機與應用. 2018(02)
[5]代碼審查在軟件工程實施中的重要性[J]. 井濤. 電子技術與軟件工程. 2017(21)
[6]可視化在大數據分析領域的實現要點[J]. 王博,沈方方. 中國新通信. 2017(14)
[7]基于軟件度量的函數提取重構初探[J]. 馮燕,肖笛. 數字技術與應用. 2017(06)
[8]構件化軟件開發(fā)可視化設計研究[J]. 舒毅,粟福嵩,楊書. 微型機與應用. 2016(24)
[9]基于索引的分布式代碼克隆檢測[J]. 林嬋,李俊杰,饒飛,羅平. 信息安全研究. 2016(03)
[10]基于MVC框架的系統(tǒng)重構方法研究與實踐[J]. 李景炤,咼文承,胡伶俐,謝垂益,梁國軍. 電腦知識與技術. 2015(22)
碩士論文
[1]面向多線程機制的軟件重構方法研究與實現[D]. 柳晨光.河北科技大學 2016
[2]克隆代碼可視化系統(tǒng)的設計與實現[D]. 何薔.哈爾濱工業(yè)大學 2015
[3]基于Eclipse的可視化界面設計器的設計與實現[D]. 褚曉偉.北京交通大學 2015
[4]函數抽取重構的檢測與分析[D]. 劉陽.北京理工大學 2015
[5]CODEREBUILDER:一種自動化Java并發(fā)程序重構工具的研究與實現[D]. 陶彬賢.南京航空航天大學 2014
[6]基于逆向工程的代碼重構與分析評估系統(tǒng)的設計與實現[D]. 劉鑫銓.哈爾濱工業(yè)大學 2008
本文編號:3299233
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3299233.html