five

CodeCloneChangesDataset

收藏
github2024-04-07 更新2024-05-31 收录
下载链接:
https://github.com/FudanSELab/CodeCloneChangesDataset
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集包含22,009个克隆谱系,24,672对匹配变更和38,041对非匹配变更,用于研究代码克隆实例间的变更传播。数据集收集自51个流行的开源Java项目,详细信息可在basic_info.csv中找到。

This dataset comprises 22,009 clone lineages, 24,672 pairs of matched changes, and 38,041 pairs of unmatched changes, designed for investigating change propagation among code clone instances. The dataset was collected from 51 popular open-source Java projects, with detailed information available in the basic_info.csv file.
创建时间:
2022-03-27
原始信息汇总

数据集概述

1. 数据集内容结构

  • dataset
    • cloneGenealogy
      • basic_info.csv: 包含51个开源Java项目的详细信息。
      • consistent.csv: 包含24,672对匹配的代码变更。
      • inconsistent.csv: 包含38,041对非匹配的代码变更。
      • res
        • 包含从每个项目提取的clone genealogies
    • FC-PDG: 包含从上述clone genealogies提取的FC-PDGs。
  • saveModels
  • src
    • gcn.py
    • run.sh

2. 基本信息

  • 数据集包含22,009个clone genealogies,24,672对匹配的变更和38,041对非匹配的变更。
  • cloneGenealogy 文件夹包含一个基于Web的工具,用于展示克隆对家谱中的源代码变更。
  • 数据集收集自51个流行的开源Java项目。

2.1 匹配与非匹配变更

  • consistent.csvinconsistent.csv 分别包含匹配和非匹配的变更对。
  • 文件中的字段包括:
    • project: 数据所属的项目。
    • groupId: 克隆对的组ID。
    • clone type: 变更前的克隆对类型。
    • consistId: 数据集的增量ID。
    • consistGroup: 匹配的克隆对ID。
    • fileNum: 克隆对是否位于同一文件中。

2.2 数据集资源

  • 每个克隆对的家族关系以JSON文件形式存储,可通过网页可视化。
  • 提供了使用这些资源的指导,包括如何通过网页工具查看特定克隆对的变更历史。
搜集汇总
数据集介绍
main_image_url
构建方式
CodeCloneChangesDataset数据集通过从51个流行的开源Java项目中提取代码克隆实例及其变化历史构建而成。该数据集包含22,009个克隆谱系,24,672对匹配的变化和38,041对不匹配的变化。数据集的构建过程中,首先从项目中提取克隆实例,然后通过分析这些实例在不同版本中的变化,生成匹配和不匹配的变化对。`cloneGenealogy`文件夹中的工具用于可视化克隆实例的变化历史,而`consistent.csv`和`inconsistent.csv`分别存储匹配和不匹配的变化对。
特点
CodeCloneChangesDataset数据集的主要特点在于其丰富的克隆实例变化数据和详细的分类。数据集不仅包含了大量的克隆谱系和变化对,还提供了详细的元数据,如项目信息、克隆类型、变化对的唯一标识等。此外,数据集还提供了可视化工具,帮助用户直观地理解克隆实例的变化过程。这些特点使得该数据集在研究代码克隆变化传播和预测方面具有极高的价值。
使用方法
使用CodeCloneChangesDataset数据集时,用户可以首先通过`cloneGenealogy`文件夹中的工具查看克隆实例的变化历史。数据集中的`consistent.csv`和`inconsistent.csv`文件提供了匹配和不匹配的变化对,用户可以根据这些数据进行进一步的分析和建模。为了训练模型,用户需要安装Python 3.9+和Cuda 11.6+的环境,并通过运行`run.sh`脚本来启动训练过程。数据集的详细使用方法和示例可以在README文件中找到。
背景与挑战
背景概述
CodeCloneChangesDataset 是一个专注于代码克隆变更传播预测的数据集,由复旦大学的 Bin Hu、Yijian Wu、Xin Peng 等人于 2022 年提出,并将在 ICPC 2022 会议上发表。该数据集的核心研究问题是通过基于图的深度学习方法预测代码克隆实例之间的变更传播。数据集包含了 22,009 个克隆族谱、24,672 对匹配的变更和 38,041 对不匹配的变更,这些数据来源于 51 个流行的开源 Java 项目。CodeCloneChangesDataset 的构建不仅为代码克隆领域的研究提供了丰富的资源,还为理解代码克隆的演化过程提供了新的视角,推动了软件工程领域中代码克隆检测与变更分析的研究进展。
当前挑战
CodeCloneChangesDataset 在构建过程中面临了多个挑战。首先,从 51 个开源项目中提取和组织大量的代码克隆族谱和变更数据,确保数据的准确性和一致性是一个复杂的过程。其次,区分匹配与不匹配的变更对需要精细的分析和标注,这增加了数据集构建的难度。此外,如何有效地利用这些数据进行变更传播预测,尤其是在基于图的深度学习模型中,仍然是一个技术难题。最后,数据集的动态演化特性要求持续的维护和更新,以确保其适应不断变化的软件开发环境。
常用场景
经典使用场景
CodeCloneChangesDataset 数据集在软件工程领域中,主要用于研究代码克隆实例之间的变更传播预测。通过该数据集,研究者能够分析代码克隆对在不同版本中的变化情况,特别是匹配和非匹配变更对。这种分析有助于理解代码克隆在软件演化过程中的行为,并为自动化工具的开发提供基础数据。
解决学术问题
该数据集解决了代码克隆变更传播预测中的关键学术问题,特别是在大规模开源项目中,如何有效识别和分析代码克隆实例的变更一致性。通过提供详细的克隆族谱和变更对数据,研究者能够深入探讨代码克隆在软件维护和演化中的影响,为软件工程领域的理论研究提供了重要支持。
衍生相关工作
基于 CodeCloneChangesDataset 数据集,研究者已开展多项相关工作,包括但不限于代码克隆变更传播的图神经网络模型研究、代码克隆实例的演化分析等。这些工作不仅推动了代码克隆领域的技术进步,还为软件工程中的自动化工具和方法提供了新的研究方向和实践基础。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作