Technical Debt Dataset
收藏github2023-10-24 更新2024-05-31 收录
下载链接:
https://github.com/clowee/The-Technical-Debt-Dataset
下载链接
链接失效反馈官方服务:
资源简介:
Technical Debt Dataset是一个精心策划的数据集,包含从四个工具中提取的测量数据,这些数据来自所有提交,旨在使研究人员能够使用一组共同的数据进行工作,从而比较他们的结果。
The Technical Debt Dataset is a meticulously curated collection of measurement data extracted from four tools, encompassing all submissions. It is designed to enable researchers to work with a unified set of data, thereby facilitating the comparison of their results.
创建时间:
2019-06-05
原始信息汇总
数据集概述
数据集名称
- The Technical Debt Dataset
数据集版本
- 版本1.01:包含32个项目,分析了所有分支,但不推荐使用SonarQube数据。
- 版本2.0:包含31个项目,仅分析了主分支。
数据集内容
- 数据集包含从四个工具中提取的测量数据,用于分析所有提交,以支持研究者在一个共同的数据集上进行研究并比较结果。
- 数据收集过程包括:
- 使用PyDriller从GitHub仓库克隆项目并收集提交信息。
- 使用Refactoring Miner分类重构。
- 从Jira问题跟踪器提取问题信息。
- 使用SonarQube分析技术债务项目。
- 使用Ptidej分析代码异味和反模式。
- 使用SZZ算法识别导致和修复错误的提交。
数据集使用
- 数据集以SQLite数据库格式提供,扩展名为.db。
- 可通过SQLite浏览器如SQLiteStudio打开,并使用SQL进行数据查询。
- 示例SQL查询用于获取项目中“Bug”和“Vulnerability”的SonarQube问题数量。
引用方式
- 引用格式:“The Technical Debt Dataset, Version XX [1]”,其中XX为相应版本号。
- 参考文献:Lenarduzzi, Valentina, Nyyti Saarimäki, and Davide Taibi. "The Technical Debt Dataset." In 15th Conference on Predictive Models and Data Analytics in Software Engineering, 2019.
贡献方式
- 提交新项目:通过电子邮件提供项目分析数据,包括SonarQube版本、项目名称、开发语言等信息。
- 自动化分析管道:寻求贡献者帮助自动化分析过程。
- 提交问题和更正错误:通过GitHub提交新问题。
许可证
- 数据集仅用于研究目的,根据Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license授权。
搜集汇总
数据集介绍

构建方式
Technical Debt Dataset的构建过程涉及多个步骤和工具的综合应用。首先,研究团队通过克隆GitHub仓库获取项目数据,并利用PyDriller从git日志中收集提交信息。接着,使用Refactoring Miner对重构进行分类,并通过Jira问题跟踪器提取问题信息。代码质量方面,团队采用SonarQube分析技术债务项,同时使用Ptidej检测代码异味和反模式。此外,通过SZZ算法的实现,识别了导致和修复错误的提交。数据集分为两个版本:1.01版本分析了所有分支,而2.0版本仅分析了主分支。
特点
Technical Debt Dataset的特点在于其全面性和多样性。数据集涵盖了多个开源项目的详细测量数据,包括代码质量、技术债务、重构、问题跟踪等信息。通过整合多种工具的分析结果,数据集为研究人员提供了一个统一的基准,便于比较不同研究的结果。此外,数据集的两个版本分别针对不同需求设计:1.01版本适用于需要全面分析所有分支的研究,而2.0版本则专注于主分支的分析,减少了数据冗余。
使用方法
Technical Debt Dataset以SQLite数据库的形式提供,用户可以通过SQLite Studio等工具打开并查询数据。数据集支持SQL查询,用户可以根据需求提取特定信息,例如统计某个项目中所有分支的Bug和Vulnerability问题数量。此外,数据可以导出为CSV文件,便于进一步分析和处理。需要注意的是,1.01版本包含了所有提交的分析结果,可能导致数据重复,而2.01版本仅分析主分支,减少了重复项。用户可以根据研究需求选择适合的版本,并通过过滤特定分支或提交来优化数据使用。
背景与挑战
背景概述
技术债务数据集(Technical Debt Dataset)由Valentina Lenarduzzi、Nyyti Saarimäki和Davide Taibi等研究人员于2019年创建,旨在为软件工程领域的研究人员提供一个统一的、可比较的数据集,以支持技术债务相关的研究。该数据集通过分析多个开源项目的提交历史,结合多种工具(如SonarQube、Refactoring Miner和SZZ算法)提取代码质量、重构行为、缺陷修复等信息。其核心研究问题聚焦于技术债务的量化、传播及其对软件质量的影响。该数据集在软件工程领域具有重要影响力,已被多项实证研究引用,推动了技术债务管理的研究进展。
当前挑战
技术债务数据集在构建和应用过程中面临多重挑战。首先,技术债务的量化本身具有复杂性,不同工具对技术债务的定义和测量标准存在差异,导致数据的一致性和可比性难以保证。其次,数据集构建过程中需要处理大规模代码提交历史,涉及多工具集成和数据清洗,技术实现复杂度较高。此外,数据集版本迭代中,从分析所有分支(V1)到仅分析主分支(V2)的转变,虽然减少了数据冗余,但也可能丢失部分有价值的信息。最后,技术债务的动态性和上下文依赖性使得其在不同项目中的表现形式多样,增加了数据分析和模型泛化的难度。
常用场景
经典使用场景
Technical Debt Dataset 主要用于软件工程领域的研究,特别是技术债务(Technical Debt)的量化与分析。该数据集通过整合多个工具(如SonarQube、Refactoring Miner等)对开源项目的代码质量、重构行为、缺陷修复等进行全面测量,为研究人员提供了一个标准化的数据基础。经典的使用场景包括技术债务的扩散性研究、代码异味与反模式的检测,以及缺陷引入与修复的关联分析。通过该数据集,研究人员能够在统一的框架下进行对比实验,提升研究结果的可重复性与可比性。
实际应用
在实际应用中,Technical Debt Dataset 为软件开发团队提供了重要的参考价值。通过分析数据集中的技术债务数据,团队可以识别代码库中的潜在风险区域,优化代码质量并减少维护成本。例如,团队可以利用数据集中的SonarQube数据定位高风险的代码异味和漏洞,从而制定针对性的重构计划。此外,数据集中的缺陷修复信息可以帮助团队理解缺陷引入的模式,改进开发流程以减少未来的缺陷发生率。这些应用场景显著提升了软件项目的可维护性与稳定性。
衍生相关工作
Technical Debt Dataset 衍生了许多经典的研究工作。例如,Nyyti Saarimäki等人利用该数据集研究了Apache生态系统中技术债务的扩散性,揭示了技术债务在开源项目中的分布规律。Valentina Lenarduzzi等人则基于数据集提出了精确估计技术债务的方法,为技术债务管理提供了新的思路。此外,数据集还被用于研究SonarQube技术债务违规与缺陷引入之间的关系,推动了机器学习技术在软件质量评估中的应用。这些研究工作不仅扩展了数据集的应用范围,也为软件工程领域的技术债务研究提供了新的方向。
以上内容由遇见数据集搜集并总结生成



