A methodology to rank the design patterns on the base of text relevancy.
Abstract
Several software design patterns have cataloged either with canonical or as variants to solve a recurring design problem. However, novice designers mostly adopt patterns without considering their ground reality and relevance to design problems, which causes to increase the development and maintenance efforts. The existing automated systems to select the design patterns need either high computing effort and time for the formal specification or precise learning through the training of several classifiers with large sample size to select the right design patterns realized on the base of their ground reality. In order to discuss this issue, we propose a method on the base of a supervised learning technique named ‘Learning to Rank', to rank the design patterns via the text relevancy with the description of the given design problems. Subsequently, we also propose an evaluation model to assess the effectiveness of the proposed method. We evaluate the efficacy of the proposed method in the context of several design pattern collections and relevant design problems. The promising experimental results indicate the applicability of the proposed method as a recommendation system to select the right design pattern(s). Keywords Software design patterns Text mining Learning to rank Performance Classification Communicated by V. Loia. & Shahid Hussain shussain@comsats.edu.pk & Arif Ali Khan aakhan@comsats.edu.pk Jacky Keung jacky.keung2-c@my.cityu.edu.hk Mohammad Khalid Sohail Khaled_sohail7@comsats.edu.pk Manzoor Ilahi mitamimy@comsats.edu.pk Ghufran Ahmad ghufranahmad23@comsats.edu.pk Muhammad Rafiq Mufti Rafiq_muftee16@ciitvehari.edu.pk Muhammad Asim Noor asimnoor11@comsats.edu.pk 1 CU, Islamabad, Pakistan 2 City University of Hong Kong, Hong Kong, China 3 Nanjing University, Nanjing, China 4 CU, Vehari, Pakistan 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 the main groups which can be realized during the evolution process. In this category, different software architectural styles are applied and can be considered as coo