Analyzing Software Patterns Network obtained from Portland Pattern Repository, accepted at PLoP2014 (CORE Rank B).

Hironori Washizaki, Suthinan Thanintranon, Masashi Kadoya, Yoshiaki Fukazawa, Takeshi Kawamura, Joseph W. Yoder, “Analyzing Software Patterns Network obtained from Portland Pattern Repository,” 21st Conference on Pattern Languages of Programs (PLoP 2014), Allerton Park in Monticello, IL, September 14-17, 2014. (to appear) (PLoP2014-Pattern-Network-Analysis-2-revised5.pdf)

Software pattern is a general reusable solution to a commonly occurring problem within a given context while software development and management. Patterns usually form a network having relationships among them to support users understand and utilize patterns efficiently and effectively. However little is known about the nature of such pattern networks, such as the centrality of each pattern and its meaning. To clarify such characteristics of software patterns, we mine a network consisting 285 patterns from an existing world-largest online pattern repository called Portland Pattern Repository (PPR). By applying network analysis techniques to the mined network and careful review of the result, we revealed several interesting characteristics of the pattern network and patterns in PPR, such as that the degree centrality could be useful to support developers easily understand whether patterns under consideration are core patterns or peripheral ones in the entire pattern network. The betweeness centrality seems to be useful to support users identify patterns playing a role of hub and grasp relationships among different pattern groups. Moreover we believe these findings could contribute to further researches on pattern networks.