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 条
  • [1] Design pattern implementation in Java']Java and AspectJ
    Hannemann, J
    Kiczales, G
    ACM SIGPLAN NOTICES, 2002, 37 (11) : 161 - 173
  • [2] Design Pattern Detection in Java']Java Systems: A Dynamic Analysis Based Approach
    Arcelli, Francesca
    Perin, Fabrizio
    Raibulet, Claudia
    Ravani, Stefano
    EVALUATION OF NOVEL APPROACHES TO SOFTWARE ENGINEERING, 2010, 69 : 163 - +
  • [3] Design and implementation of a JAVA']JAVA-based synchronized multimedia integration language player
    Shin, D
    Shin, D
    Noh, Y
    INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, VOLS I-V, PROCEEDINGS, 1999, : 182 - 186
  • [4] XML, reflective pattern matching, and Java']Java
    Dwelly, A
    DR DOBBS JOURNAL, 2000, 25 (06): : 46 - +
  • [5] Design and Implementation of Delta Modulation Based on Java']Java
    Zhang Shuiying
    Du Jingjing
    Yan Guohong
    Yang Xiangkun
    PROCEEDINGS OF 2012 7TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION, VOLS I-VI, 2012, : 340 - 344
  • [6] Browser Design and Analysis based on Java']Java Language
    Yi, Mian
    Liu, Bin
    Zhang, Yan
    PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON ELECTRONIC, MECHANICAL, INFORMATION AND MANAGEMENT SOCIETY (EMIM), 2016, 40 : 683 - 687
  • [7] Java']JavaScript Language Design and Implementation in Tandem
    Ryu, Sukyoung
    Park, Jihyeok
    COMMUNICATIONS OF THE ACM, 2024, 67 (05) : 86 - 95
  • [8] Considerations in HPJava']Java language design and implementation
    Zhang, GS
    Carpenter, B
    Fox, G
    Li, XY
    Wen, YH
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 1999, 1656 : 18 - 33
  • [9] A Nano-Pattern Language for Java']Java
    Gil, Yossi
    Marcovitch, Ori
    Orru, Matteo
    JOURNAL OF COMPUTER LANGUAGES, 2019, 54
  • [10] A Novel Implementation of Observer Pattern by Aspect Based on Java']Java Annotation
    Liu Jicheng
    Yin Hui
    Wang Yabo
    PROCEEDINGS 2010 3RD IEEE INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND INFORMATION TECHNOLOGY, (ICCSIT 2010), VOL 1, 2010, : 284 - 288