Accurate Design Pattern Detection Based on Idiomatic Implementation Matching in Java']Java Language Context

被引:0
|
作者
Xiong, Renhao [1 ]
Li, Bixin [1 ]
机构
[1] Southeast Univ, Sch Comp Sci & Engn, Nanjing, Jiangsu, Peoples R China
基金
国家重点研发计划; 中国国家自然科学基金;
关键词
Design Pattern Detection; Reverse Engineering; Software Comprehension; Knowledge Representation; RECOVERY; RECOGNITION; TOOL;
D O I
10.1109/saner.2019.8668031
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Design patterns (DPs) are widely accepted as solutions to recurring problems in software design. While numerous approaches and tools have been proposed for DP detection over the years, the neglect of language-specific mechanism that underlies the implementation idioms of DPs leads to false or missing DP instances since language-specific features are not captured and similar characteristics are not distinguished. However, there is still a lack of research that emphasizes the idiomatic implementation in the context of a specific language. A vital challenge is the representation of software systems and language mechanism. In this work, we propose a practical approach for DP detection from source code, which exploits idiomatic implementation in the context of Java language. DPs are formally defined under the blueprint of the layered knowledge graph (LKG) that models both language-independent concepts of DPs and Java language mechanism. Based on static analysis and inference techniques, the approach enables flexible search strategies integrating structural, behavioral and semantic aspects of DPs for the detection. Concerning emerging patterns and pattern variants, the core methodology supports pluggable pattern templates. A prototype implementation has been evaluated on five open source software systems and compared with three other approaches. The evaluation results show that the proposed approach improves the accuracy with higher precision (85.7%) and recall (93.8%). The runtime performance also supports its practical applicability.
引用
收藏
页码:163 / 174
页数:12
相关论文
共 50 条
  • [41] Design and implementation of multithreaded serial communication based on Java']Java mobile phone
    Li Suyi
    Lin Jun
    Ling Zhengbao
    ICCSE'2006: Proceedings of the First International Conference on Computer Science & Education: ADVANCED COMPUTER TECHNOLOGY, NEW EDUCATION, 2006, : 656 - 658
  • [42] The design and implementation of parallel switch system simulation platform based on Java']Java
    Yang, Xi-Liang
    Li, Xiu-Qin
    Li, Guo-Jia
    JOURNAL OF COMPUTATIONAL METHODS IN SCIENCES AND ENGINEERING, 2016, 16 (03) : 451 - 457
  • [43] Design and Implementation of Online E-business Website Based on Java']Java
    Diao Zhijian
    PROCEEDINGS OF THE 2018 3RD INTERNATIONAL WORKSHOP ON MATERIALS ENGINEERING AND COMPUTER SCIENCES (IWMECS 2018), 2018, 78 : 552 - 555
  • [44] Design and implementation of WAP browser based on Java
    Chen, Hualiang
    Kong, Linghai
    Chen, Zengqiang
    Liu, Zhongxin
    Yuan, Zhuzhi
    Jisuanji Gongcheng, 13 (206-208):
  • [45] Design and implementation of Java']Java bindings in Open MPI
    Vega-Gisbert, Oscar
    Roman, Jose E.
    Squyres, Jeffrey M.
    PARALLEL COMPUTING, 2016, 59 : 1 - 20
  • [46] Exception handling with resumption: Design and implementation in Java']Java
    Gruler, A
    Heinlein, C
    PLC '05: Proceedings of the 2005 International Conference on Programming Languages and Compilers, 2005, : 165 - 171
  • [47] A distributed Web Crawler design and Java']Java implementation
    Ma, FY
    Zhang, L
    Ye, YM
    Yu, S
    Song, H
    WORLD WIDE WEB TECHNOLOGIES IN CHINA: RESEARCH, DEVELOPMENT, AND APPLICATIONS, 2002, : 36 - 49
  • [48] 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
  • [49] Design and implementation of a havi stack with Linux and Java']Java
    Hsu, KW
    Chen, CL
    Yu, TY
    Li, WC
    PROCEEDINGS OF THE 3RD IEEE INTERNATIONAL SYMPOSIUM ON SIGNAL PROCESSING AND INFORMATION TECHNOLOGY, 2003, : 66 - 69
  • [50] Design and implementation of a mobile database for Java']Java phones
    Lu, EJL
    Cheng, YY
    COMPUTER STANDARDS & INTERFACES, 2004, 26 (05) : 401 - 410