一种基于变更块的代码重构展示方法的研究与实现
发布时间:2021-07-23 11:47
代码重构是调整改善软件结构的一种手段,它在不对软件功能特征进行更改的条件下,提高软件的可理解性和可维护性。重构在软件演化过程中存在普遍性,检测并移除复杂代码已经成为软件生命周期中重构阶段的基本工作。在理解代码变更时将变更数据抽取出来进行相应的可视化展示,将有助于代码重构分析人员区分哪些代码存在重构关系,帮助其高效的理解代码是如何进行变更的。代码变更的理解一般基于文本差异化比较工具,并且各种版本的管理工具中都集成了某种文本差异化比较工具,帮助用户查看文本代码变更情况,而文本差异化比较工具处理输出的基本单位就是变更块(Hunk)。因此,基于变更块对代码重构模式进行分析展示,有利于将来可以较容易的集成到版本管理工具中。在代码演进过程中,代码变更每天都在产生,由代码重构检测工具检测出的重构代码数量也是巨大的,为了快速大量的浏览数据,采用可视化技术是首选方法。可视化技术就是采用图形化的形式将定性或定量的数据给展示出来,它能够使用户快速大量的浏览数据,为理解代码变更提供了便利。然而,现有的代码可视化方法仅展示变更文本,未进行代码变更前后重构模式的展示,没有发挥出可视化技术的优越性。本文设计了一种基...
【文章来源】:齐鲁工业大学山东省
【文章页数】:69 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
第1章 绪论
1.1 研究背景及意义
1.2 主要研究内容与创新点
1.2.1 主要研究内容
1.2.2 创新点
1.3 本文结构及章节安排
第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开发技术
2.4.3 相关开发工具
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章 总结与展望
参考文献
致谢
在学期间主要科研成果
一、发表学术论文
二、其它科研成果
【参考文献】:
期刊论文
[1]动态交互式可视化应用研究[J]. 陈勇跃,卜磊磊,闫文轩,吴金红. 情报理论与实践. 2019(05)
[2]代码变更中抽取类重构模式的识别[J]. 孙美荣,杨春花. 计算机系统应用. 2018(09)
[3]基于深度学习的代码克隆检测技术研究[J]. 刘复星,魏金津,任女尔. 电脑知识与技术. 2018(18)
[4]基于变更类型和相似性比较的代码重构模式识别[J]. 孙美荣,杨春花. 智能计算机与应用. 2018(02)
[5]代码审查在软件工程实施中的重要性[J]. 井涛. 电子技术与软件工程. 2017(21)
[6]可视化在大数据分析领域的实现要点[J]. 王博,沈方方. 中国新通信. 2017(14)
[7]基于软件度量的函数提取重构初探[J]. 冯燕,肖笛. 数字技术与应用. 2017(06)
[8]构件化软件开发可视化设计研究[J]. 舒毅,粟福嵩,杨书. 微型机与应用. 2016(24)
[9]基于索引的分布式代码克隆检测[J]. 林婵,李俊杰,饶飞,罗平. 信息安全研究. 2016(03)
[10]基于MVC框架的系统重构方法研究与实践[J]. 李景炤,呙文承,胡伶俐,谢垂益,梁国军. 电脑知识与技术. 2015(22)
硕士论文
[1]面向多线程机制的软件重构方法研究与实现[D]. 柳晨光.河北科技大学 2016
[2]克隆代码可视化系统的设计与实现[D]. 何蔷.哈尔滨工业大学 2015
[3]基于Eclipse的可视化界面设计器的设计与实现[D]. 褚晓伟.北京交通大学 2015
[4]函数抽取重构的检测与分析[D]. 刘阳.北京理工大学 2015
[5]CODEREBUILDER:一种自动化Java并发程序重构工具的研究与实现[D]. 陶彬贤.南京航空航天大学 2014
[6]基于逆向工程的代码重构与分析评估系统的设计与实现[D]. 刘鑫铨.哈尔滨工业大学 2008
本文编号:3299233
【文章来源】:齐鲁工业大学山东省
【文章页数】:69 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
第1章 绪论
1.1 研究背景及意义
1.2 主要研究内容与创新点
1.2.1 主要研究内容
1.2.2 创新点
1.3 本文结构及章节安排
第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开发技术
2.4.3 相关开发工具
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章 总结与展望
参考文献
致谢
在学期间主要科研成果
一、发表学术论文
二、其它科研成果
【参考文献】:
期刊论文
[1]动态交互式可视化应用研究[J]. 陈勇跃,卜磊磊,闫文轩,吴金红. 情报理论与实践. 2019(05)
[2]代码变更中抽取类重构模式的识别[J]. 孙美荣,杨春花. 计算机系统应用. 2018(09)
[3]基于深度学习的代码克隆检测技术研究[J]. 刘复星,魏金津,任女尔. 电脑知识与技术. 2018(18)
[4]基于变更类型和相似性比较的代码重构模式识别[J]. 孙美荣,杨春花. 智能计算机与应用. 2018(02)
[5]代码审查在软件工程实施中的重要性[J]. 井涛. 电子技术与软件工程. 2017(21)
[6]可视化在大数据分析领域的实现要点[J]. 王博,沈方方. 中国新通信. 2017(14)
[7]基于软件度量的函数提取重构初探[J]. 冯燕,肖笛. 数字技术与应用. 2017(06)
[8]构件化软件开发可视化设计研究[J]. 舒毅,粟福嵩,杨书. 微型机与应用. 2016(24)
[9]基于索引的分布式代码克隆检测[J]. 林婵,李俊杰,饶飞,罗平. 信息安全研究. 2016(03)
[10]基于MVC框架的系统重构方法研究与实践[J]. 李景炤,呙文承,胡伶俐,谢垂益,梁国军. 电脑知识与技术. 2015(22)
硕士论文
[1]面向多线程机制的软件重构方法研究与实现[D]. 柳晨光.河北科技大学 2016
[2]克隆代码可视化系统的设计与实现[D]. 何蔷.哈尔滨工业大学 2015
[3]基于Eclipse的可视化界面设计器的设计与实现[D]. 褚晓伟.北京交通大学 2015
[4]函数抽取重构的检测与分析[D]. 刘阳.北京理工大学 2015
[5]CODEREBUILDER:一种自动化Java并发程序重构工具的研究与实现[D]. 陶彬贤.南京航空航天大学 2014
[6]基于逆向工程的代码重构与分析评估系统的设计与实现[D]. 刘鑫铨.哈尔滨工业大学 2008
本文编号:3299233
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3299233.html