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 条
  • [1] In vivo test and rollback of Java']Java applications as they are
    Bertolino, Antonia
    De Angelis, Guglielmo
    Miranda, Breno
    Tonella, Paolo
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2023, 33 (07)
  • [2] Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java']Java Applications to Microservices
    Kalia, Anup K.
    Xiao, Jin
    Krishna, Rahul
    Sinha, Saurabh
    Vukovic, Maja
    Banerjee, Debasish
    PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21), 2021, : 1214 - 1224
  • [3] Programming multirobot applications using the ThinkingCap-II Java']Java framework
    Martinez-Barbera, H.
    Herrero-Perez, D.
    ADVANCED ENGINEERING INFORMATICS, 2010, 24 (01) : 62 - 75
  • [4] Java']Java technology in the design and implementation of web applications
    Masovic, Sead
    Saracevic, Muzafer
    Kamberovic, Hamza
    Kudumovic, Mensura
    TECHNICS TECHNOLOGIES EDUCATION MANAGEMENT-TTEM, 2012, 7 (02): : 504 - 512
  • [5] Java']Java's Alternatives and the Limitations of Java']Java when Writing Cross-Platform Applications for Mobile Devices in the Medical Domain
    Bloice, Marcus D.
    Wotawa, Franz
    Holzinger, Andreas
    PROCEEDINGS OF THE ITI 2009 31ST INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY INTERFACES, 2009, : 47 - +
  • [6] Evaluation of a model-based testing platform for Java']Java applications
    Villalobos-Arias, Leonardo
    Quesada-Lopez, Christian
    Martinez, Alexandra
    Jenkins, Marcelo
    IET SOFTWARE, 2020, 14 (02) : 115 - 128
  • [7] Uncovering Performance Problems in Java']Java Applications with Reference Propagation Profiling
    Yan, Dacong
    Xu, Guoqing
    Rountev, Atanas
    2012 34TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2012, : 134 - 144
  • [8] JMaCS: a Java']Java monitoring and control system
    Dickens, Rob
    ADVANCED SOFTWARE AND CONTROL FOR ASTRONOMY II, PTS 1 & 2, 2008, 7019
  • [9] JEMMA: An extensible Java']Java dataset for ML4Code applications
    Karmakar, Anjan
    Allamanis, Miltiadis
    Robbes, Romain
    EMPIRICAL SOFTWARE ENGINEERING, 2023, 28 (02)
  • [10] Automated Detection of Software Performance Antipatterns in Java']Java-Based Applications
    Trubiani, Catia
    Pinciroli, Riccardo
    Biaggi, Andrea
    Fontana, Francesca Arcelli
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) : 2873 - 2891