A preview of this full-text is provided by Springer Nature.
Content available from Soft Computing
This content is subject to copyright. Terms and conditions apply.
METHODOLOGIES AND APPLICATION
A methodology to rank the design patterns on the base of text
relevancy
Shahid Hussain
1
•Jacky Keung
2
•Mohammad Khalid Sohail
1
•Arif Ali Khan
3
•Manzoor Ilahi
1
•
Ghufran Ahmad
1
•Muhammad Rafiq Mufti
4
•Muhammad Asim Noor
1
Published online: 18 March 2019
ÓSpringer-Verlag GmbH Germany, part of Springer Nature 2019
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 prob-
lems, 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
1 Introduction
In software development life cycle, software design is consid-
ered 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 coordination tools among the activities of
the software development life cycle. An architectural style
describes the components and their relationship and provides a
bridge between satisfactions of system’s critical requirements
to implementation (Bass et al. 2012). 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 architec-
tural style and chooses the desired quality attributes included in
the software system. Subsequently, software developers use the
description of design requirements related to selected archi-
tectural component and employed software design patterns
(Wood 2007). Over many years, based on their experiences,
software developers have encapsulated and suggested the
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
123
Soft Computing (2019) 23:13433–13448
https://doi.org/10.1007/s00500-019-03882-y(0123456789().,-volV)(0123456789().,-volV)
Content courtesy of Springer Nature, terms of use apply. Rights reserved.