Automated framework for classification and selection of software design patterns.
Abstract
Coupling between objects) presents their own classification scheme to group the design pattern with respect to certain aspects. Moreover, there are certain online pattern libraries such as L. Rising - Patterns Almanac 20001 and euroPLoP,2 which are used to catalog the patterns without using well-defined classification, which might cause of inconsistency and overlapping issues on the pattern catalog. The second issue is the selection of right patterns in the existence of spoiled patterns [14], challengeable design patterns [15], closeness between catalogs on online repositories, the number of existing and emerging pattern, heterogeneity in the pattern description [11], and interdisciplinary design patterns [16]. A novice designer is required knowledge to understand the closeness between patterns [10,13] and to select the appropriate design pattern(s) for given design problem at hand. The promising results of automated systems for the identification of right design patterns depict their applicability during the designing phase. In this regard, existing efforts are grouped into three categories, namely UMLBased [17-20], Ontology-Based [21-23] and Text categorization based approach [24-27]. Formal specification of new patterns in existing catalog, patterns organization with respect to expert opinions, and large sample size for classifier's training are the key issues reported in terms of complex and interdisciplinary design pattern collections [17-26]. The applicability of Text categorization approach in numerous domains such as web page classification [28], author identification [29], spam e-mail filtering [30], sentiment analysis [31], and the design pattern selection [24-26] encourage us for its use to discuss these issues. Consequently, we propose a framework using Text categorization approach [24-26] and unsupervised learners to achieve three objectives (1) to organize the patterns into apposite numeral of pattern classes (i.e. Categories), (2) to select the appropriate design pattern class for a design problem, and (3) to suggest and select the appropriate design pattern(s) for a given design problem. The layout of the proposed framework is shown in Fig. 1. Th