Tool-Assisted Componentization of Java']Java Applications

被引:3
|
作者
Hammad, Mahmoud M. [1 ]
Abueisa, Ibrahim [2 ]
Malek, Sam [3 ]
机构
[1] Jordan Univ Sci & Technol, Software Engn Dept, Irbid, Jordan
[2] Amazon Inc, Amman, Jordan
[3] Univ Calif Irvine, Dept Informat, Irvine, CA USA
来源
IEEE 19TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE (ICSA 2022) | 2022年
关键词
SOFTWARE; SYSTEM; ARCHITECTURE; INFORMATION;
D O I
10.1109/ICSA53651.2022.00012
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Many popular object-oriented (OO) programming languages, such as Java, do not provide explicit support for architecture-based development, i.e., do not provide programming-language constructs that are at the granularity of architectural constructs, such as components and ports. The gap between how engineers design their systems and how they implement them has been one of the leading causes of architectural drift a situation in which the prescriptive architecture (the designed architecture) does not match the descriptive architecture (the implemented architecture). To mitigate this challenge, in its ninth iteration, Java introduced the concept of Java Platform Module System (JPMS), which for the first time provides explicit implementation-level support for well-known architectural constructs, such as components (called modules) and ports (called module directives). Despite this, the majority of existing Java applications (apps) are still purely OO programs that do not make use of the new constructs, because converting them to well-structured component-based (CB) programs is a tedious and error-prone task. In fact, prior research has shown that when engineers convert OO apps to CB apps, they tend to be highly over-privileged, i.e., components are granted more access privileges than they actually need. To mitigate these challenges, we have developed OO2CB, an approach for conversion of an OO Java app to a least-privilege CB Java app. OO2CB employs component recovery techniques to assist the developer in determining a given OO app's components. It then statically analyzes the source code of the app to determine the dependencies among its recovered components and the required port types for facilitating their interaction. Finally, OO2CB generates a functionally equivalent CB app that satisfies the least-privilege security principle. Our experiments on several large real-world OO Java apps corroborate the effectiveness of OO2CB.
引用
收藏
页码:36 / 46
页数:11
相关论文
共 50 条
  • [31] Development nature matters: An empirical study of code clones in Java']JavaScript applications
    Cheung, Wai Ting
    Ryu, Sukyoung
    Kim, Sunghun
    EMPIRICAL SOFTWARE ENGINEERING, 2016, 21 (02) : 517 - 564
  • [32] Injecting Shortcuts for Faster Running Java']Java Code
    Brownlee, Alexander E., I
    Petke, Justyna
    Rasburn, Anna F.
    2020 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION (CEC), 2020,
  • [33] Studying the Use of Java']Java Logging Utilities in the Wild
    Chen, Boyuan
    Jiang, Zhen Ming
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 397 - 408
  • [34] Challenges of Producing Software Bill of Materials for Java']Java
    Balliu, Musard
    Baudry, Benoit
    Bobadilla, Sofia
    Ekstedt, Mathias
    Monperrus, Martin
    Ron, Javier
    Sharma, Aman
    Skoglund, Gabriel
    Soto-Valero, Cesar
    Wittlinger, Martin
    IEEE SECURITY & PRIVACY, 2023, 21 (06) : 12 - 23
  • [35] Darcy: Automatic Architectural Inconsistency Resolution in Java']Java
    Ghorbani, Negar
    Singh, Tarandeep
    Garcia, Joshua
    Malek, Sam
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2024, 50 (06) : 1639 - 1657
  • [36] Updating Gin's profiler for current Java']Java
    Watkinson, Myles
    Brownlee, Alexander E. I.
    2023 IEEE/ACM INTERNATIONAL WORKSHOP ON GENETIC IMPROVEMENT, GI, 2023, : 23 - 28
  • [37] A multimedia case management system implemented in Java']Java
    Stewart, HD
    Davis, ML
    Handy, DL
    Kvarfordt, KB
    Ford, G
    SENSORS, C31, INFORMATION, AND TRAINING TECHNOLOGIES FOR LAW ENFORCEMENT, 1999, 3577 : 200 - 208
  • [38] Weak Fairness Semantic Drawbacks in Java']Java Multithreading
    Kaiser, Claude
    Pradat-Peyre, Jean-Francois
    RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2009, 2009, 5570 : 90 - +
  • [39] Teaching digital holography through an interface in Java']Java
    Araiza-Esquivel, Ma.
    Godina, Pilar C.
    Lopez-Martinez, Alfonso
    Olvera, Carlos
    Villagrana Barraza, Santiago
    Ortiz-Daz, Diana
    FIFTEENTH CONFERENCE ON EDUCATION AND TRAINING IN OPTICS AND PHOTONICS (ETOP 2019), 2019, 11143
  • [40] A Java']Java Processor IP Design for Embedded SoC
    Tsai, Chun-Jen
    Kuo, Han-Wen
    Lin, Zigang
    Guo, Zi-Jing
    Wang, Jun-Fu
    ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2015, 14 (02) : 35