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 条
  • [21] OO design and implementation: Java']Java and Java']Java analysis studio
    Johnson, AS
    2000 CERN SCHOOL OF COMPUTING, 2000, 2000 (13): : 99 - 105
  • [22] Design and implementation of bytecode-based Java']Java slicing system
    Umemori, F
    Konda, K
    Yokomori, R
    Inoue, K
    THIRD IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION - PROCEEDINGS, 2003, : 108 - 117
  • [23] Design and Implementation of a Remote Screen Monitoring System Based on Java']Java
    Hou, Jinbiao
    2009 WRI WORLD CONGRESS ON SOFTWARE ENGINEERING, VOL 2, PROCEEDINGS, 2009, : 292 - 296
  • [24] Event-based design of concurrent programs with Java']Java implementation
    Rischel, H
    Sun, HY
    COMMUNICATING PROCESS ARCHITECTURES 2001, 2001, 59 : 117 - 128
  • [25] The Java']Java Implementation of Apriori algorithm Based on Agile Design Principles
    Li, Yong
    PROCEEDINGS OF 2010 3RD IEEE INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND INFORMATION TECHNOLOGY (ICCSIT 2010), VOL 7, 2010, : 329 - 331
  • [26] Design and Implementation of Supermarket Personnel Management System Based On Java']Java
    Zheng, Shiyong
    Qin Deze
    Qiang Zhu
    Li, Biqing
    PROCEEDINGS OF THE 2015 INTERNATIONAL CONFERENCE ON EDUCATION, MANAGEMENT AND COMPUTING TECHNOLOGY, 2015, 30 : 1724 - 1727
  • [27] Design and Implementation of Student Information Management System Based On Java']Java
    Zhou Xiaofang
    PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND SYSTEM (ICISS 2018), 2018, : 90 - 92
  • [28] Evaluation of design pattern alternatives in Java']Java
    Bijlsma, Lex A.
    Kok, Arjan J. F.
    Passier, Harrie J. M.
    Pootjes, Harold J.
    Stuurman, Sylvia
    SOFTWARE-PRACTICE & EXPERIENCE, 2022, 52 (05): : 1305 - 1315
  • [29] Java']Java Extensions for Design Pattern Instantiation
    Santos, Andre L.
    Coelho, Duarte
    SOFTWARE REUSE: BRIDGING WITH SOCIAL-AWARENESS, 2016, 9679 : 284 - 299
  • [30] JacORB: Implementation and design of a Java']Java ORB
    Brose, G
    DISTRIBUTED APPLICATIONS AND INTEROPERABLE SYSTEMS, 1997, : 143 - 154