Design Pattern Detection by Using Meta Patterns

Shinpei HAYASHI  Junya KATADA  Ryota SAKAMOTO  Takashi KOBAYASHI  Motoshi SAEKI  

IEICE TRANSACTIONS on Information and Systems   Vol.E91-D   No.4   pp.933-944
Publication Date: 2008/04/01
Online ISSN: 1745-1361
DOI: 10.1093/ietisy/e91-d.4.933
Print ISSN: 0916-8532
Type of Manuscript: Special Section PAPER (Special Section on Knowledge-Based Software Engineering)
Category: Software Engineering
design patterns,  program understanding,  meta patterns,  dynamic analysis,  Prolog,  

Full Text: PDF>>
Buy this Article

One of the approaches to improve program understanding is to extract what kinds of design pattern are used in existing object-oriented software. This paper proposes a technique for efficiently and accurately detecting occurrences of design patterns included in source codes. We use both static and dynamic analyses to achieve the detection with high accuracy. Moreover, to reduce computation and maintenance costs, detection conditions are hierarchically specified based on Pree's meta patterns as common structures of design patterns. The usage of Prolog to represent the detection conditions enables us to easily add and modify them. Finally, we have implemented an automated tool as an Eclipse plug-in and conducted experiments with Java programs. The experimental results show the effectiveness of our approach.