arrow
Return

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
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

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.
Keywords:
Software Architecture
Java Platform Module System
Architectural Inconsistency
Software Analysis
Software Repair

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.8K
Citations:
1.1W

Organization

University of California System cover
University of California System
Scholars:
37.5W
Papers: 33.7W
Citations: 6.6K
Cited Papers

Cited Papers

Increased Membrane and Soluble P-Selectin in Atrial Fibrillation
err1999-10-26
err0
errOAAI
errAndrew D. Blann; Foo Li-Saw-Hee; Gregory Y.H. Lip
errShare
errSave
Augmentation Mammoplasty
err1993-06-01
err0
PREAI
errThomas G. S. Fiala; W. P. Andrew Lee; James W. May
errShare
errSave
Nasal xeroradiography
err1974-10-01
err0
errOAAI
errPeter McKinney; William Miller
errShare
errSave
err
IF0
err
err0
PREAI
err
errShare
errSave
Genotoxicity in agricultural farmers from Guntur district of South India—A case study
err2011-05-10
err0
PREAI
errP R Jonnalagadda; P Jahan; S Venkatasubramanian; I A Khan; AYE Prasad; K A Reddy; M V Rao; K Venkaiah; Q Hasan
errShare
errSave
Analyzing player networks in Destiny
err2018-03-01
err0
errOAAI
errJohanna Pirker; André Rattinger; Anders Drachen; Rafet Sifa
errShare
errSave
Role of cell cycle control in radiosensitization of mouse spermatogonial stem cells
err2009-07-03
err0
PREAI
errP. P. W. Van Buul; A. Van Duyn-Goedhart; T. Beumer; A. L. Bootsma
errShare
errSave
researcher View more