Patterns for Functional Safety System Development

  • Jari RauhamäkiEmail author
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10600)


Functional safety is involved in many machines, processes, and systems to mitigate risks by reducing the likelihood of the occurrence or the severity of the consequences of a hazard. The development of functional safety systems realising safety functions is typically directed by laws and standards, which set requirements on the development process and design of the system. In addition, functional safety systems often operate in a context, in which other control entities also affect the operation of the system under control. In this article, nine patterns considering the design and development functional safety systems, in terms of their architecture and co-operation with other controlling entities, are presented. The purpose of the patterns is to support the designers of functional safety systems to cope with the mentioned aspects.


Safety function Safety-related Control Architecture Pattern 



The patterns presented in this article have originally been published in [41] and [24], and a grant to reuse the content has been kindly provided by VikingPLoP 2012 and 2013 organizers. The publications were written in co-operation with Timo Vepsäläinen and Seppo Kuikka.

The authors would like to thank the people who have helped us with these patterns. The authors would like to thank VikingPLoP 2012 members: Veli-Pekka Eloranta, Ville Reijonen, Dirk Schnelle-Walka, and Joonas Salo and especially our shepherd Farah Lakhani for their valuable feedback in the VikingPLoP 2012.

In addition, with no less importance, the authors would like to thank the workshop group members in the VikingPLoP 2013: Samuel Lehtinen, Christopher Preschern, Johannes Koskinen, Pekka Alho, Marko Leppänen, Stefan Radomski, Ville Reijonen, and Veli-Pekka Eloranta and especially our shepherd Dirk Schnelle-Walka for their valuable feedback and input to improve the patterns and the paper.


  1. 1.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)zbMATHGoogle Scholar
  2. 2.
    Freeman, E., Freeman, E., Sierra, K., Bates, B.: Head First Design Patterns. O’Reilly, Newton (2004)Google Scholar
  3. 3.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerland, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. Wiley, Hoboken (1996)Google Scholar
  4. 4.
    Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. Wiley, New York (2000)zbMATHGoogle Scholar
  5. 5.
    Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Professional, Boston (2003)Google Scholar
  6. 6.
    Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, Boston (2002)Google Scholar
  7. 7.
    Erl, T.: SOA Design Patterns. Prentice Hall, Upper Saddle River (2009)Google Scholar
  8. 8.
    Eloranta, V.-P., Koskinen, J., Leppänen, M., Reijonen, V.: Designing Distributed Control Systems: A Pattern Language Approach. Wiley, Sussex (2014)Google Scholar
  9. 9.
    Hanmer, R.S.: Patterns for Fault Tolerant Software. Wiley, Chichester (2007)Google Scholar
  10. 10.
    Douglass, B.P.: Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns. Addison-Wesley, Boston (1999)Google Scholar
  11. 11.
    Armoush, A.: Design patterns for safety-critical embedded systems (2010).
  12. 12.
    Alho, P., Rauhamäki, J.: Patterns for light-weight fault tolerance and decoupled design in distributed control systems. In: Noble, J., et al. (eds.) TPLOP IV. LNCS, vol. 10600, pp. 1–21. Springer, Heidelberg (2019)Google Scholar
  13. 13.
    Preschern, C., Kajtazovic, N., Kreiner, C.: Building a safety architecture pattern system. In: Proceedings of the 18th European Conference on Pattern Languages of Program, EuroPLoP 2013 (2015)Google Scholar
  14. 14.
    Koskinen, J., Vuori, M., Katara, M.: Safety process patterns: demystifying safety standards. In: 2012 IEEE International Conference on Software Science, Technology and Engineering, pp. 63–71. IEEE Computer Society (2012)Google Scholar
  15. 15.
    Douglass, B.P.: Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Addison-Wesley, Boston (2003)Google Scholar
  16. 16.
    Gomaa, H.: Real-Time Software Design for Embedded Systems. Cambridge University Press, Cambridge (2016)CrossRefGoogle Scholar
  17. 17.
    Zalewski, J.: Real-time software architectures and design patterns: fundamental concepts and their consequences. Ann. Rev. Control 25, 133–146 (2001)CrossRefGoogle Scholar
  18. 18.
    Pont, M.J.: Patterns for Time-Triggered Embedded Systems: Building Reliable Applications with the 8051 Family of Microcontrollers. Addison-Wesley, New York (2001)Google Scholar
  19. 19.
    Sanz, R., Zalewski, J.: Pattern-based control systems engineering - using design patterns to document, transfer, and exploit design knowledge. IEEE Control Syst. Mag. 23, 43–60 (2003)CrossRefGoogle Scholar
  20. 20.
    Electrotechnical Commission: IEC 61508:2010 - Functional safety of electrical/electronic/programmable electronic safety-related systems (2010)Google Scholar
  21. 21.
    International Organization for Standardization: EN ISO 13849-1 - Safety of machinery, safety-related parts of control systems, part 1: general principles for design (2006)Google Scholar
  22. 22.
    Rauhamäki, J., Vepsäläinen, T.: Functional Safety System Designer’s Handbook - Design Patterns for Safety System Development. Forum for Intelligent Machines. Internal report (2016)Google Scholar
  23. 23.
    Buschmann, F., Henney, K., Schmidt, D.C.: Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing, vol. 4. Wiley, Chichester (2007)Google Scholar
  24. 24.
    Rauhamäki, J., Kuikka, S.: Patterns for control system safety. In: Proceedings of the 18th European Conference on Pattern Languages of Program, EuroPLoP 2013 (2015)Google Scholar
  25. 25.
  26. 26.
  27. 27.
  28. 28.
  29. 29.
  30. 30.
  31. 31.
  32. 32.
    Dorf, R.C., Bishop, R.H.: Modern Control Systems. Pearson Education, Upper Saddle River (2005)zbMATHGoogle Scholar
  33. 33.
    Smith, C.L.: Distillation Control: An Engineering Perspective. Wiley, Hoboken (2012)CrossRefGoogle Scholar
  34. 34.
    Rockwell Automation: Bul. 440R—Guardmaster® Safety Relays. Publication 440R-SG001C-EN-P (2012).
  35. 35.
  36. 36.
    Hauke, M., et al.: Functional Safety of Machine Controls: Application of EN ISO 13849. DGUV, Berlin (2009)Google Scholar
  37. 37.
    Bittner, C., et al.: The Safety Compendium. Pilz (2013).
  38. 38.
    Apfeld, R., Zilligen, H., Köhler, B.: Safe Drive Controls with Frequency Converters (IFA Report 7/2013e). DGUV, Berlin (2014)Google Scholar
  39. 39.
    Bartley, G.F.: Boeing B-777: fly-by- wire flight controls. In: Spitzer, C.R. (ed.) The Avionics Handbook. CRC Press, Boca Raton (2001)Google Scholar
  40. 40.
    Falkena, W., Borst, C., Chu, Q.P., Mulder, J.A.: Investigation of practical flight envelope protection systems for small aircraft. J. Guid. Control Dyn. 34, 976–988 (2011)CrossRefGoogle Scholar
  41. 41.
    Rauhamäki, J., Vepsäläinen, T., Kuikka, S.: Functional safety system patterns. In: Eloranta, V.-P., Koskinen, J., Leppänen, M. (eds.) Proceedings of VikingPloP 2012 Conference, pp. 48–68. Tampere University of Technology (2012)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Department of Automation Science and EngineeringTampere University of TechnologyTampereFinland

Personalised recommendations