paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Detection and Repair of Architectural Inconsistencies in Java

Java 中架构不一致性的检测与修复
ICSE 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)2019匹配度 3/10 · 该论文属于纯静态程序分析与自动修复,针对 Java 9 模块架构不一致,未涉及用户核心关注的 PL→AI(ML/Agentic 程序静态分析)、AI→PL(LLM/Agent 改进分析)、浮点程序分析或贝叶斯程序分析。仅在“静态分析+自动修复”这一大类上与其背景弱相关。引用 18 inbox
Negar Ghorbani, Joshua Garcia, Sam Malek
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:针对 Java 9 模块系统定义 8 类不一致依赖,并提出静态分析与自动修复方法 DARCY。

Java 缺乏对软件组件等架构构造的显式支持,Java 9 引入的 Java Platform Module System(JPMS)首次为主流语言带来具有丰富架构接口的模块封装。然而,模块声明未必反映应用中模块的实际使用,开发者可能错误地指定不一致的模块依赖。本文形式化定义了 Java 9 应用中可能出现的 8 种不一致模块依赖,并提出 DARCY,利用这些定义和静态程序分析自动检测 Java 应用中的指定不一致依赖并进行修复。作者在 38 个开源 Java 9 应用上开展实验,结果表明架构不一致普遍存在,并验证了 DARCY 在自动检测与修复这些不一致方面的效果。

问题
Java 9 引入 JPMS 后,模块声明未必反映应用中的实际模块使用,开发者可能错误指定不一致的模块依赖。
方法
论文形式化定义 8 种不一致模块依赖,并提出 DARCY,利用这些定义与静态程序分析自动检测和修复 Java 应用中的不一致依赖。
评估
在 38 个开源 Java 9 应用上进行实验,表明架构不一致普遍存在,并展示 DARCY 在自动检测与修复方面的收益。
原文摘要(Abstract)

Java is one of the most widely used programming languages. However, the absence of explicit support for architectural constructs, such as software components, in the programming language itself has prevented software developers from achieving the many benefits that come with architecture-based development. To address this issue, Java 9 has introduced the Java Platform Module System (JPMS), resulting in the first instance of encapsulation of modules with rich software architectural interfaces added to a mainstream programming language. The primary goal of JPMS is to construct and maintain large applications efficiently-as well as improve the encapsulation, security, and maintainability of Java applications in general and the JDK itself. A challenge, however, is that module declarations do not necessarily reflect actual usage of modules in an application, allowing developers to mistakenly specify inconsistent dependencies among the modules. In this paper, we formally define 8 inconsistent modular dependencies that may arise in Java-9 applications. We also present DARCY, an approach that leverages these definitions and static program analyses to automatically (1) detect the specified inconsistent dependencies within Java applications and (2) repair those identified inconsistencies. The results of our experiments, conducted over 38 open-source Java-9 applications, indicate that architectural inconsistencies are widespread and demonstrate the benefits of DARCY in automated detection and repair of these inconsistencies.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{GhorbaniGM19,
  title = {Detection and Repair of Architectural Inconsistencies in Java},
  author = {Negar Ghorbani and Joshua Garcia and Sam Malek},
  booktitle = {ICSE},
  year = {2019},
  doi = {10.1109/icse.2019.00067}
}