当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Darcy: Automatic Architectural Inconsistency Resolution in Java
IEEE Transactions on Software Engineering ( IF 6.5 ) Pub Date : 5-3-2024 , DOI: 10.1109/tse.2024.3396433
Negar Ghorbani 1 , Tarandeep Singh 1 , Joshua Garcia 1 , Sam Malek 1
Affiliation  

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.

中文翻译:


Darcy:Java 中的自动架构不一致解决方案



许多主流编程语言缺乏对架构构造(例如软件组件)的广泛支持,这限制了软件开发人员利用基于架构的开发的许多好处。为了解决这个问题,最流行和最广泛使用的编程语言之一 Java 在第 9 版及后续版本中引入了 Java 平台模块系统 (JPMS)。 JPMS 提供了架构构造(即软件组件)的概念,作为模块的封装,帮助开发人员有效地构建和维护大型应用程序,并提高一般 Java 应用程序和 JDK 本身的封装性、安全性和可维护性。然而,确保模块声明反映应用程序中模块的实际使用情况仍然是一个挑战,这会导致开发人员在编译时和运行时错误地引入不一致的模块依赖项。在本文中,我们深入研究了 JPMS 属性和架构概念,并定义了一个缺陷模型,该模型由 Java 应用程序中可能出现的八个不一致的模块依赖项组成。基于这个缺陷模型,我们还提出Darcy 是一个框架,它利用缺陷模型和静态分析技术在编译时和运行时自动检测和修复 Java 应用程序中指定的不一致依赖项。我们对超过 52 个开源 Java 9+ 应用程序进行的实验结果表明,架构不一致现象很普遍,并证明了达西对于自动解决这些不一致问题的有效性。
更新日期:2024-08-19
down
wechat
bug