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).
Similar content being viewed by others
References
Baraki H et al (2015) Interdisciplinary design patterns for socially aware computing. In: Proceeding of 37th international conference on software engineering (ICSE)
Bass L, Clements P, Kazman R (2012) Software architecture in practice, 3rd edn. Addison-Wesley Professional, Boston
Birukou A (2010) A survey of existing approaches for pattern search and selection. In: Proceeding of PLoP
Blomqvist E (2008) Pattern ranking for semiautomatic ontology construction. In: Proceedings of SAC
Booch G (2006) Handbook of software architecture, 2004. IBM Corporation. http://handbookofsoftwarearchitecture.com/
Bouhours C, Leblance H, Percebois C (2015) Spoiled patterns: how to extend the GoF. Softw Qual J 23:661–694
Buschmann F, Henney K, Schmidt DC (2007a) Pattern-oriented software architecture, vol 4. A pattern language for distributed computing. Wiley, New York
Buschmann F, Henney K, Schmidt DC (2007b) Pattern-oriented software architecture, vol 5. On patterns and pattern languages. Wiley, New York
Douglass BP (2002) Real-time design patterns: robust scalable architecture for real-time systems. Addison-Wesley, Boston
Duyne V et al (2003) The design of sites: patterns, principles and processes for crafting a customer-centered web experience. Addison Wesley, Boston
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Boston
Hasheminejad SMH, Jalili S (2012) Design patterns selection: an automatic two-phase method. J Syst Softw 85:408–424
Hasso S, Carlson CR (2005) A theoretically-based process for organizing design patterns. In: Proceedings of 12th pattern language of patterns
Henninger S, Correa V (2007) Software pattern communities: current practices and challenges. In: Proceedings of the 14th conference on pattern languages of programs
Hotho A, Nurnberger A, Paab G (2005) A brief survey of text mining. J Comput Linguist Lang Technol 20:19–62
Hsueh NL, Kuo J-Y, Lin C-C (2007) Object-oriented design: a goal-driven and pattern-based approach. J Softw Syst Model 8(1):1–18
Huang A (2008) Similarity measures for text document clustering. In: Proceedings of NZCSRSC
Hussain S et al (2016) A methodology to automate the selection of design patterns. In: Proceeding of 40th annual computer software and applications conference (COMPSAC)
Hussain S, Keung J, Khan AA (2017a) Software design patterns classification and selection using text categorization approach. Appl Soft Comput 58:225–244
Hussain S, Keung J, Khan AA (2017) A framework for ranking of software design patterns. In: Proceedings of 11th international conference on complex, intelligent, and software intensive systems, Jul 10–12, 2017
Issaoui I, Bouassida N, Abdallah HB (2015) A new approach for interactive design pattern recommendation. Lect Notes Softw Eng 3(3):173
Khoury PE, Mokhtari A, Coquery E, Hacid MS (2008) An ontological interface for software developers to select security patterns. In: Proceedings of 19th international conference on database and expert systems application, (DEXA’08), pp 297–301
Kim DK, Khawand CE (2007) An approach to precisely specifying the problem domain of design patterns. J Vis Lang Comput 18:560–591
Kim DK, Shen W (2008) Evaluating pattern conformance of UML models: a divide and conquer approach and case studies. Softw Qual J 16(3):329–359
Kircher M, Jain O (2004) Pattern-oriented software architecture, vol 3. Patterns for resource management. Wiley, New York
Li H (2011) A short introduction to ‘learning to rank’. IEICE Trans Inf Syst 94(10):1854–1862
Medhat W, Hassan A, Korashy H (2014) Sentiment analysis algorithms and applications: a survey. Ain Shams Eng J 5:1093–1113
Metzler D, Croft WB (2007) Linear feature-based models for information retrieval. Inf Retr 10(3):257–274
Palma F, Farzin H, Gueheneuc Y-G (2012) Recommendation system for design patterns in software development: an DRP Ovrview. In: Proceeding of RSSE
Schmidt DC, Stal M, Rohnert H, Buschmann F (2000) Pattern-oriented software architecture, vol 2. Patterns for concurrent and networked objects. Wiley, New York
Schumacher M, Fernandez E, Hybertson D, Buschmann F (2006) Security patterns: integrating security and systems engineering. Wiley, New York
Shalloway A, Trott R (2001) Design pattern explained: a new perspective on object oriented design. Addison Wesley, Boston
Silberschatz A, Galvin PB, Gagne G (2002) Operating System Concepts, 6th edn. Wiley, USA
Uysal AK (2016) An improved global feature selection scheme for text classification. Expert Syst Appl 43:82–92
van Welie M (2006) Patterns in interaction design. http://www.welie.com/. Updated: 27 June 2006
Velasco-Elizondo P, Marin-Pina R, Vazquez-Reyes S, Mora-Soto A, Mejia J (2016) Knowledge representation and information extraction for analyzing architectural patterns. Sci Comput Program 121:176–189
Wood WG (2007) A practical example of applying attribute-driven design (ADD), version 2.0, technical report, SE Institute
Wu Q, Burges CJC, Svore K, Gao J (2007) Adapting boosting for information retrieval measures. J Inf Retr 13(3):254–270
Xu J, Li H (2007) AdaRank: a boosting algorithm for information retrieval. In: Proceedings of SIGIR, pp 391–398
Zhang C, Wu X, Niu Z, Ding W (2014) Authorship identification from unstructured texts. Knowl Based Syst 66:99–111
Author information
Authors and Affiliations
Corresponding authors
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Ethical approval
This article does not contain any studies with human participants or animals performed by any of the authors.
Informed consent
Since in the article there is no human involvement for data gathering, consequently informed consent is not required.
Additional information
Communicated by V. Loia.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Hussain, S., Keung, J., Sohail, M.K. et al. A methodology to rank the design patterns on the base of text relevancy. Soft Comput 23, 13433–13448 (2019). https://doi.org/10.1007/s00500-019-03882-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00500-019-03882-y