Design patterns document expert design experience in software system development. They have been applied in many existing software systems. However, pattern information is generally lost in the source code. Discovering design patterns from source code may help understand system designs and further change the systems. In this paper, we present a novel approach to discovering design patterns by defining the structural characteristics of each design pattern in terms of weight and matrix. Our discovery process includes several analysis phases. Our approach is based on the XMI standard so that it is compatible with other techniques following such standard. We also develop a toolkit to support our approach. An industrial size case study is conducted to evaluate our approach and tool. KEYWORDS Design Pattern, Reverse Engineering, Matrix, XMI, UML, Design Pattern Discovery
Jing Dong, Dushyant S. Lad, Yajing Zhao