CoCoMUT method-context records
收藏资源简介:
CoCoMUT方法上下文数据集由德克萨斯大学达拉斯分校等机构联合创建,是一个专为软件工程任务设计的Java代码上下文标准化数据集。该数据集包含56,512条方法级记录,每条记录整合了源代码实现、类环境、文档注释、调用图关系及元数据等多维度信息,覆盖20个真实世界Java仓库的完整分析结果。数据集通过自动化流水线生成,结合Spoon源码分析与SootUp字节码解析技术,实现了高达97.8%的源码-字节码对齐精度。该数据集主要应用于代码摘要生成、测试用例构建、程序修复等软件工程智能化任务,为机器学习模型提供可复现的结构化上下文输入。
The CoCoMUT Method Context Dataset was jointly developed by The University of Texas at Dallas and other institutions. It is a standardized Java code context dataset specifically designed for software engineering tasks. This dataset comprises 56,512 method-level records, with each record integrating multi-dimensional information such as source code implementations, class environments, documentation comments, call graph relationships and metadata, covering the complete analysis results of 20 real-world Java repositories. Generated via an automated pipeline that combines Spoon source code analysis and SootUp bytecode parsing technologies, the dataset achieves a source code-to-bytecode alignment accuracy of up to 97.8%. Primarily applied to intelligent software engineering tasks including code summarization generation, test case construction and program repair, the dataset provides reproducible structured context inputs for machine learning models.
数据集概述:CoCoMUT 🥥
CoCoMUT 是一个用于从 Java 代码仓库中提取方法级上下文(Method-Level Context)的工具/数据集构建器,专为文档相关研究设计。它从 Java 方法中提取结构化信息,并以 JSONL 格式输出,包含源代码、Javadoc、类型上下文、文档元数据、来源信息以及静态字节码调用上下文。
核心特性
- 基于编译项目的提取:支持从 Java 源码、项目类文件、构建输出目录或项目 JAR 中提取。
- 稳定的方法标识:通过路径、限定类型、擦除参数类型和擦除返回类型唯一标识方法。
- Javadoc 感知上下文:解析
@see、{@link ...}、{@inheritDoc}、结构化标签、文档度量以及引用的项目符号。 - 静态字节码调用上下文:提供调用者/被调用者关系,在字节码目标可确定映射到项目源码方法时进行源码关联。
- 研究友好型输出:生成 JSONL 文件,附带提取报告和无需依赖的 Web 查看器。
输出内容(每行 JSONL 记录)
每行 JSONL 记录包含以下信息:
- 方法信息:URI、签名、源代码、Javadoc、参数、返回类型、注解、抛出的异常、源码位置。
- 类型上下文:类 Javadoc、层级结构、字段、重载方法、兄弟方法、文档度量。
- 解析的 Javadoc 引用:包含目标类型、领域、作用域分类。
- 调用上下文:来自静态字节码分析的调用者/被调用者,当字节码目标唯一映射到源码方法时进行项目源码关联。
- 来源字段:描述后端模式、解析置信度、失败信息及选定目标。
快速开始
-
克隆仓库并运行测试: bash git clone https://github.com/assert-lab/CoCoMUT.git cd CoCoMUT ./mvnw test
-
在 Java 项目上运行 CoCoMUT: bash ./bin/cocomut --project /path/to/java/project --scope entry-points --source-set main --allow-build
-
使用 JSONL 查看器浏览输出: bash python3 scripts/method_contexts_viewer.py ./cocomut_output
输出结构
默认输出路径:
./cocomut_output/<project-name>-<path-hash>/method_contexts__<request-hash>.jsonl
重要注意事项
- 当前状态:CoCoMUT 仅支持 Java 17+,且仅进行静态分析,不执行应用程序代码或测试。
- 构建安全:默认不执行仓库控制的 Maven/Gradle 构建,
--allow-build参数仅用于受信任的代码仓库,或使用--externally-sandboxed-build通过容器/VM 沙箱构建。 - 依赖条件:被分析的项目必须提供可用的字节码(如类文件或 JAR),否则无法成功提取。
许可证
Apache 2.0

- 1CoCoMUT: A Tool for Code-Context Mining and Automated Dataset Generation德克萨斯大学达拉斯分校; 遗产高中; 威廉与玛丽学院 · 2026年



