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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley Professional, Upper Saddle River (2012)
Wood, W.G.: A practical example of applying attribute-driven design (ADD), Version 2.0, Technical report, Software Engineering Institute (2007)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)
Bouhours, C., Leblance, H., Percebois, C.: Spoiled patterns: how to extend the GoF. Softw. Qual. J. 23, 661–694 (2015)
Booch, G.: Handbook of Software Architecture (2006). http://handbookofsoftwarearchitecture.com/
Baraki, H., Kurt, G., Voigtmann, C., Hoffman, A., Kniewel, R., Macek, B-E., Zirfas, J.: Interdisciplinary design patterns for socially aware computing. In: Proceeding of 37th International Conference on Software Engineering (ICSE) (2015)
Kim, D.K., Khawand, C.E.: An approach to precisely specifying the problem domain of design patterns. J. Vis. Lang. Comput. 18, 560–591 (2007)
Hsueh, N.L., Lin, C.-C., Kuo, J.-Y.: Object-oriented design: a goal-driven and pattern-based approach. J. Softw. Syst. Model. 8(1), 1–18 (2007)
Kim, D.K., Shen, W.: Evaluating pattern conformance of UML models: a divide and conquer approach and case studies. Softw. Qual. J. 16(3), 329–359 (2008)
Hasso, S., Carlson, C.R.: A theoretically-based process for organizing design patterns. In: Proceedings of 12th Pattern Language of Patterns (2005)
Hotho, A., Nurnberger, A., Paab, G.: A brief survey of text mining. J. Comput. Linguist. Lang. Technol. 20, 19–62 (2005)
Khoury, P.E., Mokhtari, A., Coquery, E., Hacid, M.S.: An ontological interface for software developers to select security patterns. In: Proceedings of 19th International Conference on Database and Expert Systems Application, (DEXA 2008), pp. 297–301 (2008)
Hasheminejad, S.M.H., Jalili, S.: Design patterns selection: an automatic two-phase method. J. Syst. Softw. 85, 408–424 (2012)
Hussain, S., Khan, A.A.K., Ebo, K.B.: A methodology to automate the selection of design patterns. In: Proceeding of 40th Annual Computer Software and Applications Conference (COMPSAC) (2016)
Hussain, S., Khan, A.A.K.: Software design patterns classification and selection using text categorization approach. Appl. Soft Comput. (2017). doi:10.1016/j.asoc.2017.04.043
Uysal, A.K.: An improved global feature selection scheme for text classification. Expert Syst. Appl. 43, 82–92 (2016)
Li, H.: A short introduction to ‘Learning to Rank’. IEICE Trans. Inf. Syst. 94(10), 1854–1862 (2011)
Wu, Q., Burges, C.J.C., Svore, K.M., Gao, J.: Adapting boosting for information retrieval measures. ‘Learning to Rank’ for Information Retrieval, Microsoft Research (2009)
Porter, M.F.: An algorithm for Suffix Stripping. J. Prog. Electron. Libr. Inf. Syst. 40, 211–218 (2006)
Huang, A.: Similarity measures for text document clustering. In: Proceedings of NZCSRSC (2008)
Douglass, B.P.: Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Addison-Wesley/Longman Publishing Co. Inc., Boston (2002)
Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 6th edn. Addison-Wesley, Reading (2002)
Shalloway, A., Trott, R.: Design Pattern Explained: A new Perspective on Object Oriented Design. Addison Wesley, Reading (2001)
Acknowledgments
This research is supported by the City University of Hong Kong research funds (Project No. 7004683, 7004474 and 7200354).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Hussain, S., Keung, J., Khan, A.A. (2018). A Framework for Ranking of Software Design Patterns. In: Barolli, L., Terzo, O. (eds) Complex, Intelligent, and Software Intensive Systems. CISIS 2017. Advances in Intelligent Systems and Computing, vol 611. Springer, Cham. https://doi.org/10.1007/978-3-319-61566-0_20
Download citation
DOI: https://doi.org/10.1007/978-3-319-61566-0_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-61565-3
Online ISBN: 978-3-319-61566-0
eBook Packages: EngineeringEngineering (R0)