HBSNIFF: A static analysis tool for Java']Java Hibernate object-relational mapping code smell detection

被引:4
|
作者
Huang, Zijie [1 ]
Shao, Zhiqing [1 ]
Fan, Guisheng [1 ]
Yu, Huiqun [1 ]
Yang, Kang [1 ]
Zhou, Ziyi [1 ]
机构
[1] East China Univ Sci & Technol, Dept Comp Sci & Engn, Shanghai 200237, Peoples R China
基金
上海市自然科学基金; 中国国家自然科学基金;
关键词
Code smell; Object-relational mapping; Hibernate; Static analysis; Object-oriented programming; IMPACT;
D O I
10.1016/j.scico.2022.102778
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code smells are symptoms of sub-optimal software design and implementation choices. Detection tools were actively developed for general code smell related to coupling and cohesion issues, but such tools cannot capture domain-specific problems. In this work, we fill the gap in data persistence and query code quality by proposing HBSNIFF, i.e., a static analysis tool for detecting 14 code smells as well as 4 mapping metrics in Java Hibernate Object-Relational Mapping (ORM) codes. HBSNIFF is tested, documented, and manually validated. It also generates readable and customizable reports for every project. Moreover, it is beneficial to Mining Software Repository (MSR) research requiring large-scale analysis since project compilation is not needed for detection. (c) 2022 Elsevier B.V. All rights reserved.
引用
收藏
页数:10
相关论文
共 47 条
  • [1] A Catalog of Object-Relational Mapping Code Smells for Java']Java
    Loli, Samuel
    Teixeira, Leopoldo
    Cartaxo, Bruno
    [J]. 34TH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING, SBES 2020, 2020, : 82 - 91
  • [2] Object-relational mapping in Java']Java with SimpleORM
    Snyder, M
    O'Connor, T
    [J]. DR DOBBS JOURNAL, 2005, 30 (12): : 34 - 36
  • [3] 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
    [J]. 13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 165 - 176
  • [4] Code Smell Detection Tool for Java']Java Script Programs
    Almashfi, Nabil
    Lu, Lunjin
    [J]. 2020 5TH INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATION SYSTEMS (ICCCS 2020), 2020, : 172 - 176
  • [5] MAJOR: A Java']Java language binding for object-relational databases
    Park, CM
    Carey, MJ
    Dessloch, S
    [J]. ADVANCES IN PERSISTENT OBJECT SYSTEMS, 1999, : 112 - 122
  • [6] A Static Code Smell Detector for SQL Queries Embedded in Java']Java Code
    Nagy, Csaba
    Cleve, Anthony
    [J]. 2017 IEEE 17TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2017, : 147 - 152
  • [7] Object-relational Mapping Using JPA, Hibernate and Spring Data JPA
    Tudose, Catalin
    Odubasteanu, Carmen
    [J]. Proceedings - 2021 23rd International Conference on Control Systems and Computer Science Technologies, CSCS 2021, 2021, : 424 - 431
  • [8] Performance Evaluation of Java']Java Based Object Relational Mapping Tools
    Bhatti, Shoaib Mahmood
    Abro, Zahid Hussain
    Abro, Farzana Rauf
    [J]. MEHRAN UNIVERSITY RESEARCH JOURNAL OF ENGINEERING AND TECHNOLOGY, 2013, 32 (02) : 159 - 166
  • [9] An Evaluation of the Hibernate Object-Relational Mapping for Processing Interactive Social Networking Actions
    Ghandeharizadeh, Shahram
    Mutha, Ankit
    [J]. 16TH INTERNATIONAL CONFERENCE ON INFORMATION INTEGRATION AND WEB-BASED APPLICATIONS & SERVICES (IIWAS 2014), 2014, : 64 - 70
  • [10] A Formal Design of a Tool for Static Analysis of Upper Bounds on Object Calls in Java']Java
    Siek, Konrad
    Wojciechowski, Pawel T.
    [J]. FORMAL METHODS FOR INDUSTRIAL CRITICAL SYSTEMS (FMICS 2012), 2012, 7437 : 192 - 206