A Method to Investigate Software Evolutions Using Design Pattern Detection Tool
Kyohei Fushida, Shinji Kawaguchi, Hajimu Iida · 2007
In software designing, design patterns are expected to help for implementing with clear design intention with higher quality. However, selecting appropriate patterns is not simple task, and design patterns are sometimes deployed exploratory without properly defined process. In order to clarify design patterns ’ contribution to the quality and productivity, it is very important to investigate design pattern usage among the series of revisions over the time. In this paper, we propose a method to observe design pattern usage in the series of source code modifications by using a design pattern detection tool and source code management system. This method enables intuitive analysis of design pattern history that should have strong relations to the software evolutions, without any preserved design documents. We also present an analysis to revisions history of an open source software JUnit, as a preliminary experimentation of our method. In this analysis, number of design patterns in the source code are observed, and we found some patterns of significant increase/decrease of these numbers are useful to determine the type of each modification such as feature enhancement or refactoring. 1.