修改日志驱动的克隆代码跟踪与演化模式分析
需积分: 9 95 浏览量
更新于2024-09-11
1
收藏 786KB PDF 举报
“本文提出了一种基于修改日志的克隆代码跟踪方法,旨在解决现有技术在跟踪软件开发过程中克隆代码变化时存在的问题。通过三种视角(克隆群、克隆片段、克隆代码内容)识别克隆代码的演化模式,并在6款开源软件上进行了实验,验证了方法的有效性。”
在软件开发中,克隆代码,即重复或高度相似的代码段,是常见的现象。这些克隆代码可能由于快速开发、代码复用或者程序员习惯而产生。然而,随着时间推移,克隆代码可能会独立演变,导致维护困难和bug的传播。传统的克隆跟踪方法通常基于软件的发布版本,忽略了开发过程中的变化信息,这限制了对克隆代码演化的理解和管理。
该论文的研究重点在于利用修改日志来追踪这些变化。修改日志记录了每次提交的详细信息,包括代码的添加、删除和修改,因此可以提供更精确的克隆代码动态。首先,论文将每个提交视为一个小版本,利用NiCad工具进行克隆检测。接着,基于Token编辑距离相似度建立克隆群的初步映射。随后,通过分析修改日志,进一步精确地映射克隆片段。再者,根据克隆片段的映射结果修正克隆群的映射关系,确保了跟踪的准确性。最后,从克隆群、克隆片段和克隆内容三个角度识别出不同的演化模式,如稳定演化、分离演化、合并演化、一致变化演化和不一致变化演化。
实验结果显示,超过97%的克隆代码遵循稳定演化模式,而分离和合并演化模式以及复杂的演化模式出现频率极低。一致变化和不一致变化演化模式的比例也保持在较低水平。此外,与同类工具gCad相比,该方法在查全率和查准率上均有2%的提升,并且运行速度更快。
这项研究为理解软件演化过程中克隆代码的行为提供了新的视角,有助于改进软件维护策略,降低维护成本。同时,提出的基于修改日志的克隆代码跟踪方法为未来的软件质量保证和演化分析提供了有效工具。
2019-09-20 上传
2021-04-13 上传
2019-09-19 上传
2019-08-19 上传
2019-09-06 上传
2019-07-22 上传
2019-07-22 上传
2019-09-07 上传
weixin_38743737
- 粉丝: 376
- 资源: 2万+
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载