开源软件生态系统中自承认代码重构的研究与应用
发布时间:2023-04-09 19:55
时至今日,开源软件早已经成为软件领域不可或缺的重要组成部分。在当今大数据的时代背景下,软件代码的规模也越来越庞大,这使得代码质量(可维护性、可阅读性等)的维护越来越困难。在以Github为代表的开源软件开发系统中,开发者常常在提交代码时附加与修改相关的信息。其中,开发者明确地声明代码的修改为重构(Refactoring)的现象较为普遍,本文把此类代码修改称为开发者自我承认的代码重构,即自承认重构(Self-admitted refactoring,简称 SAR)。虽然自承认重构在代码提交信息中较为寻常,然而少有相关的研究,一方面修改信息没有得到充分利用,另一方面,SAR中的的关系、SAR中代码异味的严重级别、SAR开发者数量、SAR中是否有重构发生等等。本文将基于3个大型开源的项目,使用PMD作为代码异味检测工具,并结合实验流程编写了开源软件PMDlet,它可以用来收集PMD代码异味检测报告中的代码异味、作者等信息,并且可以用来对比两个PMD检测报告间的差异。本文的案例研究得出了如下结论:(1)总体上SAR的版本中具有提高代码质量的倾向,SAR是代码质量提高的标志。(2)Dataflo...
【文章页数】:67 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
第一章 绪论
1.1 研究背景
1.2 研究现状
1.2.1 代码异味与代码重构
1.2.2 代码异味检测工具与方法
1.2.3 自承认现象的研究
1.3 本文的工作
1.4 研究内容和创新点
1.5 论文的组织和结构
1.6 本章小结
第二章 相关技术与知识
2.1 PMD
2.2 SVN
2.3 Pearson相关系数与显著水平
2.4 批处理脚本
2.5 Ref-Finder
2.6 本章总结
第三章 问题研究、数据收集分析方法与实验流程
3.1 问题与项目选择规则
3.1.1 目标与研究问题
3.1.2 案例选取规则
3.2 数据收集过程
3.2.1 需要收集的数据
3.2.2 数据收集的方法
3.2.3 非SAR版本收集
3.2.4 代码异味收集
3.3 数据分析方法
3.4 实验程序设计
3.4.1 PMD检测集结构
3.4.2 PMDlet工具介绍
3.5 自动下载与静态分析脚本
3.6 实验出现的问题极其解决办法
3.6.1 PMD分析报告预处理
3.6.2 重复数据清洗
3.6.3 重复身份识别
3.6.4 自承认重构密度的度量
3.6.5 程序脚本的下载问题
3.7 PMDlet实验程序逻辑
3.7.1 Pickuprefactors
3.7.2 matchString
3.7.3 randomnumber
3.7.4 JavaBat
3.7.5 pmdraw
3.8 本章小结
第四章 案例分析实验
4.1 案例分析项目
4.2 实验结果
4.3 结果讨论
4.4 关键结论验证
4.5 启发信息
4.6 效度分析
4.7 本章小结
第五章 结束语
5.1 总结
5.2 展望
参考文献
附录1 攻读硕士学位期间发表的学术论文
附录2 攻读硕士学位期间参加的科研项目
致谢
本文编号:3787638
【文章页数】:67 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
第一章 绪论
1.1 研究背景
1.2 研究现状
1.2.1 代码异味与代码重构
1.2.2 代码异味检测工具与方法
1.2.3 自承认现象的研究
1.3 本文的工作
1.4 研究内容和创新点
1.5 论文的组织和结构
1.6 本章小结
第二章 相关技术与知识
2.1 PMD
2.2 SVN
2.3 Pearson相关系数与显著水平
2.4 批处理脚本
2.5 Ref-Finder
2.6 本章总结
第三章 问题研究、数据收集分析方法与实验流程
3.1 问题与项目选择规则
3.1.1 目标与研究问题
3.1.2 案例选取规则
3.2 数据收集过程
3.2.1 需要收集的数据
3.2.2 数据收集的方法
3.2.3 非SAR版本收集
3.2.4 代码异味收集
3.3 数据分析方法
3.4 实验程序设计
3.4.1 PMD检测集结构
3.4.2 PMDlet工具介绍
3.5 自动下载与静态分析脚本
3.6 实验出现的问题极其解决办法
3.6.1 PMD分析报告预处理
3.6.2 重复数据清洗
3.6.3 重复身份识别
3.6.4 自承认重构密度的度量
3.6.5 程序脚本的下载问题
3.7 PMDlet实验程序逻辑
3.7.1 Pickuprefactors
3.7.2 matchString
3.7.3 randomnumber
3.7.4 JavaBat
3.7.5 pmdraw
3.8 本章小结
第四章 案例分析实验
4.1 案例分析项目
4.2 实验结果
4.3 结果讨论
4.4 关键结论验证
4.5 启发信息
4.6 效度分析
4.7 本章小结
第五章 结束语
5.1 总结
5.2 展望
参考文献
附录1 攻读硕士学位期间发表的学术论文
附录2 攻读硕士学位期间参加的科研项目
致谢
本文编号:3787638
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3787638.html