软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2025年第7期:Java依赖异味的实证研究与统一检测技术

发布日期:

作者:孙伟杰,许畅,王莹

单位:孙伟杰,计算机软件新技术全国重点实验室 (南京大学), 江苏 南京 210023;南京大学 计算机学院, 江苏 南京 21002311,许畅,计算机软件新技术全国重点实验室 (南京大学), 江苏 南京 210023;南京大学 计算机学院, 江苏 南京 21002302,王莹,东北大学 软件学院, 辽宁 沈阳 11016903

关键词:依赖管理;软件生态;质量保障;实证研究;静态分析

基金:国家自然科学基金(62141210); 江苏省前沿引领技术基础研究专项(BK20202001)

Java语言因丰富的依赖库和便捷的构建工具(如Maven和Gradle)已成为当今最流行的应用项目开发语言之一. 然而, 随着依赖库规模的持续增大, Java项目的依赖管理变得愈益复杂, 也不断超越现有工具的管理能力, 其潜藏问题容易在未预期情况下触发, 严重影响当前项目及所在Java生态中其他项目的构建和运行, 如造成构建错误、运行崩溃或语义冲突等后果. 针对现有调研和技术工作对Java语言依赖管理问题分析不足的缺陷, 提出依赖异味(dependency smell)的概念, 统一建模此类问题, 并对涉及Maven和Gradle构建工具所有类别的依赖管理问题开展大规模实证研究, 分析来自开源社区(如GitHub)、官方文档(如Maven依赖管理手册)和系列调研及技术论文的各类依赖管理问题, 最终总结出13类依赖异味及其触发根源和影响特征等. 基于该实证研究发现, 设计了面向Java项目依赖异味的统一检测算法, 并实现了适配于Maven和Gradle构建工具的专项检测工具JDepAna. 实验结果表明, 对已知依赖异味, JDepAna达到95.9%的检测召回率, 对新的上百个Java项目, JDepAna检测出30689个依赖异味实例, 从中选出360个实例, 人工验证真阳率达到96.1%, 其中, 进一步汇报48个实例给开发者, 42个已被快速确认, 21个已被及时修复, 充分验证了所提出的Java依赖异味检测算法和工具的效果和实用性以及对Java项目质量保障的有效支撑.

来源:2025年第7期

《软件学报》期刊编辑部

查看软件学报杂志2025年第7期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员