Copyright © 2008 The Institute of Electronics, Information and Communication Engineers
Special Section on Knowledge-Based Software Engineering -- Papers -- Software Engineering |
Design Pattern Detection by Using Meta Patterns
1 The authors are with the Department of Computer Science, Graduate School of Information Science and Engineering, Tokyo Institute of Technology, Tokyo, 152–8552 Japan. E-mail: hayashi{at}se.cs.titech.ac.jp, 2 The author is with the Center for Embedded Computing Systems, Graduate School of Information Science, Nagoya University, Nagoya-shi, 464–8601 Japan., 3 Presently, with NTT COMWARE CORPORATION.
| Abstract |
|---|
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.
Key Words: design patterns, program understanding, meta patterns, dynamic analysis, Prolog
Manuscript received July 2, 2007. Manuscript revised October 17, 2007.