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 条
  • [21] Estimating the maintenance effort of Java']JavaScript Applications
    Zozas, Ioannis
    Bibi, Stamatia
    Ampatzoglou, Apostolos
    Sarigiannidis, Panagiotis
    2019 45TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2019), 2019, : 212 - 219
  • [22] ASSESSING COGNITIVE COMPLEXITY IN JAVA']JAVA-BASED OBJECT-ORIENTED SYSTEMS: METRICS AND TOOL SUPPORT
    Crasso, Marco
    Mateos, Cristian
    Zunino, Alejandro
    Misra, Sanjay
    Polvorin, Pablo
    COMPUTING AND INFORMATICS, 2016, 35 (03) : 497 - 527
  • [23] Disseminating a Free, Practical Java']Java Tool To Interactively Generate and Edit 2D Chemical Structures
    Hofmann, Andreas
    Coster, Mark J.
    Taylor, Paul
    JOURNAL OF CHEMICAL EDUCATION, 2019, 96 (06) : 1262 - 1267
  • [24] Detection and Repair of Architectural Inconsistencies in Java']Java
    Ghorbani, Negar
    Garcia, Joshua
    Malek, Sam
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 2019, : 560 - 571
  • [25] Cross-profiling for Java']Java processors
    Binder, Walter
    Schoeberl, Martin
    Moret, Philippe
    Villazon, Alex
    SOFTWARE-PRACTICE & EXPERIENCE, 2009, 39 (18) : 1439 - 1465
  • [26] A Public Unified Bug Dataset for Java']Java
    Ferenc, Rudolf
    Toth, Zoltan
    Ladanyi, Gergely
    Siket, Istvan
    Gyimothy, Tibor
    PROMISE'18: PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON PREDICTIVE MODELS AND DATA ANALYTICS IN SOFTWARE ENGINEERING, 2018, : 12 - 21
  • [27] JAVA']JAVA SECURITY: PRESENT AND NEAR FUTURE
    Gong, Li
    25TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE, 2009, : 400 - 405
  • [28] Verifying temporal specifications of Java']Java programs
    Spegni, Francesco
    Spalazzi, Luca
    Liva, Giovanni
    Pinzger, Martin
    Bollin, Andreas
    SOFTWARE QUALITY JOURNAL, 2020, 28 (02) : 695 - 744
  • [29] Java']Java security: Present and near future
    Gong, L
    IEEE MICRO, 1997, 17 (03) : 14 - 19
  • [30] A Java']Java software for creation of image mosaics
    Bossert, O
    COMPUTER METHODS AND PROGRAMS IN BIOMEDICINE, 2004, 75 (02) : 159 - 161