Detection and Repair of Architectural Inconsistencies in JavaTechnical Track
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.
Thu 30 MayDisplayed time zone: Eastern Time (US & Canada) change
14:00 - 15:30 | |||
14:00 20mTalk | ENRE: A Tool Framework for Extensible eNtity Relation ExtractionDemos Demonstrations Wuxia Jin Xi'an Jiaotong University, Yuanfang Cai Drexel University, Rick Kazman University of Hawai‘i at Mānoa, Qinghua Zheng MOEKLINNS Lab, Department of Computer Science and Technology, Xi'an Jiaotong University, 710049, China, Di Cui Xi'an Jiaotong University, Ting Liu MOEKLINNS Lab, Department of Computer Science and Technology, Xi'an Jiaotong University, 710049, China | ||
14:20 20mTalk | Detection and Repair of Architectural Inconsistencies in JavaTechnical Track Technical Track Negar Ghorbani University of California, Irvine, Joshua Garcia University of California, Irvine, Sam Malek University of California, Irvine | ||
14:40 20mTalk | Can I Have a Stack Trace to Examine the Dependency Conflict Issue?Technical Track Technical Track Ying Wang Northeastern University, China, Ming Wen The Hong Kong University of Science and Technology, Rongxin Wu Department of Computer Science and Engineering, The Hong Kong University of Science and Technology, Zhenwei Liu Northeastern University, China, Shin Hwei Tan Southern University of Science and Technology, Zhiliang Zhu Northeastern University, China, Hai Yu Northeastern University, China, Shing-Chi Cheung Department of Computer Science and Engineering, The Hong Kong University of Science and Technology | ||
15:00 20mTalk | Investigating the Impact of Multiple Dependency Structures on Software DefectsTechnical Track Technical Track Di Cui Xi'an Jiaotong University, Ting Liu MOEKLINNS Lab, Department of Computer Science and Technology, Xi'an Jiaotong University, 710049, China, Yuanfang Cai Drexel University, Qinghua Zheng MOEKLINNS Lab, Department of Computer Science and Technology, Xi'an Jiaotong University, 710049, China, Qiong Feng Drexel University, Wuxia Jin Xi'an Jiaotong University, Jiaqi Guo Xi'an Jiaotong University, Yu Qu Xi'an Jiaotong University | ||
15:20 10mTalk | Discussion Period Papers |