TESORO
收藏arXiv2024-11-08 更新2024-11-12 收录
下载链接:
https://github.com/NamCyan/tesoro
下载链接
链接失效反馈官方服务:
资源简介:
TESORO数据集由越南河内科学与技术大学和意大利拉奎拉大学共同创建,专注于检测Java源代码中的技术债务。该数据集包含974个Java项目的源代码和相关注释,旨在通过结合代码和注释信息来提高技术债务检测的准确性。数据集的创建过程包括从Stack corpus中提取代码和注释,并进行手动分类。TESORO数据集的应用领域主要集中在软件工程中的技术债务检测,旨在通过提供更丰富的上下文信息来改进现有的技术债务检测模型。
提供机构:
越南河内科学与技术大学
创建时间:
2024-11-08
原始信息汇总
Tesoro 数据集概述
简介
Tesoro 数据集旨在通过关联自承认技术债务(SATD)注释与其对应的源代码,来改进 Java 源代码中技术债务的检测。该数据集填补了现有方法主要分析注释而忽略源代码本身的空白。
数据集结构
Tesoro 数据集包含两个子集:
Tesoro_comment
- 用途: 支持与 SATD 相关的任务,源代码可作为额外上下文。
- 结构: json { "id": "function id in the dataset", "comment_id": "comment id of the function", "comment": "comment text", "classification": "technical debt types (DESIGN | IMPLEMENTATION | DEFECT | DOCUMENTATION | TEST | NONSATD)", "code": "full fucntion context", "code_context_2": "2 lines code context", "code_context_10": "10 lines code context", "code_context_20": "20 lines code context", "repo": "Repository that contains this source" }
Tesoro_code
- 用途: 支持在不依赖自然语言注释的情况下检测源代码中的技术债务。
- 结构: json { "id": "function id in the dataset", "original_code": "raw function", "code_wo_comment": "original code without comment", "cleancode": "normalized version of code (lowercase, remove newline )", "label": "binary list corresponding to 4 TD types (DESIGN, IMPLEMENATION, DEFECT, TEST)", "repo": "Repository that contains this source" }
数据使用
-
Huggingface 数据集:
tesoro-comment: Huggingface 链接tesoro-code: Huggingface 链接
-
Github 数据集:
- 数据集位于 data/tesoro 目录下。
实验数据
用于训练 SATD 检测器、进行 k-fold 评估和回答研究问题的数据详细信息,请参阅 Data for Experiments。
实验复现
研究问题包括:
- RQ1: 手动分类的注释是否有助于提高 SATD 检测的改进?
- RQ2: 源代码的包含是否有助于增强技术债务的检测?
- RQ3: 不同预训练模型在仅从源代码检测 TD 时的准确性如何?
实验结果可在 results 目录下找到。复现实验的详细信息,请参阅 Training。
排行榜
模型性能比较:
| 模型名称 | 模型大小 | EM | F1 |
|---|---|---|---|
| CodeBERT | 125M | 38.28 | 43.47 |
| UniXCoder | 125M | 38.12 | 42.58 |
| GraphCodeBERT | 125M | 39.38 | 44.21 |
| RoBERTa | 125M | 35.37 | 38.22 |
| ALBERT | 11.8M | 39.32 | 41.99 |
| PLBART | 140M | 36.85 | 39.90 |
| Codet5 | 220M | 32.66 | 35.41 |
| CodeT5+ | 220M | 37.91 | 41.96 |
| TinyLlama | 1.03B | 37.05 | 40.05 |
| DeepSeek-Coder | 1.28B | 42.52 | 46.19 |
| OpenCodeInterpreter | 1.35B | 38.16 | 41.76 |
| phi-2 | 2.78B | 37.92 | 41.57 |
| starcoder2 | 3.03B | 35.37 | 41.77 |
| CodeLlama | 6.74B | 34.14 | 38.16 |
| Magicoder | 6.74B | 39.14 | 42.49 |
引用
使用 Tesoro 数据集时,请引用以下 BibTeX: bibtex @article{nam2024tesoro, title={Improving the detection of technical debt in Java source code with an enriched dataset}, author={Hai, Nam Le and Bui, Anh M. T. Bui and Nguyen, Phuong T. and Ruscio, Davide Di and Kazman, Rick}, journal={}, year={2024} }
许可证
搜集汇总
数据集介绍

构建方式
TESORO数据集的构建方式独特且系统,通过分析974个Java项目的源代码和嵌入的注释,从Stack语料库中提取。研究团队首先利用现有的Maldonado-62K数据集训练了一个SATD分类器,随后使用该分类器从开源项目中检测SATD注释。接着,通过一种创新的方法定位并注释与SATD注释相关的代码片段,确保了数据集的高质量和丰富性。最终,通过人工验证和机器学习工具的结合,构建了一个包含技术债务注释及其相关源代码的大型数据集。
特点
TESORO数据集的主要特点在于其不仅包含了传统的文本注释,还首次引入了与技术债务相关的源代码,这为研究者提供了更为全面和深入的分析材料。此外,数据集的构建过程中采用了多层次的验证和注释方法,确保了数据的高准确性和可靠性。TESORO数据集的多样性和广泛性也使其成为研究技术债务检测和管理的宝贵资源。
使用方法
TESORO数据集的使用方法多样,适用于多种研究场景。研究者可以利用该数据集训练和验证新的SATD检测模型,通过结合注释和源代码信息,提升模型的预测性能。此外,TESORO数据集还可用于探索源代码中技术债务的直接检测方法,减少对文本注释的依赖。数据集的开放性和详细的使用指南,使得研究人员能够快速上手并进行深入的实验和分析。
背景与挑战
背景概述
TESORO数据集由Nam Le Hai、Anh M. T. Bui、Phuong T. Nguyen、Davide Di Ruscio和Rick Kazman等人创建,专注于通过丰富的数据集改进Java源代码中技术债务的检测。该数据集的构建始于对Stack语料库中974个Java项目的评论及其相关源代码的分析,旨在填补现有方法主要关注与技术债务相关的关键标记而忽视源代码本身丰富信息的空白。TESORO数据集的创建不仅提升了现有自我承认技术债务(SATD)检测模型的预测性能,还显著提高了预测各种类型技术债务的准确性。该数据集的发布预计将激发未来在技术债务识别领域的研究,并为其他技术债务检测研究提供基准。
当前挑战
TESORO数据集面临的挑战主要集中在两个方面:一是解决领域问题,即图像分类的挑战;二是构建过程中遇到的挑战。在领域问题方面,TESORO数据集旨在解决技术债务检测中的数据不平衡问题,通过引入更多样化的数据样本提升模型的泛化能力。在构建过程中,数据集的创建涉及从大量源代码中提取和分类技术债务,这一过程需要大量的人工标注和验证,以确保数据集的高质量和可靠性。此外,如何有效地整合源代码信息以提高技术债务检测的准确性,也是该数据集面临的重要挑战。
常用场景
经典使用场景
TESORO数据集在软件工程领域中被广泛用于技术债务(Technical Debt, TD)的检测与管理。其经典使用场景包括通过分析Java源代码中的注释和相关代码片段,识别和分类自我承认的技术债务(Self-Admitted Technical Debt, SATD)。数据集通过提供丰富的注释和代码上下文,显著提升了现有SATD检测模型的预测性能,特别是在识别不同类型的技术债务方面。
解决学术问题
TESORO数据集解决了在技术债务检测中依赖于文本注释的局限性问题。传统方法主要通过代码注释来识别技术债务,但这些注释可能过时或不准确。TESORO通过结合注释和源代码,提供了更全面的技术债务识别方法,从而提高了检测的准确性和可靠性。这一创新不仅推动了技术债务检测的研究进展,还为软件维护和质量保证提供了新的工具和方法。
衍生相关工作
TESORO数据集的发布催生了多项相关研究工作,特别是在技术债务检测和软件工程自动化领域。例如,研究者们基于TESORO数据集开发了新的机器学习模型,用于更精确地识别和分类技术债务。此外,TESORO还启发了对代码上下文在技术债务检测中作用的深入研究,推动了多模态数据融合技术在软件工程中的应用。这些衍生工作不仅丰富了技术债务检测的理论基础,也为实际应用提供了更多可能性。
以上内容由遇见数据集搜集并总结生成



