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 条
  • [41] A journey among Java']Java neutral program variants
    Harrand, Nicolas
    Allier, Simon
    Rodriguez-Cancio, Marcelino
    Monperrus, Martin
    Baudry, Benoit
    GENETIC PROGRAMMING AND EVOLVABLE MACHINES, 2019, 20 (04) : 531 - 580
  • [42] OpenJML: JML for Java']Java 7 by Extending OpenJDK
    Cok, David R.
    NASA FORMAL METHODS, 2011, 6617 : 472 - 479
  • [43] An Empirical Study on Maintainable Method Size in Java']Java
    Chowdhury, Shaiful Alam
    Uddin, Gias
    Holmes, Reid
    2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 252 - 264
  • [44] An Empirical Study on the Practice of Maintaining Object-Relational Mapping Code in Java']Java Systems
    Chen, Tse-Hsun
    Shang, Weiyi
    Yang, Jinqiu
    Hassan, Ahmed E.
    Godfrey, Michael W.
    Nasser, Mohamed
    Flora, Parminder
    13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 165 - 176
  • [45] Predicting Defects in SAP Java']Java Code: An Experience Report
    Holschuh, Tilman
    Paeuser, Markus
    Herzig, Kim
    Zimmermann, Thomas
    Premraj, Rahul
    Zeller, Andreas
    2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, COMPANION VOLUME, 2009, : 172 - 181
  • [46] Civet: An Efficient Java']Java Partitioning Framework for Hardware Enclaves
    Tsai, Chia-Che
    Son, Jeongseok
    Jain, Bhushan
    McAvey, John
    Popa, Raluca Ada
    Porter, Donald E.
    PROCEEDINGS OF THE 29TH USENIX SECURITY SYMPOSIUM, 2020, : 505 - 522
  • [47] Automatic Source Code Summarization of Context for Java']Java Methods
    McBurney, Paul W.
    McMillan, Collin
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2016, 42 (02) : 103 - 119
  • [48] An Analysis of Library Rollbacks: A Case Study of Java']Java Libraries
    Suwa, Hirohiko
    Ihara, Akinori
    Kula, Raula Gaikovina
    Fujibayashi, Daiki
    Matsumoto, Kenichi
    2017 24TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE WORKSHOPS (APSECW), 2017, : 63 - 70
  • [49] About 15 years of Real-Time Java']Java
    Teresa Higuera-Toledano, M.
    PROCEEDINGS OF THE 10TH INTERNATIONAL WORKSHOP ON JAVA TECHNOLOGIES FOR REAL-TIME AND EMBEDDED SYSTEMS, 2012, : 34 - 43
  • [50] Design and Implementation of Telemedicine based on Java']Java Media Framework
    Xiong, Fengguang
    Jia, Zhiyan
    INTERNATIONAL CONFERENCE ON SOLID STATE DEVICES AND MATERIALS SCIENCE, 2012, 25 : 1850 - 1856