Abstract
The influence of design decisions on quality characteristics has been studied extensively in research with various viewpoints, aims, measurements, and quality attributes, resulting in contradictory and difficult-to-compare conclusions. Until now, the results on the effect of design patterns on software quality are controversial. There are two objectives of conducting this study. The first one is to analyze the impact of design patterns on software quality. The second is investigating the approaches used for detecting design patterns. All the analysis is done with the use of a technique called systematic literature review (SLR). The SLR findings demonstrate that pattern documentation, pattern class size, and pattern dispersion degree have a significant effect on the quality of software. Similarity scoring, graph-based, and machine learning-based approaches are the existing proposed methods for detecting design patterns. The results have shown that there is a need for benchmarking design patterns detection proposed approaches.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Aichberger, J.: Mining software repositories for the effects of design patterns on software quality (2020)
Alebrahim, A., Fassbender, S., Filipczyk, M., Goedicke, M., Heisel, M.: Towards systematic selection of architectural patterns with respect to quality requirements. In: Proceedings of the 20th European Conference on Pattern Languages of Programs, EuroPLoP 2015. Association for Computing Machinery, New York (2015). https://doi.org/10.1145/2855321.2855362
Alexander, C.: A Pattern Language: Towns, Buildings, Construction. Oxford University Press, Oxford (1977)
Brown, W.H., Malveau, R.C., McCormick, H.W.S., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, 1st edn. Wiley, USA (1998)
Cardoso, B., Figueiredo, E.: Co-occurrence of design patterns and bad smells in software systems: an exploratory study. In: Anais do XI Simpósio Brasileiro de Sistemas de Informação, pp. 347–354. SBC, Porto Alegre (2015). https://doi.org/10.5753/sbsi.2015.5836
Chowdhury, M.I., Katchabaw, M.: Improving software quality through design patterns: a case study of adaptive games and auto dynamic difficulty. Game–ON 2012 (2012)
Christopoulou, A., Giakoumakis, E., Zafeiris, V.E., Soukara, V.: Automated refactoring to the strategy design pattern. Inf. Softw. Technol. 54(11), 1202–1214 (2012). https://doi.org/10.1016/j.infsof.2012.05.004
Dong, J., Yang, S., Zhang, K.: Visualizing design patterns in their applications and compositions. IEEE Trans. Software Eng. 33(7), 433–453 (2007). https://doi.org/10.1109/TSE.2007.1012
Elbaz, K., Chaoui, A.: An empirical study to improve software quality through design patterns. Int. J. Ind. Syst. Eng. 29(1), 74–94 (2018)
Estdale, J., Georgiadou, E.: Applying the ISO/IEC 25010 quality models to software product. In: Larrucea, X., Santamaria, I., O’Connor, R.V., Messnarz, R. (eds.) EuroSPI 2018. CCIS, vol. 896, pp. 492–503. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-97925-0_42
Fontana, F., Zanoni, M., Marino, A., Mäntylä, M.: Code smell detection: towards a machine learning-based approach. In: 2013 IEEE International Conference on Software Maintenance, pp. 396–399 (2013)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co. Inc., Boston (1995)
Guéhéneuc, Y.G., Antoniol, G.: Demima: a multilayered approach for design pattern identification. IEEE Trans. Software Eng. 34(5), 667–684 (2008). https://doi.org/10.1109/TSE.2008.48
Izurieta, C., Bieman, J.M.: A multiple case study of design pattern decay, grime, and rot in evolving software systems. Software Qual. J. 21(2), 289–323 (2013). https://doi.org/10.1007/s11219-012-9175-x
Jaafar, F., Guéhéneuc, Y.G., Hamel, S., Khomh, F., Zulkernine, M.: Evaluating the impact of design pattern and anti-pattern dependencies on changes and faults. Empirical Softw. Engg. 21(3), 896–931 (2016). https://doi.org/10.1007/s10664-015-9361-0
Jaafar, F., Guéhéneuc, Y.G., Hamel, S., et al.: Analysing anti-patterns static relationships with design patterns. Electronic Communications of the EASST 59 (2014)
Khaer, M.A., Hashem, M., Masud, M.R.: On use of design patterns in empirical assessment of software design quality. In: 2008 International Conference on Computer and Communication Engineering, pp. 133–137. IEEE (2008)
Khomh, F., Guéhéneuc, Y.G.: Do design patterns impact software quality positively? In: 2008 12th European Conference on Software Maintenance and Reengineering, pp. 274–278. IEEE (2008)
Kitchenham, B.A., Charters, S.: Guidelines for performing systematic literature reviews in software engineering. Technical Report EBSE-2007-001. Keele University and Durham University Joint Report (2007)
Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems, 1st edn. Springer, Heidelberg (2010). https://doi.org/10.1007/3-540-39538-5
Martin Fowler, K.B.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co. Inc, USA (1999)
McNatt, W.B., Bieman, J.M.: Coupling of design patterns: Common practices and their benefits. In: 25th Annual International Computer Software and Applications Conference, COMPSAC 2001, pp. 574–579. IEEE (2001)
Moha, N., Gueheneuc, Y.G., Duchien, L., Le Meur, A.F.: Decor: a method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010). https://doi.org/10.1109/TSE.2009.50
Muraki, T., Saeki, M.: Metrics for applying GOF design patterns in refactoring processes. In: Proceedings of the 4th International Workshop on Principles of Software Evolution, pp. 27–36. IWPSE 2001. Association for Computing Machinery, New York (2001). https://doi.org/10.1145/602461.602466
Nahar, N., Sakib, K.: Automatic recommendation of software design patterns using anti-patterns in the design phase: a case study on abstract factory. In: QuASoQ/WAWSE/CMCE@ APSEC, pp. 9–16 (2015)
Nikolaeva, D., Bozhikova, V.: One approach to improve the software quality by applying software design patterns. In: 2019 16th Conference on Electrical Machines, Drives and Power Systems (ELMA), pp. 1–6. IEEE (2019)
Ozkaya, I., Bass, L., Sangwan, R., Nord, R.: Making practical use of quality attribute information. IEEE Softw. 25(2), 25–33 (2008). https://doi.org/10.1109/MS.2008.39
Qamar, N., Malik, A.: Impact of design patterns on software complexity and size. Mehran Univ. Res. J. Eng. Technol. 39, 342–352 (2020). https://doi.org/10.22581/muet1982.2002.10
Sandhu, P.S., Singh, P.P., Verma, A.K.: Evaluating quality of software systems by design patterns detection. In: 2008 International Conference on Advanced Computer Theory and Engineering, pp. 3–7. IEEE (2008)
Vokac, M.: Defect frequency and design patterns: an empirical study of industrial code. IEEE Trans. Softw. Eng. 30(12), 904–917 (2004). https://doi.org/10.1109/TSE.2004.99
Wagey, B.C., Hendradjaya, B., Mardiyanto, M.S.: A proposal of software maintainability model using code smell measurement. In: 2015 International Conference on Data and Software Engineering (ICoDSE), pp. 25–30. IEEE (2015)
Weiss, M.: Patterns and their impact on system concerns. In: EuroPLoP (2008)
Wendorff, P.: Assessment of design patterns during software reengineering: lessons learned from a large commercial project. In: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, p. 77. CSMR 2001. IEEE Computer Society (2001)
Weyuker, E.: Evaluating software complexity measures. IEEE Trans. Softw. Eng. 14, 1357–1365 (1988). https://doi.org/10.1109/32.6178
Yang, S., Tzerpos, V.: A model for analysis and presentation of design pattern detection results. In: Proceedings of the 33rd Annual ACM Symposium on Applied Computing, pp. 1500–1509. SAC 2018. Association for Computing Machinery, New York (2018). https://doi.org/10.1145/3167132.3167292
Yasir, R.M., Asad, M., Galib, A.H., Ganguly, K.K., Siddik, M.S.: GodExpo: an automated god structure detection tool for Golang. In: Proceedings of the 3rd International Workshop on Refactoring, pp. 47–50. IWOR 2019. IEEE Press (2019). https://doi.org/10.1109/IWoR.2019.00016
Acknowledgement
This research project is carried out under the support of the Russian Science Foundation Grant N\(^{\underline{o}}\) 19-19-00623.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Shilintsev, D., Dlamini, G. (2021). A Study: Design Patterns Detection Approaches and Impact on Software Quality. In: Succi, G., Ciancarini, P., Kruglov, A. (eds) Frontiers in Software Engineering. ICFSE 2021. Communications in Computer and Information Science, vol 1523. Springer, Cham. https://doi.org/10.1007/978-3-030-93135-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-030-93135-3_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-93134-6
Online ISBN: 978-3-030-93135-3
eBook Packages: Computer ScienceComputer Science (R0)