TY - GEN
T1 - An Evaluation of ACDC in Recovering JPMS-Compliant Components for Java Applications
AU - Al-Refai, Mohammed
AU - Hammad, Mahmoud M.
N1 - Publisher Copyright:
©2024 IEEE.
PY - 2024
Y1 - 2024
N2 - Software architecture is critical for defining a software system’s structure and behavior, influencing quality attributes such as performance, scalability, and security. Architectural drift, the gap between planned and implemented architectures, presents significant challenges, particularly in Java, which lacks explicit architectural constructs. The Java Platform Module System (JPMS) introduced in Java 9 addresses these issues by supporting modularity and dependency management. However, transitioning existing Java applications to JPMS is complex and error-prone, often leading to modules with excessive privileges. Automated component recovery tools, such as the Algorithm for Comprehension-Driven Clustering (ACDC), are essential for facilitating this transition. This paper evaluates ACDC in the context of JPMS. We examined seven real-world Java software systems to determine if ACDC can recover component-based architectures that conform to JPMS’s modular constraints and the Java packaging structures of both the core application and its test suites. Our study found that over 50% of modules had cyclic dependencies, more than 50% of program packages were split across multiple modules with some subjects exceeding 90%, and over 50% of test packages were split across modules in most of the seven subjects. These violations necessitate extensive refactoring. Additionally, ACDC often produced overly fragmented module structures and imbalanced class distributions, complicating maintenance and reducing modular efficiency.
AB - Software architecture is critical for defining a software system’s structure and behavior, influencing quality attributes such as performance, scalability, and security. Architectural drift, the gap between planned and implemented architectures, presents significant challenges, particularly in Java, which lacks explicit architectural constructs. The Java Platform Module System (JPMS) introduced in Java 9 addresses these issues by supporting modularity and dependency management. However, transitioning existing Java applications to JPMS is complex and error-prone, often leading to modules with excessive privileges. Automated component recovery tools, such as the Algorithm for Comprehension-Driven Clustering (ACDC), are essential for facilitating this transition. This paper evaluates ACDC in the context of JPMS. We examined seven real-world Java software systems to determine if ACDC can recover component-based architectures that conform to JPMS’s modular constraints and the Java packaging structures of both the core application and its test suites. Our study found that over 50% of modules had cyclic dependencies, more than 50% of program packages were split across multiple modules with some subjects exceeding 90%, and over 50% of test packages were split across modules in most of the seven subjects. These violations necessitate extensive refactoring. Additionally, ACDC often produced overly fragmented module structures and imbalanced class distributions, complicating maintenance and reducing modular efficiency.
KW - ACDC
KW - Component recovery
KW - Java Platform Module System
KW - Software architecture
UR - https://www.scopus.com/pages/publications/85203673739
U2 - 10.1109/ICICS63486.2024.10638314
DO - 10.1109/ICICS63486.2024.10638314
M3 - Conference contribution
AN - SCOPUS:85203673739
T3 - 2024 15th International Conference on Information and Communication Systems, ICICS 2024
BT - 2024 15th International Conference on Information and Communication Systems, ICICS 2024
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 15th International Conference on Information and Communication Systems, ICICS 2024
Y2 - 13 August 2024 through 15 August 2024
ER -