PatternRank: A Software­Pattern Search System Based on Mutual Reference Importance

There are currently a large number of digitized pattern documents. However, there are no ordering method specialized for patterns, thus, developers have to read and evaluate many pattern documents to find appropriate patterns for developer’s facing problems. We focus to popularity of patterns in this paper, because many patterns must refer to core patterns in each domain. Our proposed method calculates an importance value of each pattern document using interpattern references and “in the same pattern catalog”relationships. Since our method is a simple expansion of Google’s PageRank method, obtained importance values indicate popularity of each pattern. Resorting search result by using the proposed method helps developers to find a popular patterns from a targeted pattern document set. We built a demo search system using the proposed method and conducted search experiments for 131 pattern documents gathered from the World Wide Web. The experiment results confirmed that popular patterns can be pulled up in the results.

[1]  Linda Rising The patterns handbooks: techniques, strategies, and applications , 1998 .

[2]  Rajeev Motwani,et al.  The PageRank Citation Ranking : Bringing Order to the Web , 1999, WWW 1999.

[3]  Paul R. Calder,et al.  A Pattern-Based Problem-Solving Process for Novice Programmers , 2003, ACE.

[4]  Linda Rising The Patterns Handbook , 1998 .

[5]  Markus Schumacher,et al.  Security Engineering with Patterns: Origins, Theoretical Models, and New Applications , 2003 .

[6]  Marek Vokác Defect frequency and design patterns: an empirical study of industrial code , 2004, IEEE Transactions on Software Engineering.

[7]  Atsuhiro Takasu,et al.  Analyzing relations among software patterns based on document similarity , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.

[8]  Shinji Kusumoto,et al.  Ranking significance of software components based on use relations , 2003, IEEE Transactions on Software Engineering.

[9]  Dirk Riehle Composite design patterns , 1997, OOPSLA '97.

[10]  Scott Henninger,et al.  Software pattern communities: current practices and challenges , 2007, PLOP '07.

[11]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[12]  Sergey Brin,et al.  The Anatomy of a Large-Scale Hypertextual Web Search Engine , 1998, Comput. Networks.

[13]  Michael Hahsler,et al.  A Quantitative Study of the Adoption of Design Patterns by Open Source Software Developers , 2005 .