Conference Paper

A Framework for Ranking of Software Design Patterns.

Shahid Hussain, Jacky W. Keung, Arif Ali Khan

Abstract

. Several software design patterns have been familiarized either in canonical or as variant solutions in order to solve a problem. Novice designers mostly adopt patterns without considering their ground reality and relevancy with design problems, which may cause to increase the development and maintenance efforts. In order to realize the ground reality and to automate the selection process, the existing automated systems for the selection of design patterns either need formal specification or precise learning through training the numerous classifiers. In order to address this issue, we propose an approach on the base of a supervised learning technique named ‘Learning to Rank', to rank the design patterns with respect to text similarity with the description of the given design problems. Subsequently, we also propose an evaluation model in order to assess the effectiveness of the proposed approach. We evaluate the effectiveness of the proposed approach in the context of several design pattern collections and relevant design problems. The promising experimental results indicate the applicability of the proposed approach. 1 Introduction In software development life cycle, software design is considered as a most challenging task as compared to other activities. An architecture-based design method is one of main category which can be realized during the evolution process. In this category, different software architectural styles (presented through design components and their relationship) are applied and can be considered as coordination tools among the activities of the software development life cycle. For example, it provides a bridge between satisfactions of system's critical requirements to implementation [1]. The most common architecture-based design method is Attribute Driven Design (ADD) which incorporates the different architectural strategies and patterns to fulfill the quality attributes. In the working procedure of ADD, a software developer selects an architectural style and chooses the desired quality attributes included in the software system. Subsequently, software developers use the description of design requirements related to selected architectural comp

Keywords