两个自定义数据集
收藏arXiv2025-02-20 更新2025-02-25 收录
下载链接:
http://arxiv.org/abs/2502.14463v1
下载链接
链接失效反馈官方服务:
资源简介:
该数据集由两个部分组成,一部分是45个开源项目,每个项目中手动注入了45个元数据相关的错误,用于评估MeCheck检测元数据错误的准确性;另一部分是70个开源项目的版本历史,用于评估MeCheck在实际场景中检测元数据错误的效能。这些数据集旨在解决企业应用开发中元数据配置错误的问题,帮助开发者更好地理解和遵循元数据使用规则。
This dataset comprises two components. The first component includes 45 open-source projects, into each of which 45 metadata-related bugs are manually injected, to evaluate the accuracy of MeCheck in detecting metadata errors. The second component consists of the version histories of 70 open-source projects, which is used to assess the effectiveness of MeCheck in detecting metadata errors in real-world scenarios. This dataset aims to address the issue of metadata configuration errors in enterprise application development, helping developers better understand and comply with metadata usage guidelines.
提供机构:
弗吉尼亚理工学院
创建时间:
2025-02-20
搜集汇总
数据集介绍

构建方式
该数据集的构建主要通过对Spring和JUnit框架的文档进行深入研究,手动定义了15条元数据使用规则。这些规则涵盖了XML文件、注解和Java代码之间的内容一致性。然后,研究者在45个开源企业应用程序中手动注入了45个与元数据相关的错误,创建了第一个数据集。第二个数据集包含了70个开源企业应用程序的多个版本。这两个数据集都用于评估MeCheck工具检测元数据相关错误的有效性。
特点
该数据集的特点是包含了一系列手动定义的元数据使用规则,这些规则被用来评估MeCheck工具的有效性。第一个数据集包含了45个企业应用程序,每个应用程序都有一个手动注入的错误,用于评估MeCheck工具的精确性和召回率。第二个数据集包含了70个企业应用程序的多个版本,用于评估MeCheck工具在实际场景中的有效性。
使用方法
使用该数据集的方法包括以下步骤:首先,需要定义元数据使用规则,这些规则可以用RSL语言进行描述。然后,可以使用MeCheck工具根据这些规则来分析企业应用程序,检测元数据相关的错误。最后,可以评估MeCheck工具的检测精度和召回率,以及在实际场景中的有效性。
背景与挑战
背景概述
企业级应用(EA)的开发是一个复杂的流程,涉及创建大规模、多层次的、可伸缩的、可靠和安全的网络应用。为了减少EA开发的复杂性,开发者通常在Java EE平台或第三方框架(如Spring)之上构建EA。这些平台或框架遵循关注点分离的原则,处理诸如持久性、事务和安全等非功能性关注点,从而使开发者只需手动实现EA的核心功能。大多数平台或框架支持声明式编程模型,允许EA开发者使用元数据(即Java注解和XML文件)来配置应用程序组件的部署方式以及这些组件之间的交互方式。然而,由于三个原因,正确使用元数据对开发者来说可能是一个挑战。首先,使用规则是特定领域的,并且随着Java框架的不同而变化,因此开发者很容易混淆并错误使用元数据。其次,当部署或配置任务对Java注解、代码实现和/或XML文件的内容提出一致性约束时,开发者在演进软件时可能无法观察到所有约束,从而导致元数据或代码的不一致更新。第三,现有的工具很少同时分析元数据和Java代码,更不用说在软件工件之间找到语义不一致了。因此,当元数据误用导致任何配置错误、异常运行时行为、混淆错误或安全漏洞时,开发者只能独自处理元数据相关问题。为了帮助开发者调试元数据使用,我们发明了一种半自动解决方案,包括两部分:RSL(规则规范语言)和MeCheck(元数据检查器)。
当前挑战
在开发EA时,正确使用元数据对软件质量至关重要。然而,现有的程序分析技术(如WALA和Soot)很少有助于元数据调试。虽然有些现有工具可以帮助开发者识别某些元数据错误,但工具支持相当有限。本文中,我们开发了RSL——一种用于描述元数据使用检查规则的领域特定语言,并构建了MeCheck——一种基于RSL规则分析程序的工具。与现有工具相比,我们的方法在三个方面是独特的。首先,RSL允许库/框架开发者自由指定代码、注解和XML项目之间关系的领域特定约束;因此,它使MeCheck能够在更广泛的范围内执行多样化的规则,并赋予MeCheck强大的扩展能力。其次,MeCheck从各种软件工件(如Java源文件和XML文件)中提取程序数据,并通过推理提取数据之间的关系来检测错误。它展示了将源代码分析与元数据分析相结合的一种很好的方法。第三,MeCheck在尝试建立给定程序与多个RSL规则描述的错误模式之间的模式匹配时,应用优化以减少冗余数据处理。没有先前的工作如此关注元数据相关错误检测的时间成本。在静态分析元数据使用方面,仍然有大量的改进空间。在未来,我们将研究更多由不同库框架提出的领域特定规则,并将MeCheck扩展到进行更高级的代码和元数据之间的协同分析。
常用场景
经典使用场景
该数据集主要用于研究企业应用中的元数据相关错误检测。企业应用开发者通常使用元数据(如Java注解和XML文件)来配置应用程序组件,但由于元数据使用规则复杂,现有工具提供的支持有限,开发者容易误用元数据。该数据集提供了两个数据集,第一个包含45个企业应用及其手动注入的45个错误,第二个包含70个企业应用的多个版本。通过使用MeCheck工具,研究者能够检查这些应用中的元数据使用是否正确,从而发现和修复错误。
实际应用
该数据集的实际应用场景包括企业应用开发、软件维护和静态代码分析。企业应用开发者可以使用MeCheck工具来检查其应用中的元数据使用是否正确,从而提高代码质量和安全性。此外,MeCheck工具还可以用于软件维护,帮助开发者发现和修复现有的元数据相关错误。在静态代码分析领域,MeCheck工具可以作为一种新的工具来检测和报告元数据使用中的不一致性和错误。
衍生相关工作
该数据集衍生了多个相关的研究工作,包括对RSL语言的扩展和改进,以及MeCheck工具的性能优化和功能增强。研究者们通过扩展RSL语言的功能,使其能够表达更复杂的元数据检查规则,从而提高MeCheck工具的检测能力。此外,研究者们还通过优化MeCheck工具的算法和实现,提高了其性能和可扩展性,使其能够更好地适应不同的企业应用场景。
以上内容由遇见数据集搜集并总结生成



