{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,9]],"date-time":"2026-05-09T04:25:12Z","timestamp":1778300712775,"version":"3.51.4"},"reference-count":142,"publisher":"MDPI AG","issue":"10","license":[{"start":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T00:00:00Z","timestamp":1697846400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Computers"],"abstract":"<jats:p>Patterns embody the experience and knowledge of designers and are effective ways to improve nonfunctional aspects of software systems. Although there are several catalogs and surveys of security patterns, there is no catalog or general survey about dependability patterns. Our survey presented an enumeration of dependability patterns, which include fault tolerance, reliability, safety, and availability patterns. After defining classification groups and showing basic pattern relationships, we showed the references to the publications where these patterns were introduced and enumerated their intents. Another objective was evaluating these patterns to see if their descriptions are appropriate for a possible catalog, which would make them useful to developers and researchers. We found that most of them need remodeling because they use ad hoc templates or no templates. We considered some models from which we can derive patterns and methodologies that incorporate the use of patterns to build dependable software systems. We also provided directions for research.<\/jats:p>","DOI":"10.3390\/computers12100214","type":"journal-article","created":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T12:59:01Z","timestamp":1697893141000},"page":"214","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Dependability Patterns: A Survey"],"prefix":"10.3390","volume":"12","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2736-718X","authenticated-orcid":false,"given":"Ingrid A.","family":"Buckley","sequence":"first","affiliation":[{"name":"Department of Software Engineering, Florida Gulf Coast University, Fort Myers, FL 33965, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5109-4591","authenticated-orcid":false,"given":"Eduardo B.","family":"Fernandez","sequence":"additional","affiliation":[{"name":"Department of Electrical Engineering and Computer Science, Florida Atlantic University, Boca Raton, FL 33431, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2023,10,21]]},"reference":[{"key":"ref_1","unstructured":"Fernandez, E.B. (2013). Security Patterns in Practice: Building Secure Architectures Using Software Patterns, Wiley Series on Software Design Patterns. Available online: https:\/\/www.amazon.sg\/Security-Patterns-Practice-Designing-Architectures\/dp\/1119998948."},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"681","DOI":"10.1016\/j.cose.2012.04.005","article-title":"Securing distributed systems using patterns: A survey","volume":"31","author":"Uzunov","year":"2012","journal-title":"Comput. Secur."},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"11","DOI":"10.1109\/TDSC.2004.2","article-title":"Basic Concepts and Taxonomy of Dependable and Secure Computing","volume":"1","author":"Avizienis","year":"2004","journal-title":"Proc. IEEE Trans. Dependable Secur. Comput."},{"key":"ref_4","unstructured":"Buckley, I.A., and Fernandez, E.B. (2011, January 25\u201330). Patterns Combing Reliability and Security. Proceedings of the Third International Conferences on Pervasive Patterns and Applications."},{"key":"ref_5","unstructured":"Fernandez, E.B., Yoshioka, N., Washizaki, H., and Yoder, J. (2014, January 23\u201325). Abstract security patterns for requirements specification and analysis of secure systems. Proceedings of the WER 2014 Conference, a Track of the 17th Ibero-American Conference on Software Engineering (CIbSE 2014), Pucon, Chile."},{"key":"ref_6","unstructured":"Fernandez, E.B., Astudillo, H., and Pedraza-Garcia, G. (2015, January 5\u20137). Revisiting architectural tactics for security. Proceedings of the 9th European Conference on Software Architecture (ECSA 2015), Cavtat, Croatia."},{"key":"ref_7","unstructured":"Gollmann, D. (2011). Computer Security, Wiley. [3rd ed.]."},{"key":"ref_8","first-page":"2920","article-title":"Engineering Security into Distributed Systems: A Survey of Methodologies","volume":"18","author":"Uzunov","year":"2013","journal-title":"J. Univers. Comput. Sci."},{"key":"ref_9","unstructured":"Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. (1996). A System of Patterns: Pattern-Oriented Software Architecture, John Wiley & Sons."},{"key":"ref_10","unstructured":"Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley."},{"key":"ref_11","unstructured":"Fowler, M. (1997). Analysis Patterns: Reusable Object Models, Addison-Wesley."},{"key":"ref_12","unstructured":"Warmer, J., and Kleppe, A. (2003). The Object Constraint Language, Addison-Wesley. [2nd ed.]."},{"key":"ref_13","first-page":"1","article-title":"Describing, instantiating and evaluating a reference architecture: A case study","volume":"342","author":"Avgeriou","year":"2003","journal-title":"Enterp. Archit. J."},{"key":"ref_14","unstructured":"Bass, L., Clements, P., and Kazman, R. (2012). Software Architecture in Practice, Addison-Wesley. [3rd ed.]."},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Harrison, N., and Avgeriou, P. (2008, January 17\u201319). Incorporating Fault Tolerance Tactics in Software Architecture Patterns. Proceedings of the RISE\/EFTS Joint International Workshop on Software Engineering for Resilient Systems, Newcastle upon Tyne, UK.","DOI":"10.1145\/1479772.1479775"},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Kelly, T.P., and McDermid, J.A. (1997, January 7\u201310). Safety case construction and reuse using patterns. Proceedings of the 16th Int. Conference on Computer Safety, Reliability and Security (SAFECOMP\u201997), York, UK.","DOI":"10.1007\/978-1-4471-0997-6_5"},{"key":"ref_17","doi-asserted-by":"crossref","first-page":"39","DOI":"10.1109\/2.56851","article-title":"Definition and analysis of hardware- and software-fault-tolerant architectures","volume":"23","author":"Laprie","year":"1990","journal-title":"Computer"},{"key":"ref_18","unstructured":"von Neumann, J. (1956). Automata Studies, Princeton University Press."},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"19","DOI":"10.1109\/2.56849","article-title":"Fault-Tolerant Computing: Fundamental Concepts","volume":"3","author":"Nelson","year":"1990","journal-title":"IEEE Comput."},{"key":"ref_20","unstructured":"Saridakis, T. (2002, January 3\u20137). A System of Patterns for Fault Tolerance. Proceedings of the EuroPLoP, Irsee, Germany."},{"key":"ref_21","unstructured":"Saridakis, T. (2003, January 25\u201329). Design Patterns for Fault Containment. Proceedings of the EuroPLoP, Irsee, Germany."},{"key":"ref_22","unstructured":"Saridakis, T. (2003, January 25\u201329). Design Patterns for Checkpoint-Based Rollback Recovery. Proceedings of the EuroPLoP, Irsee, Germany."},{"key":"ref_23","doi-asserted-by":"crossref","unstructured":"Saridakis, T. (2009, January 28\u201330). Design Patterns for Graceful Degradation. Proceedings of the Transactions on Pattern Languages of Programs, Chicago, IL, USA.","DOI":"10.1007\/978-3-642-10832-7_3"},{"key":"ref_24","unstructured":"Ferreira, L.L., Rubira, C.M.F., and Rubira, M.F. (1998, January 11\u201314). The Reflective State Pattern. Proceedings of the PLoP\u201998, Monticello, IL, USA."},{"key":"ref_25","unstructured":"Ferreira, L.L., and Rubira, C.M.F. (1998, January 18). Reflective design patterns to implement fault tolerance. Proceedings of the OOPSLA Workshop on Reflective Programming, Vancouver, BC, Canada. Available online: https:\/\/www.csq.is.titech.ac.jp\/~chiba\/oopsla98\/ferreira.pdf."},{"key":"ref_26","unstructured":"Leme, N.G.M., Martins, E., and Rubira, C.M.F. (2001, January 11\u201315). A Software Fault Injection Pattern System. Proceedings of the PLoP, Park Monticello, IL, USA."},{"key":"ref_27","unstructured":"Martins, E., Rubira, C.M.F., and Leme, N.G.M. (2002, January 23\u201326). A reflective fault injection tool based on patterns. Proceedings of the International Dependable Systems and Networks (DSN\u201902), Washington, DC, USA."},{"key":"ref_28","unstructured":"Buckley, I.A., and Fernandez, E.B. (2009, January 26). Three patterns for fault tolerance. Proceedings of the OOPSLA MiniPLoP, Orlando, FL, USA."},{"key":"ref_29","unstructured":"Mwelwa, C., and Pont, M.J. (, January March). Two Simple Patterns to Support the Development of Reliable Embedded Systems. Proceedings of the of Viking PLoP, Ikaalinen, Finland."},{"key":"ref_30","unstructured":"Konrad, S., and Cheng, B.H.C. (2002, January 9\u201313). Requirements patterns for embedded systems. Proceedings of the IEEE Joint International Conference on Requirements Engineerinh (RE\u201902), Essen, Germany."},{"key":"ref_31","doi-asserted-by":"crossref","first-page":"1211","DOI":"10.1016\/j.jss.2009.03.102","article-title":"Quality-driven architecture development using architectural tactics","volume":"82","author":"Kim","year":"2009","journal-title":"J. Syst. Softw."},{"key":"ref_32","unstructured":"Buckley, I.A., and Fernandez, E.B. (2012, January 23\u201327). Failure patterns: A new way to analyze failures. Proceedings of the First International Symposium on Software Architecture and Patterns in Conjunction with the 10th Latin American and Caribbean Conference for Engineering and Technology, Panama City, Panama."},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"Ahluwalia, K.S., and Jain, A. (2006, January 21\u201323). High Availability Design Patterns. Proceedings of the PLoP \u201806, Portland, OR, USA.","DOI":"10.1145\/1415472.1415494"},{"key":"ref_34","doi-asserted-by":"crossref","unstructured":"Jim\u00e9nez-Peris, R., Pati\u00f1o-Mart\u00ednez, M., Kemme, B., Perez-Sorrosal, F., and Serrano, D. (September, January 28). A System of Architectural Patterns for Scalable, Consistent and Highly Available Multi-Tier Service-Oriented Infrastructures. Proceedings of the WADS2008, Tokyo, Japan.","DOI":"10.1007\/978-3-642-10248-6_1"},{"key":"ref_35","doi-asserted-by":"crossref","unstructured":"Kumar, S.P., Ramaiah, P.S., and Khanaa, V. (2011, January 12\u201314). Architectural patterns to design software safety-based safety-critical systems. Proceedings of the ICCCS\u201911, Rourkela Odisha, India.","DOI":"10.1145\/1947940.1948069"},{"key":"ref_36","unstructured":"Hanmer, R.S. (2007). Available online: https:\/\/www.oreilly.com\/library\/view\/patterns-for-fault\/9780470319796\/."},{"key":"ref_37","unstructured":"Hanmer, R.S., and Lane, L. (2009, January 28\u201330). N-Version Programming. Proceedings of the PLoP, Chicago, IL, USA."},{"key":"ref_38","doi-asserted-by":"crossref","unstructured":"Hanmer, R.S. (2010, January 23\u201326). Software rejuvenation. Proceedings of the PLoP, Salvador, Bahia, Brazil.","DOI":"10.1145\/2493288.2493309"},{"key":"ref_39","unstructured":"Daniels, F., Kim, K., and Vouk, M.A. (,  1997). The Reliable Hybrid pattern\u2014A generalized software fault tolerant design pattern. Proceedings of the PLoP\u201997, Available online: https:\/\/hillside.net\/plop\/plop97\/Proceedings\/daniels.pdf."},{"key":"ref_40","doi-asserted-by":"crossref","first-page":"1","DOI":"10.4236\/jsea.2009.21001","article-title":"Design Pattern Representation for Safety-Critical Embedded Systems","volume":"2","author":"Armoush","year":"2009","journal-title":"J. Softw. Eng. Appl."},{"key":"ref_41","unstructured":"Liu, C. (1992, January 6). A general framework for software fault tolerance. Proceedings of the Workshop on Fault-Tolerant Parallel and Distributed Systems, Amherst, MA, USA."},{"key":"ref_42","unstructured":"Ding, K., Morozov, A., and Klaus, J. (2023, July 14). Classification of Hierarchical Fault-Tolerant Design Patterns. Available online: https:\/\/www.researchgate.net\/publication\/324179369_Classification_of_Hierarchical_Fault-Tolerant_Design_Patterns."},{"key":"ref_43","unstructured":"Hoeller, A., Rauter, T., Iber, J., and Kreiner, C. (2015, January 8\u201312). Patterns for automated software diversity. Proceedings of the 20th European Conference on Pattern Languages of Programs (EuroPLoP 2015), Kaufbeuren, Germany."},{"key":"ref_44","unstructured":"Dyson, P., and Logshaw, A. (2002, January 3\u20137). Patterns for high-availability Internet systems. Proceedings of the EuroPLoP, Irsee, Germany."},{"key":"ref_45","unstructured":"Adams, M., Coplien, J., Gamboke, R., Hanmer, R., Keeve, F., and Nicodemus, K. Fault-Tolerant Telecommunication System Patterns. Proceedings of the Pattern Languages of Program Design 2."},{"key":"ref_46","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1145\/236156.236172","article-title":"An essential design pattern for fault-tolerant distributed state sharing","volume":"39","author":"Islam","year":"1996","journal-title":"Commun. ACM"},{"key":"ref_47","doi-asserted-by":"crossref","unstructured":"Iliasov, A., and Romanovsky, A. (2008, January 7\u20139). Refinement Patterns for Fault Tolerant Systems. Proceedings of the 2008 Seventh European Dependable Computing Conference EDCC, Kaunas, Lithuania.","DOI":"10.1109\/EDCC-7.2008.18"},{"key":"ref_48","unstructured":"Douglass, B.F. (1998). Doing Hard-Time: Using Object-Oriented Programming and Software Patterns in Real-Time Applications, Addison-Wesley."},{"key":"ref_49","unstructured":"Douglass, B.F. (2003). Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems, Addison-Wesley Professional."},{"key":"ref_50","unstructured":"Lau, A., and Seviora, R.E. (2005, January 16\u201320). Design Patterns for Software Health Monitoring. Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS\u201905), Shanghai, China."},{"key":"ref_51","doi-asserted-by":"crossref","first-page":"97","DOI":"10.1007\/s11334-009-0084-5","article-title":"A safety shell for UML-RT project structure and methods of the corresponding UML pattern","volume":"5","author":"Gumzej","year":"2009","journal-title":"Innov. Syst. Softw. Eng."},{"key":"ref_52","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1007\/s10270-007-0075-7","article-title":"A reconfiguration pattern for distributed embedded systems","volume":"8","author":"Gumzej","year":"2009","journal-title":"Proc. Softw. Syst. Model. (Sym.)"},{"key":"ref_53","unstructured":"Subramanian, S., and Tsai, W. (1996). Pattern Languages of Program Design, Addison-Wesley."},{"key":"ref_54","doi-asserted-by":"crossref","unstructured":"Kang, E., and Jackson, D. (2010, January 16\u201318). Patterns for building dependable systems with trusted bases. Proceedings of the 17th Conference on Pattern Languages of Programs (PLOP \u201810), Reno, NE, USA.","DOI":"10.1145\/2493288.2493307"},{"key":"ref_55","unstructured":"Preschern, C., Kajtazovic, N., and Kreiner, C. (2015, January 10\u201314). Building a Safety Architecture PatternSystem. Proceedings of the 18th European Conference on Pattern Languages of Program, Irsee, Germany."},{"key":"ref_56","doi-asserted-by":"crossref","unstructured":"Fernandez, E.B., and Hamid, B. (2017, January 12\u201316). Two safety patterns: Safety Assertion and Safety Assertion Enforcer. Proceedings of the 23rd European Conference on Pattern Languages of Programs (EuroPLoP), Irsee, Germany.","DOI":"10.1145\/3147704.3147737"},{"key":"ref_57","doi-asserted-by":"crossref","unstructured":"Rauhamaki, J., and Kuikka, S. (2015, January 8\u201312). A few patterns to implement protective measures. Proceedings of the 20th European Conf. on Pattern Languages of Programs (EuroPLoP), Kaufbeuren, Germany.","DOI":"10.1145\/2855321.2855365"},{"key":"ref_58","doi-asserted-by":"crossref","unstructured":"Rauhamaki, J. (2016, January 7\u201310). Patterns for safety system bus architecture. Proceedings of the Viking PLoP, Leerdam, The Netherlands.","DOI":"10.1145\/3022636.3022640"},{"key":"ref_59","first-page":"100","article-title":"Designing Functional Safety Systems: A Pattern Language Approach","volume":"1478","year":"2017","journal-title":"Trans. Pattern Lang. Program. IV"},{"key":"ref_60","unstructured":"Hansen, K., and Gullesen, I. (2023, July 14). Utilizing UML and Patterns for Safety Critical Systems. Available online: https:\/\/www.researchgate.net\/publication\/238477117_Utiliing_UML_and_patterns_for_safety_critical_systems."},{"key":"ref_61","doi-asserted-by":"crossref","unstructured":"Hauge, A.A., and St\u00f8len, K. (2011, January 21\u201323). SACS: A pattern language for safe adaptive control software. Proceedings of the 18th Conference on Pattern Languages of Programs (PLoP \u201811), Portland, OR, USA.","DOI":"10.1145\/2578903.2579145"},{"key":"ref_62","doi-asserted-by":"crossref","unstructured":"Hauge, A.A., and St\u00f8len, K. (2012, January 25\u201328). A pattern-based method for safe control systems exemplified within nuclear power production. Proceedings of the SAFECOMP, Magdeburg, Germany.","DOI":"10.1007\/978-3-642-33678-2_2"},{"key":"ref_63","unstructured":"Hauge, A.A., and St\u00f8len, K. (2013, January 20\u201324). Developing safe control systems using patterns for assurance. Proceedings of the Third Int. Conf. on Performance, Safety and Robustness in Complex Systems and Applications (PESARO 2013), Opatija, Croatia."},{"key":"ref_64","unstructured":"Hauge, A.A., and St\u00f8len, K. (2014, January 23\u201328). An analytic evaluation of the saCS pattern language\u2014Including explanations of major design choices. Proceedings of the PATTERNS, Moscow, Russia."},{"key":"ref_65","unstructured":"Olivera, A. (2012). Taim: A Safety Pattern Repository. [Bachelor\u2019s Thesis, Federal University of Rio Grande do Sul]."},{"key":"ref_66","unstructured":"Ljosland, I. (2006). BUCS: Patterns and Robustness. [Master\u2019s Thesis, Norwegian University of Science and Technology]."},{"key":"ref_67","unstructured":"Gleirscher, M., and Kugele, S. (2016). A Study of Safety Patterns: First Results, Institut fur Informatik, Technical University of Munich."},{"key":"ref_68","unstructured":"Mahemoff, M., Hussey, A., and Johnston, L. (2001, January 27\u201328). Pattern-based reuse of successful designs: Usability of safety-critical systems. Proceedings of the Australian Software Engineering Conference, Canberra, ACT, Australia."},{"key":"ref_69","doi-asserted-by":"crossref","unstructured":"Daramola, O., Sindre, G., and St\u00e5lhane, T. (2012, January 24). Pattern-based security requirements specification using ontologies and boilerplates. Proceedings of the Second International Workshop on Requirements Patterns (RePa \u201912), Chicago, IL, USA.","DOI":"10.1109\/RePa.2012.6359973"},{"key":"ref_70","doi-asserted-by":"crossref","unstructured":"Delmas, K., Delmas, R., and Pagetti, C. (2015, January 23\u201325). Automatic Architecture Hardening Using Safety Patterns. Proceedings of the International Conference on Computer Safety, Reliability, and Security (Safecomp), Delft, The Netherlands.","DOI":"10.1007\/978-3-319-24255-2_21"},{"key":"ref_71","unstructured":"Pont, M.J. (1999, January 7\u201311). Designing and Implementing Reliable Embedded Systems Using Patterns. Proceedings of the EuroPLoP, Irsee, Germany."},{"key":"ref_72","doi-asserted-by":"crossref","first-page":"201","DOI":"10.1016\/S0164-1212(03)00006-2","article-title":"Designing embedded systems using patterns: A case study","volume":"71","author":"Pont","year":"2004","journal-title":"J. Syst. Softw."},{"key":"ref_73","doi-asserted-by":"crossref","unstructured":"Luo, Y., Saberi, A.K., Bijlsma, T., Lukkien, J.J., and van den Brand, M. (2017, January 24\u201327). An architecture pattern for safety critical automated driving applications: Design and analysis. Proceedings of the Annual IEEE International Systems Conference (SysCon), Montreal, QC, Canada.","DOI":"10.1109\/SYSCON.2017.7934739"},{"key":"ref_74","doi-asserted-by":"crossref","unstructured":"Khalil, M., Prieto, A., and H\u00f6lzl, F. (2014, January 27\u201329). A Pattern-Based Approach towards the Guided Reuse of Safety Mechanisms in the Automotive Domai. Proceedings of the IMBSA 2014, Munich, Germany.","DOI":"10.1007\/978-3-319-12214-4_11"},{"key":"ref_75","unstructured":"Khalil, M. (2018, January 24\u201326). Design Patterns to the rescue: Guided model-based reuse for automotive solutions. Proceedings of the PLoP, Irsee, Germany."},{"key":"ref_76","unstructured":"Fernandez, E.B., VanHilst, M., LaRed, D., and Mujica, S. (2017, January 5\u20137). An extended reference monitor for security and safety. Proceedings of the 5th Iberoamerican Conference on Information Security (CIBSI 2009), Jakarta, Indonesia."},{"key":"ref_77","doi-asserted-by":"crossref","unstructured":"Amorim, T., Martin, H., Ma, Z., Schmittner, C., Schneider, D., Macher, G., Winkler, B., Krammer, M., and Kreiner, C. (2017, January 12\u201315). Systematic Pattern Approach for Safety and Security Co-engineering in the Automotive Domain. Proceedings of the SAFECOMP, Trento, Italy.","DOI":"10.1007\/978-3-319-66266-4_22"},{"key":"ref_78","doi-asserted-by":"crossref","first-page":"340","DOI":"10.1145\/195792.195823","article-title":"A secure architecture for fault-tolerant systems. Proc","volume":"12","author":"Reiter","year":"1994","journal-title":"ACM Trans. Comput. Syst."},{"key":"ref_79","unstructured":"Maffeis, S. (2023, July 13). The Object Group Design Pattern\u2014An Object Behavioural Pattern for Fault-Tolerance and Group Communication in Distributed Systems. Available online: https:\/\/ecommons.cornell.edu\/bitstream\/handle\/1813\/7227\/96-1570.pdf?sequence=1."},{"key":"ref_80","doi-asserted-by":"crossref","unstructured":"Kreiner, C. (2015, January 8\u201312). Essential architectural views for dependable system design. Proceedings of the 20th European Conference on Pattern Languages of Programs (EuroPLoP), Kaufbeuren, Germany.","DOI":"10.1145\/2855321.2855340"},{"key":"ref_81","doi-asserted-by":"crossref","first-page":"42","DOI":"10.1109\/52.469759","article-title":"The 4+1 view model of architecture","volume":"12","author":"Kruchten","year":"1995","journal-title":"IEEE Softw."},{"key":"ref_82","unstructured":"Hafiz, M. (2004, January 8\u201312). Unique atomic chunks\u2014A pattern for security and reliability. Proceedings of the PLoP, Allerton Park in Monticello, IL, USA."},{"key":"ref_83","doi-asserted-by":"crossref","unstructured":"Montesi, F., and Weber, J. (2018, January 9\u201313). From the decorator patterns to circuit breakers in microservices. Proceedings of the 33rd Annual ACM Symposium (SAC 2018), Pau, France.","DOI":"10.1145\/3167132.3167427"},{"key":"ref_84","doi-asserted-by":"crossref","first-page":"22","DOI":"10.4018\/jsse.2011070101","article-title":"Organizational Patterns for Security and Dependabiity: FromDesign to Application","volume":"2","author":"Asnar","year":"2011","journal-title":"Int. J. Secur. Softw. Eng."},{"key":"ref_85","doi-asserted-by":"crossref","unstructured":"Castellanos, C., Vergnaud, T., Borde, E., Derive, T., and Pautet, L. (2013, January 17\u201321). Formalization of design patterns for security and dependability. Proceedings of the 4th ACM Sigsoft International Symposium on Architecting Critical Systems (ISARCS), Vancouver, BC, Canada.","DOI":"10.1145\/2465470.2465476"},{"key":"ref_86","first-page":"6","article-title":"Design Patterns to Implement Safety and Fault Tolerance","volume":"18","author":"Gawand","year":"2011","journal-title":"Int. J. Comput. Appl."},{"key":"ref_87","unstructured":"Buckley, I.A., Fernandez, E.B., Rossi, G., and Sadjadi, M. (2009, January 1\u20133). Web services reliability patterns. Proceedings of the 21st International Conference on Software Engineering and Knowledge Engineering (SEKE\u20192009), Boston, MA, USA."},{"key":"ref_88","unstructured":"Buckley, I.A., Fernandez, E.B., Anisetti, M., Ardagna, C.A., Sadjadi, M., and Damiani, E. (2011;, January 17\u201319). Towards Pattern-based Reliability Certification of Services. Proceedings of the 1st International Symposium on Secure Virtual Infrastructures (DOA-SVI\u201911), Crete, Greece."},{"key":"ref_89","first-page":"17","article-title":"Propound Solutions for Increase Fault Tolerance in Web Services CompositionInt","volume":"1","author":"Faridoon","year":"2013","journal-title":"J. Syst. Soft.Eng."},{"key":"ref_90","doi-asserted-by":"crossref","unstructured":"Thaisongsuwan, T., and Senivongse, T. (2011, January 11\u201313). Applying software fault tolerance patterns to WS-BPEL processes. Proceedings of the Eighth International Joint Conference on Computer Science and Software Engineering (JCSSE), Nakhonpathom, Thailand.","DOI":"10.1109\/JCSSE.2011.5930133"},{"key":"ref_91","unstructured":"Hanmer, R.S. (2014, January 14\u201317). Patterns for Fault Tolerant Cloud Software. Proceedings of the PLoP, Monticello, IL, USA. Available online: https:\/\/hillside.net\/plop\/2014\/papers\/Security\/hanmer.pdf."},{"key":"ref_92","unstructured":"Shunmugasundaram, S. (2023, July 14). Architecting for Reliability Series. Available online: https:\/\/medium.com\/becloudy\/architecting-for-reliability-part-1-concepts-17028343089."},{"key":"ref_93","doi-asserted-by":"crossref","unstructured":"Sousa, T.B., Ferreira, H.S., Correia, F.F., and Aguiar, A. (2018, January 4\u20138). Engineering Software for the Cloud: External Monitoring and Failure Injection. Proceedings of the 23rd European Conference on Pattern Languages of Programs (EuroPLoP \u201818), Irsee, Germany.","DOI":"10.1145\/3282308.3282316"},{"key":"ref_94","unstructured":"(2023, July 12). Bulkhead Pattern. Available online: https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/patterns\/bulkhead."},{"key":"ref_95","unstructured":"(2023, July 12). Reliability Patterns. Available online: https:\/\/docs.mulesoft.com\/mule-runtime\/4.4\/reliability-patterns."},{"key":"ref_96","unstructured":"Xie, Z., Sun, H., and Saluja, K. (2023, July 12). A Survey of Fault Tolerance Techniques. Available online: http:\/\/www.pld.ttu.ee\/IAF0030\/Paper_4.pdf."},{"key":"ref_97","unstructured":"(2023, August 26). Retry Pattern. Available online: https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/patterns\/retry."},{"key":"ref_98","unstructured":"(2023, July 12). Health Endpoint Monitoring pattern. Available online: https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/patterns\/health-endpoint-monitoring."},{"key":"ref_99","unstructured":"Grand, M. (1998). Patterns in Java Volume 1: A Catalog of Reusable Design Patterns Illustrated with UML, Addison-Wesley."},{"key":"ref_100","doi-asserted-by":"crossref","first-page":"179","DOI":"10.1147\/sj.172.0179","article-title":"Data processing sphers of control","volume":"17","author":"Davies","year":"1978","journal-title":"IBM Syst. J."},{"key":"ref_101","unstructured":"Fayad, M., Rajagopalan, J., and Hamza, H. (2003, January 27\u201329). Recovery design pattern. Proceedings of the IEEE International Conference on Info. Reuse and Integration (IRI 2003), Las Vegas, NV, USA."},{"key":"ref_102","unstructured":"Zghurskyi, O. (2023, July 12). Backpressure Patterns in Practice. Available online: https:\/\/www.zghurskyi.com\/backpressure\/2019."},{"key":"ref_103","unstructured":"Tichy, M. (2006, January 5\u201311). Pattern Based Synthesis of Fault Tolerant Embedded Systems. Proceedings of the SIGSOFT, Portland, ON, USA."},{"key":"ref_104","unstructured":"Grunske, L. (2013, January 21\u201324). Transformational Patterns for the Improvement of Safety Properties in architectural Specifications. Proceedings of the Viking PLoP, Ikaalinen, Finland."},{"key":"ref_105","unstructured":"Fowler, M. (1999). Refactoring\u2014Improving the Design of Existing Code, Addison-Wesley."},{"key":"ref_106","doi-asserted-by":"crossref","unstructured":"Lakhani, F.N., and Pont, M.J. (2012, January 25\u201327). Applying Design Patterns to Improve the Reliability of Embedded Systems through a Process of Architecture Migration. Proceedings of the Computing and Communication & IEEE International Conference on Embedded Software and Systems, Liverpool, UK.","DOI":"10.1109\/HPCC.2012.228"},{"key":"ref_107","doi-asserted-by":"crossref","unstructured":"Gribov, V., and Voos, H. (2013, January 10\u201313). Safety oriented software engineering process for autonomous robots. Proceedings of the 2013 IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA), Cagliari, Italy.","DOI":"10.1109\/ETFA.2013.6647969"},{"key":"ref_108","doi-asserted-by":"crossref","unstructured":"Gribov, V., and Voos, H. (2014, January 16\u201319). A multilayer software architecture for safe autonomous robots. Proceedings of the IEEE Emerging Tech. and Factory Automation, Barcelona, Spain.","DOI":"10.1109\/ETFA.2014.7005217"},{"key":"ref_109","doi-asserted-by":"crossref","first-page":"25","DOI":"10.5772\/5805","article-title":"Audit, control and monitoring design patterns (ACMDP) for autonomous robust systems (ARS)","volume":"2","author":"Trad","year":"2005","journal-title":"Int. J. Adv. Robot. Syst."},{"key":"ref_110","doi-asserted-by":"crossref","first-page":"313","DOI":"10.1007\/s10270-009-0128-1","article-title":"A dependability profile within MARTE","volume":"10","author":"Bernardi","year":"2011","journal-title":"Softw. Syst. Model"},{"key":"ref_111","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/2379776.2379778","article-title":"Dependability modeling and analysis of software systems specified with UML","volume":"45","author":"Bernardi","year":"2012","journal-title":"ACM Comput. Surv."},{"key":"ref_112","doi-asserted-by":"crossref","first-page":"22","DOI":"10.1145\/351936.351958","article-title":"An Open Framework for Reliable Distributed Computing","volume":"32","author":"Garbinat","year":"2000","journal-title":"ACM Comput. Surv."},{"key":"ref_113","doi-asserted-by":"crossref","first-page":"185","DOI":"10.5381\/jot.2007.6.8.a4","article-title":"Early Safety Analysis: From Use Cases to\u2014Component-based Software Development","volume":"6","author":"Choi","year":"2007","journal-title":"J. Object Technol."},{"key":"ref_114","unstructured":"Webel, C., Fliege, I., Geraldy, A., and Gotzhein, R. (,  2004). Developing Reliable Systems with SDL Design Patterns and Design Components. Proceedings of the ISSRE04 Workshop on Integrated-Reliability with Telecommunications and UML Languages, Available online: https:\/\/www.sdl-forum.org\/issre04witul\/papers\/witul04_developing_reliable_systems.pdf."},{"key":"ref_115","doi-asserted-by":"crossref","unstructured":"Wood, W.G. (2007). A Practical Example of Applying Attribute-Driven Design (ADD), Software Engineering Institute, Carnegie Mellon University. version 2.0.","DOI":"10.21236\/ADA468604"},{"key":"ref_116","unstructured":"Macher, G., Hoeller, A., Armengaud, E., and Kreiner, C. (2015, January 8\u201312). Safety-critical embedded system multi-core migration pattern. Proceedings of the 20th European Conference on Pattern Languages of Programs (EuroPLoP\u201915), Kaufbeuren, Germany."},{"key":"ref_117","doi-asserted-by":"crossref","first-page":"421","DOI":"10.1109\/TR.2006.879605","article-title":"Generic Fault Tolerant Software Architecture Reasoning and Customization","volume":"55","author":"Yuan","year":"2006","journal-title":"Proc. IEEE Trans. Reliab."},{"key":"ref_118","unstructured":"De la Vara, J.L., Nair, S., Verhulst, E., Studzizba, J., Pepek, P., Lambourg, J., and Sabetzadeh, M. Towards a model-based evolutionary chain of evidence for compliance with safety standards. Proceedings of the Workshop Next Generation Syst. Assurance Approaches Safety-Critical Syst. Workshop, Available online: https:\/\/people.svv.lu\/sabetzadeh\/pub\/SASSUR12.pdf."},{"key":"ref_119","doi-asserted-by":"crossref","first-page":"23","DOI":"10.1109\/2.58234","article-title":"System Architecture for Fault Tolerance in Concurrent Systems","volume":"23","author":"Ancona","year":"1990","journal-title":"IEEE Comput."},{"key":"ref_120","unstructured":"Clematis, A., Ancona, T., Dodero, G., Gianuzzi, V., and Lisb\u00f4a, M.L. (1995, January 25\u201327). An object-oriented approach to fault-tolerant software. Proceedings of the Euromicro Workshop on Parallel and Distributed Processing, San Remo, Italy."},{"key":"ref_121","doi-asserted-by":"crossref","unstructured":"Gensh, R., Rafiev, A., Romanovsky, A.B., Garcia, A.F., Xia, F., and Yakovlev, A. (2017, January 12\u201314). Architecting Holistic Fault Tolerance. Proceedings of the HASE, Singapore.","DOI":"10.1109\/HASE.2017.13"},{"key":"ref_122","doi-asserted-by":"crossref","first-page":"55","DOI":"10.5381\/jot.2010.9.5.a3","article-title":"Enhancing NetBeans with Transparent Fault Tolerance Using Meta-Level Architecture","volume":"9","author":"Rytter","year":"2010","journal-title":"J. Object Technol."},{"key":"ref_123","unstructured":"Kindler, E., and Shasha, D. (2000). Technical Report, New York University."},{"key":"ref_124","unstructured":"Lopatkin, I., Iliasov, A., Romanovsky, A.B., Prokhorova, Y., and Troubitsyna, E. (2008, January 3\u20135). Patterns for Representing FMEA in Formal Specification of Control Systems. Proceedings of the HASE\u201911, Nanjing, China."},{"key":"ref_125","unstructured":"Scott, J., and Kazman, R. (2009). Technical Report, Software Engineering Institute, Carnegie Mellon University."},{"key":"ref_126","doi-asserted-by":"crossref","unstructured":"Harrison, N., Avgeriou, P., and Zdun, U. (2010, January 13\u201316). On the Impact of Fault Tolerance Tactics on Architecture. Proceedings of the ACM SERENE 2010, London, UK.","DOI":"10.1145\/2401736.2401738"},{"key":"ref_127","unstructured":"Wu, W., and Kelly, T. (2004, January 28\u201330). Safety tactics for software architecture design. Proceedings of the 28th Annual International Conference of Computer Software and Applications, Hong Kong, China."},{"key":"ref_128","doi-asserted-by":"crossref","unstructured":"Hawkins, R., Clegg, K., Alexander, R., and Kelly, T. (2011, January 19\u201322). Using a Software Safety Argument Pattern Catalogue: Two Case Studies. Proceedings of the SAFECOMP, Naples, Italy.","DOI":"10.1007\/978-3-642-24270-0_14"},{"key":"ref_129","unstructured":"De Oliveira, A.L., Braga, R.T.V., Masiero, P.C., Habli, I., and Kelly, T. (2014, January 9\u201312). A pattern to argue the compliance of system safety requirements decomposition. Proceedings of the 10th Conference on Pattern Languages of Programs (SugarLoafPLoP), Sagadi Manor, Estonia."},{"key":"ref_130","doi-asserted-by":"crossref","unstructured":"Ayoub, A., Kim, B.G.I., and Sokolsky, O. (2012, January 3\u20135). A safety case pattern for model-based development approach. Proceedings of the NASA Formal Methods Symposium, Norfolk, VA, USA.","DOI":"10.1007\/978-3-642-28891-3_14"},{"key":"ref_131","unstructured":"Gleirscher, M., and Kugele, S. (2019). Assurance of system safety: A survey of design and argument patterns. arXiv."},{"key":"ref_132","unstructured":"Holzner, S. (2023, July 13). Design Patterns: Simply. Available online: http:\/\/sourcemaking.com\/design_patterns\/mediator."},{"key":"ref_133","unstructured":"(2023, July 12). Circuit Breaker Pattern. Available online: https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/patterns\/circuit-breaker."},{"key":"ref_134","doi-asserted-by":"crossref","first-page":"3435","DOI":"10.1109\/TNS.2008.2005583","article-title":"Self-voting dual-modular-redundancy circuits for single event transient mitigation","volume":"55","author":"Teifel","year":"2008","journal-title":"Proc. IEEE Trans. Nucl. Sci."},{"key":"ref_135","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1109\/L-CA.2008.12","article-title":"DDMR: Dynamic and Scalable Dual Modular Redundancy with Short Validation Intervals","volume":"7","author":"Golander","year":"2008","journal-title":"Proc. IEEE Comput. Archit. Lett."},{"key":"ref_136","unstructured":"(2023, July 13). Microsoft, Failover Cluster. Available online: https:\/\/docs.microsoft.com\/en-us\/previous-versions\/msp-n-p\/ff650328(v=pandp.10)."},{"key":"ref_137","unstructured":"Nierstrasz, O. (2023, July 14). Safety Patterns. Available online: https:\/\/sgb.unibe.ch\/download\/cp\/04SafetyPatterns.pdf."},{"key":"ref_138","unstructured":"Gamoke, R. Pattern: Leaky Bucket Counters. Available online: https:\/\/www.researchgate.net\/publication\/242361940_Fault-tolerant_telecommunication_system_patterns."},{"key":"ref_139","unstructured":"Kalinsky, D. (2023, July 13). Design Patterns for High Availability. Available online: https:\/\/www.design-reuse.com\/articles\/3671\/design-patterns-for-high-availability.html."},{"key":"ref_140","unstructured":"(2023, July 13). IBM, Non-Functional Requirements: High Availability: Runtime Patterns. Available online: http:\/\/www.ibm.com\/developerworks\/patterns\/edge\/at1-runtime.html."},{"key":"ref_141","first-page":"889","article-title":"Microcomputer Reliability Improvement Using Triple Modular Redundancy","volume":"64","author":"Wakerly","year":"1976","journal-title":"IEEE Trans. Comput."},{"key":"ref_142","doi-asserted-by":"crossref","unstructured":"Laverdiere, M., Mourad, A., Hanna, A., and Debbabi, M. (2006, January 7\u201310). Security design patterns: Survey and evaluation. Proceedings of the Canadian Conference on Electrical and Computer Engineering (CCECE\u201906), Ottawa, ON, Canada.","DOI":"10.1109\/CCECE.2006.277727"}],"container-title":["Computers"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2073-431X\/12\/10\/214\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T21:09:43Z","timestamp":1760130583000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2073-431X\/12\/10\/214"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,10,21]]},"references-count":142,"journal-issue":{"issue":"10","published-online":{"date-parts":[[2023,10]]}},"alternative-id":["computers12100214"],"URL":"https:\/\/doi.org\/10.3390\/computers12100214","relation":{},"ISSN":["2073-431X"],"issn-type":[{"value":"2073-431X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,10,21]]}}}