Skip to main content
Log in

Research Landscape of Patterns in Software Engineering: Taxonomy, State-of-the-Art, and Future Directions

  • Review Article
  • Published:
SN Computer Science Aims and scope Submit manuscript

Abstract

Software system development is a difficult, error-prone, and time-consuming task. Pattern-based development has been successfully used to produce high-quality software to address these concerns. Patterns actually document expert knowledge on how to solve recurring problems. As a result, they provide a valuable foundation for experience sharing and reuse. Pattern-based strategies have become increasingly popular in recent years. In the literature, several secondary studies dealing with this concept have been proposed. Nevertheless, they either focus on specific sub-fields (domain-specific or intention-specific) or give only quantitative analysis, with no intention of classifying and synthesizing the state-of-the-art of pattern-based approaches. The objective of this work is to provide a comprehensive survey of the literature reporting outcomes from various research communities and domains. We present a taxonomy that serves as a basis for categorizing and analyzing 134 papers from various scientific areas. The findings may serve as a guide for novice researchers in this field on the one hand, and may assist the research community in consolidating their research efforts through the description of future directions on the other.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Data availability

The datasets generated during and/or analysed during the current study are available from the corresponding author upon reasonable request.

References

  1. Boehm B, Abts C, Chulani S. Software development cost estimation approaches—a survey. Ann Softw Eng. 2000;10(1):177–205.

    Article  Google Scholar 

  2. Dybå T, Dingsøyr T. Empirical studies of agile software development: a systematic review. Inf Softw Technol. 2008;50(9–10):833–59.

    Article  Google Scholar 

  3. Ben Said M, Hadj Kacem Y, Kerboeuf M, Abid M. An MDE-based approach for self-adaptive RTES model generation. Cluster Comput. 2020;23(2):925–51.

    Article  Google Scholar 

  4. Riehle D, Züllighoven H. Understanding and using patterns in software development. Tapos. 1996;2(1):3–13.

    Google Scholar 

  5. Prikladnicki R, Damian D, Audy JLN. Patterns of evolution in the practice of distributed software development: quantitative results from a systematic review. In: 12th international conference on evaluation and assessment in software engineering (EASE), vol. 12. 2008. p. 1–10.

  6. Sena B, Garcés L, Allian AP, Nakagawa EY. Investigating the applicability of architectural patterns in big data systems. In: Proceedings of the 25th conference on pattern languages of programs. 2018. p. 1–15.

  7. Krupitzer C, Temizer T, Prantl T, Raibulet C. An overview of design patterns for self-adaptive systems in the context of the internet of things. IEEE Access. 2020;8:187384–99.

    Article  Google Scholar 

  8. Rajmohan T, Nguyen PH, Ferry N. Research landscape of patterns and architectures for IoT security: a systematic review. In: 2020 46th Euromicro conference on software engineering and advanced applications (SEAA). 2020. p. 463–70.

  9. Dong J, Zhao Y, Peng T. A review of design pattern mining techniques. Int J Softw Eng Knowl Eng. 2009;19(06):823–55.

    Article  Google Scholar 

  10. Priya RK. A survey: design pattern detection approaches with metrics. In: 2014 IEEE National Conference on Emerging Trends in New & Renewable Energy Sources And Energy Management (NCET NRES EM). 2014. p. 22–6.

  11. Al-Obeidallah MG, Petridis M, Kapetanakis S. A survey on design pattern detection approaches. Int J Softw Eng (IJSE). 2016;7(3):41–59.

    Google Scholar 

  12. Yarahmadi H, Hasheminejad SMH. Design pattern detection approaches: a systematic review of the literature. Artif Intell Rev. 2020;53(8):5789–846.

    Article  Google Scholar 

  13. Almadi SH, Hooshyar D, Ahmad RB. Bad smells of gang of four design patterns: a decade systematic literature review. Sustainability. 2021;13(18):10256.

    Article  Google Scholar 

  14. Birukou A. A survey of existing approaches for pattern search and selection. In: Proceedings of the 15th European conference on pattern languages of programs. 2010. p. 1–13.

  15. Asghar MZ, Alam KA, Javed S. Software design patterns recommendation: a systematic literature review. In: 2019 international conference on Frontiers of Information Technology (FIT). 2019. p. 167–1675.

  16. Wedyan F, Abufakher S. Impact of design patterns on software quality: a systematic literature review. IET Softw. 2020;14(1):1–17.

    Article  Google Scholar 

  17. Mayvan BB, Rasoolzadegan A, Yazdi ZG. The state of the art on design patterns: a systematic mapping of the literature. J Syst Softw. 2017;125:93–118.

    Article  Google Scholar 

  18. Medina-Domínguez F, Sanchez-Segura MI, de Amescua A, Mora-Soto A. Patterns in the field of software engineering. 2nd ed. Encyclopedia of Information Science and Technology; 2009. p. 3032–40.

  19. Kitchenham B. Procedures for performing systematic reviews. Keele UK Keele Univ. 2004;2004(33):1–26.

    Google Scholar 

  20. Clarke V, Braun V, Hayfield N. Thematic analysis. Qual Psychol Pract Guide Res Methods. 2015;3:222–48.

    Google Scholar 

  21. Gamma E, Helm R, Johnson R, Johnson RE, Vlissides J, et al. Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH; 1995.

    Google Scholar 

  22. Fontana FA, Maggioni S, Raibulet C. Design patterns: a survey on their micro-structures. J Softw Evolut Process. 2013;25(1):27–52.

    Article  Google Scholar 

  23. Naghdipour A, Hasheminejad SMH, Barmaki RL. Software design pattern selection approaches: a systematic literature review. Softw Pract Exp. 2023;53(4):1091–122.

    Article  Google Scholar 

  24. Banijamali A, Pakanen OP, Kuvaja P, Oivo M. Software architectures of the convergence of cloud computing and the internet of things: a systematic literature review. Inf Softw Technol. 2020;122: 106271.

    Article  Google Scholar 

  25. Zhang H, Babar MA, Tell P. Identifying relevant studies in software engineering. Inf Softw Technol. 2011;53(6):625–37.

    Article  Google Scholar 

  26. Bramer WM, Rethlefsen ML, Kleijnen J, Franco OH. Optimal database combinations for literature searches in systematic reviews: a prospective exploratory study. Syst Rev. 2017;6:1–12.

    Article  Google Scholar 

  27. Mourão E, Pimentel JF, Murta L, Kalinowski M, Mendes E, Wohlin C. On the performance of hybrid search strategies for systematic literature reviews in software engineering. Inf Softw Technol. 2020;123: 106294.

    Article  Google Scholar 

  28. Gamma E. Object-oriented software development based on et++. Design Patterns, Class Library, Tools, PhD Thesis. 1991.

  29. Wieringa R, Maiden N, Mead N, Rolland C. Requirements engineering paper classification and evaluation criteria: a proposal and a discussion. Requir Eng. 2006;11:102–7.

    Article  Google Scholar 

  30. Barbacci M, Klein MH, Longstaff TA, Weinstock CB. Quality attributes. 1995.

  31. Abeywickrama DB, Zambonelli F, Hoch N. Towards simulating architectural patterns for self-aware and self-adaptive systems. In: 2012 IEEE sixth international conference on self-adaptive and self-organizing systems workshops. 2012. p. 133–8.

  32. Alebrahim A, Heisel M. Problem-oriented security patterns for requirements engineering. In: Proceedings of the 19th European Conference on Pattern Languages of Programs—EuroPLoP ’14. 2014. p. 1–17.

  33. Bellini P, Nesi P, Rogai D. Expressing and organizing real-time specification patterns via temporal logics. J Syst Softw. 2009;82(2):183–96.

    Article  Google Scholar 

  34. Bouaziz R, Coulette B. Applying security patterns for component based applications using UML profile. In: 2012 IEEE 15th international conference on computational science and engineering. 2012. p. 186–93.

  35. Bouaziz R, Kallel S, Coulette B. An engineering process for security patterns application in component based models. In: 2013 workshops on enabling technologies: infrastructure for collaborative enterprises. 2013. p. 231–6.

  36. Durand G, Bar-Sinai M, Crosas M. Securing dataverse with an adapted command design pattern. In: 2017 IEEE Cybersecurity Development (SecDev). 2017. p. 54–60.

  37. Dwyer MB, Avrunin GS, Corbett JC. Patterns in property specifications for finite-state verification. In: Proceedings of the 21st international conference on Software engineering. 1999. p. 411–20.

  38. Edge C, Mitropoulos F. Improving security design patterns with aspect-oriented strategies. In: Proceedings of the 50th Annual Southeast Regional Conference on-ACM-SE ’12. 2012. p. 24.

  39. El-Ramly M, Stroulia E, Sorenson P. From run-time behavior to usage scenarios: an interaction-pattern mining approach. In: Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining. 2002. p. 315–24.

  40. Engel J. A model- and pattern-based approach for development of user interfaces of interactive systems. In: Proceedings of the 2nd ACM SIGCHI Symposium on Engineering Interactive Computing Systems—EICS ’10. 2010. p. 337.

  41. Favre L, Pereira C. Improving MDA-based process quality through refactoring patterns. In: Proceedings of the 1st international workshop on Software Patterns and Quality (SPAQu’07). Nagoya, Japón; 2007. p. 17–22.

  42. Fayad ME, Flood CA. Unified Software Engineering Reuse (USER) using stable analysis, design and architectural patterns. In: 2016 Future Technologies Conference (FTC). 2016. p. 706–11.

  43. Fernandez EB, Mujica S, Valenzuela F. Two security patterns: least privilege and security logger and auditor. In: Proceedings of the 2nd Asian Conference on Pattern Languages of Programs—AsianPLoP ’11. 2011. p. 1–6.

  44. Fernandez EB, Sorgente T, Larrondo-Petrie MM. Even more patterns for secure operating systems. In: Proceedings of the 2006 Conference on Pattern Languages of Programs—PLoP ’06. 2006. p. 1.

  45. Frederick G, Bond P, Tilley S. VULCAN: a tool for automatically generating code from design patterns. In: 2008 2nd annual IEEE systems conference. 2008. p. 1–4.

  46. Bree DC, Cinnéide MÓ. Removing decorator to improve energy efficiency. In: 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER). 2022. p. 902–12.

  47. Hasso S, Carlson C. Hasso et Carlson—2013—design patterns as first-class connectors.pdf. In: Proceedings of the 2nd annual conference on Research in Information Technology. 2013. p. 1–7.

  48. Kajsa P, Majtás L. Design patterns instantiation based on semantics and model transformations. In: SOFSEM 2010: theory and practice of computer science, vol. 5901. 2010. p. 540–51.

  49. Kamalrudin M, Hosking J, Grundy J. Improving requirements quality using essential use case interaction patterns. In: Proceedings of the 33rd international conference on software engineering. 2011. p. 531–40.

  50. Khaari M, Ramsin R. Process patterns for aspect-oriented software development. In: 2010 17th IEEE international conference and workshops on engineering of computer based systems. 2010. p. 241–50.

  51. Laurillau Y. Iowastate: implementation models and design patterns for identity-aware user interfaces based on state machines. In: Proceedings of the 5th ACM SIGCHI symposium on Engineering interactive computing systems. 2013. p. 59–68.

  52. Lear J, Scarle S, McClatchey R. Asset pipeline patterns: patterns in interactive real-time visualization workflow. In: Proceedings of the 24th European Conference on Pattern Languages of Programs—EuroPLop ’19. 2019. p. 1–11.

  53. Ligaarden OS, Lund MS, Refsdal A, Seehusen F, Stolen K. An architectural pattern for enterprise level monitoring tools. In: 2011 international workshop on the maintenance and evolution of service-oriented and cloud-based systems. 2011. p. 1–10.

  54. Mannaert H, Verelst J, Ven K. Exploring concepts for deterministic software engineering: service interfaces, pattern expansion, and stability. In: International Conference on Software Engineering Advances (ICSEA 2007). 2007. p. 6.

  55. Motii A, Hamid B, Lanusse A, Bruel JM. Guiding the selection of security patterns based on security requirements and pattern classification. In: Proceedings of the 20th European Conference on Pattern Languages of Programs. 2015. p. 1–17.

  56. Overton J, Hall JG, Rapanotti L. A problem-oriented theory of pattern-oriented analysis and design. In: 2009 computation world: future computing, service computation, cognitive, adaptive, content, patterns. 2009. p. 208–13.

  57. Perez Sansalvador JC, Rodriguez Gomez G, Pomares Hernandez SE. Pattern object-oriented architecture for multirate integration methods. In: CONIELECOMP 2011, 21st International Conference on Electrical Communications and Computers. 2011. p. 158–63.

  58. Radermacher A, Hamid B, Fredj M, Profizi JL. Process and tool support for design patterns with safety requirements. In: Proceedings of the 18th European Conference on Pattern Languages of Program—EuroPLoP ’13. 2015. p. 1–16.

  59. Rauter T, Höller A, Iber J, Kreiner C. Patterns for software integrity protection. In: Proceedings of the 20th European Conference on Pattern Languages of Programs. 2015. p. 1–10.

  60. Rauter T, Höller A, Iber J, Kreiner C. Static and dynamic integrity properties patterns. In: Proceedings of the 21st European Conference on Pattern Languages of Programs. 2016. p. 1–11.

  61. Seidl C, Schuster S, Schaefer I. Generative software product line development using variability-aware design patterns. In: Proceedings of the 2015 ACM SIGPLAN international conference on generative programming: concepts and experiences. 2015. p. 151–60.

  62. Senthil R, Kushwaha DS, Misra AK. An improved component model for component based software engineering. ACM SIGSOFT Softw Eng Notes. 2007;32(4):9.

    Article  Google Scholar 

  63. Sievi-Korte O, Koskimies K, Mäkinen E. Techniques for genetic software architecture design. Comput J. 2015;58(11):3141–70.

    Article  Google Scholar 

  64. Singh SK, Fayad ME. The AnyCorrectiveAction stable design pattern. In: Proceedings of the 17th Conference on Pattern Languages of Programs—PLOP ’10. 2010. p. 1–20.

  65. Solms F. Experiences with using the systematic method for architecture recovery (SyMAR). In: Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference on-SAICSIT ’13. 2013. p. 170.

  66. Sun C, Zhang H, Lou JG, Zhang H, Wang Q, Zhang D, Khoo SC, Sun et al. 2014—Querying sequential software engineering data.pdf. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2014. p. 1–11.

  67. Syeed MMM, Lokhman A, Mikkonen T, Hammouda I. Pluggable systems as architectural pattern: an ecosystemability perspective. In: Proceedings of the 2015 European Conference on Software Architecture Workshops. 2015. p. 1–6.

  68. Vivas JL, Montenegro JA, López J. Towards a business process-driven framework for security engineering with the UML. Inf Secur. 2003;2851:381–95.

    Google Scholar 

  69. Xu L, Ziv H, Alspaugh TA, Richardson DJ. An architectural pattern for non-functional dependability requirements. J Syst Softw. 2006;79(10):1370–8.

    Article  Google Scholar 

  70. Yoder J, Barcalow J. Architectural patterns for enabling application security. In: Proceedings of the 4th Conference on Patterns Language of Programming (PLoP’97), vol. 2. 1997. p. 30.

  71. Zdun U, Avgeriou P, Hentrich C, Dustdar S. Architecting as decision making with patterns and primitives. In: Proceedings of the 3rd International Workshop on Sharing and Reusing Architectural Knowledge–SHARK ’08. 2008. p. 11.

  72. M. Al-Obeidallah, M. Petridis, S. Kapetanakis, MLDA: A Multiple Levels Detection Approach for Design Patterns Recovery. Proceedings of the International Conference on Compute and Data Analysis - ICCDA ’17 pp. 33–40 (2017)

  73. Bernardi ML, Cimitile M, De Ruvo G, Di Lucca GA, Santone A. Model checking to improve precision of design pattern instances identification in OO systems. In: Proceedings of the 10th International Conference on Software Paradigm Trends. 2015. p. 53–63.

  74. Bernardi ML, Cimitile M, Di Lucca GA. Declarative design pattern-based development using aspect oriented programming. In: Proceedings of the 29th Annual ACM Symposium on Applied Computing. 2014. p. 1625–30.

  75. Charalampidou S, Ampatzoglou A, Avgeriou P, Sencer S, Arvanitou EM, Stamelos I. A theoretical model for capturing the impact of design patterns on quality: the decorator case study. In: Proceedings of the Symposium on Applied Computing. 2017. p. 1231–8.

  76. Ferreira HS, Correia FF, Welicki L. Patterns for data and metadata evolution in adaptive object-models. in: Proceedings of the 15th Conference on Pattern Languages of Programs—PLoP ’08. 2008. p. 1.

  77. Fukaya K, Kubo A, Washizaki H, Fukazawa Y. Design pattern detection using source code of before applying design patterns. In: 1st International Workshop on Software Patterns and Quality. 2007.

  78. Gamma E, Helm R, Johnson R, Johnson RE, Vlissides J. Design patterns: Elements of reusable object-oriented software. 1995.

  79. Konrad S, Cheng B, Campbell L. Object analysis patterns for embedded systems. IEEE Trans Softw Eng. 2004;30(12):970–92.

    Article  Google Scholar 

  80. Issaoui I, Bouassida N, Ben-Abdallah H. A new approach for interactive design pattern recommendation. Lect Notes Softw Eng. 2015;3(3):173–8.

    Article  Google Scholar 

  81. Ouni A, Kessentini M, Cinnéide MÓ, Sahraoui H, Deb K, Inoue K. MORE: a multi-objective refactoring recommendation approach to introducing design patterns and fixing code smells. J Softw Evolut Process. 2017;29(5): e1843.

    Article  Google Scholar 

  82. Palma F, Farzin H, Gueheneuc YG, Moha N. Recommendation system for design patterns in software development: an DPR overview. In: 2012 third international workshop on Recommendation Systems for Software Engineering (RSSE). 2012. p. 1–5.

  83. Pappalardo G, Tramontana E. Automatically discovering design patterns and assessing concern separations for applications. In: Proceedings of the 2006 ACM Symposium on Applied Computing—SAC ’06. 2006. p. 1591.

  84. Tekin U, Erdemir U, Buzluca F. Mining object-oriented design models for detecting identical design structures. In: 2012 6th International Workshop on Software Clones (IWSC). 2012. p. 43–9.

  85. Tonella P, Antoniol G. Inference of object-oriented design patterns. J Softw Maint Evolut Res Pract. 2001;13(5):309–30.

    Article  Google Scholar 

  86. Tsantalis N, Chatzigeorgiou A, Stephanides G, Halkidis S. Design pattern detection using similarity scoring. IEEE Trans Softw Eng. 2006;32(11):896–909.

    Article  Google Scholar 

  87. Viljamaa J. Reverse engineering framework reuse interfaces. ACM SIGSOFT Softw Eng Notes. 2003;28(5):217–26.

    Article  Google Scholar 

  88. Wang L, Han Z, He J, Wang H, Li X. Recovering design patterns to support program comprehension. In: Proceedings of the 2nd International Workshop on Evidential Assessment of Software Technologies—EAST ’12. 2012. p. 49.

  89. Juárez-Martínez U, Beverido-Castellanos JA, García-Cantú EA, Cortés-Verdín K. A fos-based framework for software design pattern replacement. In: TRIZ in Latin America: case studies. 2023. p. 1–29.

  90. Al-Obeidallah MG. Towards a framework to assess the impact of design patterns on software metrics. In: 2023 International Conference on Multimedia Computing, Networking and Applications (MCNA). 2023. p. 67–72.

  91. Alvi AK, Zulkernine M. Security pattern detection through diagonally distributed matrix matching. In: 2022 9th International Conference on Dependable Systems and Their Applications (DSA). 2022. p. 390–402.

  92. Huang J, Li Y, Zhang J, Yu J. Developing novel design patterns in information visualization for mobile health systems. In: 2010 3rd International Conference on Biomedical Engineering and Informatics. 2010. p. 2748–52.

  93. Lee WT, Law PJ. A case study in applying security design patterns for IoT software system. In: 2017 International Conference on Applied System Innovation (ICASI). 2017. p. 1162–5.

  94. Ramadas A, Domingues G, Dias JP, Aguiar A, Ferreira HS. Patterns for things that fail. In: Proceedings of the 24th conference on pattern languages of programs. 2017. p. 1–10.

  95. Bien NH, Thu TD. Graphical user interface variability architecture pattern. In: Proceedings of the sixth international symposium on information and communication technology. 2015. p. 304–11.

  96. Delessy N, Fernandez EB, Larrondo-Petrie MM, Wu J. Patterns for access control in distributed systems. In: Proceedings of the 14th Conference on Pattern Languages of Programs—PLOP ’07. 2007. p. 1.

  97. Fahmideh M, Sharifi M, Jamshidi P, Shams F, Haghighi H. Process patterns for service-oriented software development. In: 2011 fifth international conference on research challenges in information science. 2011. p. 1–9.

  98. Farias G, Dantas A, Lopes R, Guerrero D. Distributed test agents: a pattern for the development of automatic system tests for distributed applications. In: Proceedings of the 9th Latin-American Conference on Pattern Languages of Programming—SugarLoafPLoP ’12. 2012. p. 1–11.

  99. Gomaa H, Hashimoto K. Dynamic self-adaptation for distributed service-oriented transactions. In: 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS). 2012. p. 11–20.

  100. Gomaa H, Hashimoto K, Kim M, Malek S, Menascé DA. Software adaptation patterns for service-oriented architectures. In: Proceedings of the 2010 ACM Symposium on Applied Computing—SAC ’10. 2010. p. 462.

  101. Gomaa H, Menascé DA, Shin ME. Reusable component interconnection patterns for distributed software architectures. In: Proceedings of the 2001 Symposium on Software Reusability Putting Software Reuse in Context—SSR ’01. 2001. p. 69–77.

  102. Krishnamurthy V, Babu C. Pattern based adaptation for service oriented applications. ACM SIGSOFT Softw Eng Notes. 2012;37(1):1–6.

    Article  Google Scholar 

  103. Mani N, Petriu DC, Woodside M. Propagation of incremental changes to performance model due to SOA design pattern application. In: Proceedings of the ACM/SPEC International Conference on International Conference on Performance Engineering—ICPE ’13. 2013. p. 89.

  104. Mani N, Petriu DC, Woodside M. Towards studying the performance effects of design patterns for service oriented architecture. In: Proceeding of the Second Joint WOSP/SIPEW International Conference on Performance Engineering—ICPE ’11. 2011. p. 499.

  105. Menasce DA, Sousa JP, Malek S, Gomaa H. Qos architectural patterns for self-architecting software systems. In: Proceeding of the 7th International Conference on Autonomic Computing—ICAC ’10. 2010. p. 195.

  106. van den Berghe A, Yskout K, Joosen W. A reimagined catalogue of software security patterns. In: Proceedings of the 3rd international workshop on engineering and cybersecurity of critical systems. 2022. p. 25–32.

  107. Schmidt DC. Using design patterns to develop reusable object-oriented communication software. Commun ACM. 1995;38(10):65–74.

    Article  Google Scholar 

  108. Sousa TB, Ferreira TB, Correia FF. Overview of a pattern language for engineering software for the cloud. In: Proceedings of the 25th conference on pattern languages of programs. 2018. p. 1–9.

  109. Sousa TB, Ferreira HS, Correia FF, Aguiar A. Engineering software for the cloud: automated recovery and scheduler. In: Proceedings of the 23rd European conference on pattern languages of programs. 2018. p. 1–8.

  110. Sousa TB, Ferreira HS, Correia FF, Aguiar A. Engineering software for the cloud: external monitoring and failure injection. In: Proceedings of the 23rd European conference on pattern languages of programs. 2018. p. 1–8.

  111. Syed MH, Fernandez EB, Silva P. The secure software container pattern. In: Proceedings of the 23rd Conference on Pattern Languages of Programs (PLoP 2017). Vancouver, Canada; 2017.

  112. Xu X, Liu R, Wang Z, Tu Z, Xu H. RE2SEP: a two-phases pattern-based paradigm for software service engineering. In: 2017 IEEE World Congress on Services (SERVICES). 2017. p. 67–70.

  113. Zdun U. Pattern-based design of a service-oriented middleware for remote object federations. ACM Trans Internet Technol. 2008;8(3):1–38.

    Article  Google Scholar 

  114. Pollom A, Becker M, Barbie P, Andres M, Hellebrandt R, Tummala SK. Approaching pattern catalogues for variability realization in model-based systems and software engineering. In: Proceedings of the 27th ACM International Systems and Software Product Line Conference, vol. A. 2023. p. 254–60.

  115. Babanezhad R, Bibalan YM, Ramsin R. Process patterns for web engineering. In: 2010 IEEE 34th annual computer software and applications conference. 2010. p. 477–86.

  116. Brown K, Woolf B. Implementation patterns for microservices architectures. In: Proceedings of the 23rd conference on pattern languages of programs. 2016. p. 1–35.

  117. Daoudi A, ElBoussaidi G, Moha N, Kpodjedo S. An exploratory study of MVC-based architectural patterns in Android apps. In: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing. 2019. p. 1711–20.

  118. Garcia-Holgado A, Garcia-Penalvo FJ. Architectural pattern for the definition of eLearning ecosystems based on Open Source developments. In: 2014 International Symposium on Computers in Education (SIIE). 2014. p. 93–8.

  119. Harrison NB. Architecture patterns of web services applications. In: Proceedings of the 26th conference on pattern languages of programs. 2019. p. 1–15.

  120. Jones ME, Song IY. Dimensional modeling: Identifying, classifying & applying patterns. In: Proceedings of the 8th ACM International Workshop on Data Warehousing and OLAP—DOLAP. 2005. p. 29.

  121. Mao F, Cai X, Shen B, Xia Y, Jin B. Operational pattern based code generation for management information system: an industrial case study. In: 2016 17th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD). 2016. p. 425–30.

  122. 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). 2019. p. 1–6.

  123. Saadawi H. Universal e-catalog pattern. In: Proceedings of the 2006 Conference on Pattern Languages of Programs—PLoP ’06. 2006. p. 1.

  124. Santos J, Lima G, Sena D, Pinto F, Lima J, Vianna A, Pereira D, Fernandes V, Kulesza U, Santos, et al. 2012—Conditional execution a pattern for the implement.pdf. In: Proceedings of the 9th Latin-American Conference on Pattern Languages of Programming. 2012. p. 1–17.

  125. Slotos T. The star pattern: representing domain concepts in a uniform way. In: Proceedings of the 21st European Conference on Pattern Languages of Programs. 2016. p. 1–11.

  126. Armoush A, Salewski F, Kowalewski S. Effective pattern representation for safety critical embedded systems. In: 2008 international conference on computer science and software engineering. 2008. p. 91–7.

  127. Ben Mansour A, Naija M, Ben Ahmed S. A MARTE-based design pattern for adaptive real-time embedded systems. In: Proceedings of the 14th international conference on evaluation of novel approaches to software engineering. 2019. p. 242–8.

  128. Ben Said M, Hadj Kacem Y, Kerboeuf M, Ben Amor N, Abid M. Design patterns for self-adaptive RTE systems specification. Int J Reconfigurable Comput. 2014;2014:1–21.

    Article  Google Scholar 

  129. Dubinin VN, Vyatkin V. Semantics-robust design patterns for IEC 61499. IEEE Trans Ind Inf. 2012;8(2):279–90.

    Article  Google Scholar 

  130. Fant JS. Building domain specific software architectures from software architectural design patterns. In: Proceedings of the 33rd international conference on software engineering. 2011. p. 1152–4.

  131. Fant JS, Gomaa H, Pettit RG. Software product line engineering of space flight software. In: 2012 third international workshop on Product LinE Approaches in Software Engineering (PLEASE). 2012. p. 41–4.

  132. Fant JS, Gomaa H, Pettit RG. A pattern-based modeling approach for software product line engineering. In: 2013 46th Hawaii International Conference on System Sciences. 2013. p. 4985–94.

  133. Gaudel V, Singhoff F, Plantec A, Dissaux P, Legrand J. Composition of design patterns: from the modeling of RTOS synchronization tools to schedulability analysis. ACM SIGBED Rev. 2014;11(1):44–9.

    Article  Google Scholar 

  134. Jawawi DN, Deris S, Mamat R. Software reuse for mobile robot applications through analysis patterns. Int Arab J Inf Technol. 2007;4(3):220–8.

    Google Scholar 

  135. Konrad S, Campbell LA, Cheng BH. Adding formal specifications to requirements patterns. In: Proceedings of the Requirements for High Assurance Systems Workshop (RHAS02) as part of the IEEE Joint International Conference on Requirements Engineering (RE02). 2002. p. 47–56.

  136. Konrad S, Campbell LA, Cheng BHC, Deng M. A requirements patterns-driven approach to specify systems and check properties. Model Checking Softw. 2003;2648:18–33.

    Article  Google Scholar 

  137. Konrad S, Cheng B. Requirements patterns for embedded systems. In: Proceedings IEEE Joint International Conference on Requirements Engineering. 2002. p. 127–36.

  138. Konrad S, Cheng B. Real-time specification patterns. In: Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005; 2005. p. 372–81.

  139. Kotur M, Lukic N, Krunic M, Velikic G. Utilization of design patterns in AUTOSAR Adaptive standard. In: 2020 IEEE 10th International Conference on Consumer Electronics (ICCE-Berlin). 2020. p. 1–6.

  140. Kratzer K, Böttcher A. Using an RTSJ-compatible MVC pattern as basis for configurable event-driven real-time software. In: Proceedings of the 8th international workshop on Java Technologies for Real-Time and Embedded Systems—JTRES ’10. 2010. p. 8–15.

  141. Magdich A, Hadj Kacem Y, Kerboeuf M, Mahfoudhi A, Abid M. A design pattern-based approach for automatic choice of semi-partitioned and global scheduling algorithms. Inf Softw Technol. 2018;97:83–98.

    Article  Google Scholar 

  142. Magdich A, Hadj Kacem Y, Mahfoudhi A, Kerboeuf M, Abid M. Real-time design patterns: architectural designs for automatic semi-partitioned and global scheduling. In: Enterprise, business-process and information systems modeling, vol. 14. 2015. p. 447–60.

  143. Magdich A, Kacem YH, Mahfoudhi A, Kerboeuf M. A UML/MARTE-based design pattern for semi-partitioned scheduling analysis. In: 2014 IEEE 23rd International WETICE Conference. 2014. p. 300–5.

  144. Mioch T, Ledegang W, Paulissen R, Neerincx MA, van Diggelen J. Interaction design patterns for coherent and re-usable shape specifications of human–robot collaboration. In: Proceedings of the 2014 ACM SIGCHI Symposium on Engineering Interactive Computing Systems—EICS ’14. 2014. p. 75–83.

  145. Mzid R, Mraidha C, Babau JP, Abid M. SRMP: a software pattern for deadlocks prevention in real-time concurrency models. In: Proceedings of the 10th International ACM Sigsoft Conference on Quality of Software Architectures—QoSA ’14. 2014. p. 139–44.

  146. Mzid R, Mraidha C, Mehiaoui A, Tucci-Piergiovanni S, Babau JP, Abid M. DPMP: a software pattern for real-time tasks merge. Modell Found Appl. 2013;7949:101–17.

    Article  Google Scholar 

  147. Navet N, Bertolotti IC, Hu T. Software patterns for fault injection in CPS engineering. In: 2017 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA). 2017. p. 1–6.

  148. Schweiger A. Applying software patterns to requirements engineering for avionics systems. In: 2013 IEEE International Systems Conference (SysCon). 2013. p. 25–30.

  149. Turcksin B, Kronbichler M, Bangerth W. WorkStream—a design pattern for multicore-enabled finite element computations. ACM Trans Math Softw. 2016;43(1):1–29.

    Article  MathSciNet  Google Scholar 

  150. van Wagensveld R, Wägemann T, Hehenkamp N, Kolagari RT, Margull U, Mader R. Intra-task parallelism in automotive real-time systems. In: Proceedings of the 9th international workshop on programming models and applications for multicores and manycores. 2018. p. 61–70.

  151. Tsai W-T, Yu L, Zhu F, Paul R. Rapid embedded system testing using verification patterns. IEEE Softw. 2005;22(4):68–75.

    Article  Google Scholar 

  152. Airlangga G, et al. Advancing UAV path planning system: a software pattern language for dynamic environments. Buletin Ilmiah Sarjana Teknik Elektro. 2023;5(4):475–97.

    Google Scholar 

  153. Meivel S, Nagaharipriya S, Priyankadevi P, Sangavi S. Malware detection using xilinx software and adaptive test pattern. In: 2023 9th International Conference on Advanced Computing and Communication Systems (ICACCS), vol. 1. 2023. 759–64.

  154. Bree DC, Cinnéide MÓ. The energy cost of the visitor pattern. In: 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME). 2022. p. 317–28.

  155. Mouratidis H, Giorgini P, Schumacher M. Security patterns for agent systems. In: 8th European Conference on Pattern Languages of Programs. 2003.

  156. Musil A, Musil J, Biffl S. Major variants of the SIS architecture pattern for collective intelligence systems. in: Proceedings of the 21st European Conference on Pattern Languages of Programs. 2016. p. 1–11.

  157. Musil J, Musil A, Biffl S. SIS: an architecture pattern for collective intelligence systems. In: Proceedings of the 20th European Conference on Pattern Languages of Programs. 2015. p. 1–12.

  158. Ortega-Arjona JL. Applying idioms for synchronization mechanisms: synchronizing communication components for the one-dimensional heat equation. In: Proceedings of the 8th Latin American Conference on Pattern Languages of Programs—SugarLoafPLoP ’10. 2010 . p. 1–11.

  159. Ortega-Arjona JL. Applying architectural patterns for parallel programming an N-body simulation. In: Proceedings of the 2nd Asian Conference on Pattern Languages of Programs—AsianPLoP ’11. 2011. p. 1–8.

  160. Ortega-Arjona JL. Applying design patterns for communication components communicating CSE components for the two-dimensional wave equation. In: Proceedings of the 2nd Asian Conference on Pattern Languages of Programs—AsianPLoP ’11. 2011. p. 1–7.

  161. Ortega-Arjona JL. Applying architectural patterns for parallel programming the fast Fourier transform. In: Proceedings of the 19th European Conference on Pattern Languages of Programs—EuroPLoP ’14 . 2014. p. 1–8.

  162. Gokmen R, Heidrich D, Schreiber A, Bichlmeier C. Stereotypes as design patterns for serious games to enhance software comprehension. In: 2021 IEEE Conference on Games (CoG). 2021. p. 1–3.

  163. Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M. Pattern-oriented software architecture, volume 1: a system of patterns. 1996.

  164. Schach SR. Software engineering. 1990.

  165. Keutzer K, Massingill BL, Mattson TG, Sanders BA. A design pattern language for engineering (parallel) software: merging the plpp and opl projects. In: Proceedings of the 2010 workshop on parallel programming patterns. 2010. p. 1–8.

  166. Avizienis A, Laprie JC, Randell B, Landwehr C. Basic concepts and taxonomy of dependable and secure computing. IEEE Trans Dependable Secure Comput. 2004;1(1):11–33.

    Article  Google Scholar 

  167. Alexander C. The timeless way of building, vol. 1. 1979.

  168. Fowler M. Patterns of enterprise application architecture: pattern enterpr applica arch. 2012.

  169. Coplien J. The human side of patterns. C++ Rep. 1996;8(1):73–80.

    Google Scholar 

  170. Ambler SW. Process patterns: building large-scale systems using object technology. 1998.

  171. Meszaros DJ, Doble JG. A pattern language for pattern writing. In: Proceedings of International Conference on Pattern languages of program design, vol 131. 1997. p. 164.

  172. Borchers JO. A pattern approach to interaction design. In: Communication and interaction: cognition; 2008. p. 114–31.

  173. Douglass BP. Real-time design patterns: robust scalable architecture for real-time systems. 2003.

  174. Geyer-Schulz A, Hahsler M. Software reuse with analysis patterns. In: AMCIS 2002 Proceedings. 2002. p. 12.

  175. Jacobson I, Booch G, Rumbaugh J. The unified modeling language. University Video Communications; 1996.

    Google Scholar 

  176. Lisboa Filho J, Iochpe C. Modeling with a uml profile. 2008.

  177. Kent S. Model driven engineering. In: International conference on integrated formal methods. 2002. p. 286–98.

  178. France R, Ray I, Georg G, Ghosh S. Aspect-oriented approach to early design modelling. IEE Proc Softw. 2004;151(4):173–85.

    Article  Google Scholar 

  179. Clements P, Northrop L. Software product lines. 2002.

  180. Meszaros G, Doble J. A pattern language for pattern writing. Pattern Lang Program Des. 1998;3:529–74.

    Google Scholar 

  181. Alhijawi B, Kilani Y. The recommender system: a survey. Int J Adv Intell Paradigms. 2020;15(3):229–51.

    Google Scholar 

Download references

Funding

No funding was obtained for this study.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rania Mzid.

Ethics declarations

Conflict of interest

The authors have no conflict of interest to declare that are relevant to the content of this article

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Mzid, R., Selvi, S. & Abid, M. Research Landscape of Patterns in Software Engineering: Taxonomy, State-of-the-Art, and Future Directions. SN COMPUT. SCI. 5, 411 (2024). https://doi.org/10.1007/s42979-024-02767-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s42979-024-02767-8

Keywords

Navigation

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy