arrow
返回

Darcy: Automatic Architectural Inconsistency Resolution in Java

delete2024-06-01
delete0
delete
OA
AI
N
Negar Ghorbani *
T
T.P. Singh
J
Joshua Garcia
S
Sam Malek
DOI:10.1109/TSE.2024.3396433delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Many mainstream programming languages lack extensive support for architectural constructs, such as software components, which limits software developers in employing many benefits of architecture-based development. To address this issue, Java, one of the most popular and widely-used programming languages, has introduced the Java Platform Module System (JPMS) in its 9th and subsequent versions. JPMS provides the notion of architectural constructs, i.e., software components, as an encapsulation of modules that helps developers construct and maintain large applications efficiently-as well as improving the encapsulation, security, and maintainability of Java applications in general and the JDK itself. However, ensuring that module declarations reflect the actual usage of modules in an application remains a challenge that results in developers mistakenly introducing inconsistent module dependencies at both compile- and run-time. In this paper, we studied JPMS properties and architectural notions in-depth and defined a defect model consisting of eight inconsistent modular dependencies that may arise in Java applications. Based on this defect model, we also present Darcy, a framework that leverages the defect model and static analysis techniques to automatically detect and repair the specified inconsistent dependencies within Java applications at both compile- and run-time. The results of our experiments, conducted over 52 open-source Java 9+ applications, indicate that architectural inconsistencies are widespread and demonstrate Darcy's effectiveness for automated resolution of these inconsistencies.
Keyword:
Software Architecture
Java Platform Module System
Architectural Inconsistency
Software Analysis
Software Repair

期刊

IEEE Transactions on Software Engineering 封面图
IEEE Transactions on Software Engineering
IF:
5.6
论文数:
2.8K
被引数:
1.1W

机构

University of California System 封面图
University of California System
学者数:
37.5W
论文数: 33.7W
被引数: 6.6K