Design Pattern Representation for Safety-Critical Embedded Systems


Design Patterns, which give abstract solutions to commonly recurring design problems, have been widely used in the software and hardware domain. As non-functional requirements are an important aspect in the design of safety-critical embedded systems, this work focuses on the integration of non-functional implications in an existing design pattern concept. We propose a pattern representation for safety-critical embedded application design methods by including fields for the implications and side effects of the represented design pattern on the non-functional requirements of the overall systems. The considered requirements include safety, reliability, modifiability, cost, and execution time.

Share and Cite:

A. Armoush, F. Salewski and S. Kowalewski, "Design Pattern Representation for Safety-Critical Embedded Systems," Journal of Software Engineering and Applications, Vol. 2 No. 1, 2009, pp. 1-12. doi: 10.4236/jsea.2009.21001.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] C. Alexander, “A Pattern Language: Towns, Buildings, Construction,” New York: Oxford University Press, 1977.
[2] E. Gama, R. Helm, R. Johnson, and J. Vlissides, “Design patterns: Element of reusable object-oriented software,” New York: Addison-Wesley, 1997.
[3] IEC61508 Functional safety for electrical/electronic/ pro-grammable electronic safety-related systems, International Electrotechnical Commission, 1998.
[4] A. Armoush, F. Salewski, and S. Kowalewski, “Effective pattern representation for safety critical embedded systems,” International Conference on Computer Science and Software Engineering (CSSE 2008), pp. 91-97, 2008.
[5] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal “Pattern-oriented software architecture: A system of patterns,” John Wiley & Sons, Inc., New York, NY, 1996.
[6] P. Coad, “Object-oriented patterns,” Communications of the ACM, Vol. 35, pp. 152-159, 1992.
[7] K. Beck and W. Cunningham, “Using pattern languages for object-oriented programs,” Presented at the OOP-SLA-87 Workshop on Specification and Design for Object-Oriented Programming.
[8] J. Coplien, “Idioms and patterns as architectural literature,” IEEE Software, Vol. 14, pp. 36-42, 1997.
[9] B. Appleton. “Patterns and software: Essential concept and terminology,” available at .
[10] B. P. Douglass, “Doing hard time: Developing real-time system with UML, objects, frameworks, and pattern,” New York: Addison-Wesley, 1999.
[11] B. P. Douglass, “Real-time design patterns,” New York: Addison-Wesley, 2003.
[12] D. Gross and E. Yu, “From non-functional requirements to design through patterns,” Requirements Engineering, Vol. 6, No. 1, pp. 18-36, 2002.
[13] J. Cleland-Huang and D. Schmelzer, “Dynamically tracing non-functional requirements through design pattern invariants,” Workshop on Traceability in Emerging Forms of Software Engineering, in conjunction with IEEE Inter-national Conference on Automated Software Engineering, 2003.
[14] J. Fletcher and J. Cleland-Huang, “Softgoal traceability patterns,” in Proceedings of the 17th IEEE International Symposium on Software Reliability Engineering (ISSRE 2006), pp. 363-374, 2006.
[15] L. Xu, H. Ziv, T. A. Alspaugh, and D. J. Richardson, “An architectural pattern for non-functional dependability requirements,” Journal of Systems and Software, Vol. 79, No. 10, pp. 1370-1378, 2006.
[16] S. Konrad and B. Cheng, “Requirements patterns for embedded systems,” in Proceedings of the IEEE Joint International Requirements Engineering Conference (RE’02), pp. 127-136, 2002.
[17] S. Konrad, B. Cheng, and L. Campbell, “Object analysis patterns for embedded systems,” IEEE Transactions on Software Engineering, Vol. 30, No. 12, pp. 970-992, 2004.
[18] K. Wolf and C. Liu, “New clients with old servers” A Pattern Language for Client/Server Frameworks,” in Pattern Languages of Program Design, J. Coplien and D. Schmidt, Eds. Reading, MA: Addison Wesley, pp. 55-64, 1955.
[19] D. Riehle and H. Züllighoven, “A pattern language for tool construction and integration based on the tools and materials metaphor,” in Pattern Languages of Program Design, J. Coplien and D. Schmidt, Eds. Reading, MA: Addison Wesley, pp. 55-64, 1955.
[20] S. Adams, “Functionality ala carte,” in Pattern Languages of Program Design, J. Coplien and D. Schmidt, Eds. Reading, MA: Addison Wesley, pp. 55-64, 1955.
[21] R. Lajoie and R. K. Keller, “Design and reuse in object- oriented frameworks: Patterns, contracts and motifs in concert,” in Object-Oriented Technology for Database and Software Systems, V. Alagar and R, Missaoui, Eds. Singapore: World Scientific Publishing, pp. 295-312, 1995.
[22] A. Athavale, “Performance evaluation of hybrid voting schemes,” M. S. thesis, North Carolina State University, Department of Computer Science, 1989.
[23] A. Avizienis and L. Chen, “On the implementation of N-version programming for software fault tolerance during execution,” in Proceedings of IEEE COMPSAC 77, pp. 149-155, 1977.
[24] N. Storey, “Safety-Critical Computer Systems,” Boston: Addison-Wesley, 1996.
[25] B. Prahami, “Design of reliable software via general combination of N-Version Programming and Acceptance Testing,” in Proceedings of 7th International Symposium on Software Reliability Engineering ISSRE’96, pp. 104-109, 1996.
[26] D. F. McAllister, C. E. Sun, and M. A. Vouk, “Reliability of voting in fault-tolerant software systems for small out-put spaces,” IEEE Transactions on Reliability, Vol. 39, No. 5, pp. 524-534, 1990.
[27] Y. W. Leung, “Maximum likelihood voting for fault- tolerant software with finite output space,” IEEE Transac-tions on Reliability, Vol. 44, No. 3, 1995.
[28] G. Latif-Shabgahi, J. M. Bass, and S. Bennett, “A taxonomy for software voting algorithms used in safety-critical systems,” IEEE Transactions, Reliability, Vol. 53, No. 3, pp. 319-328, 2004.
[29] B. Parhami, “Voting algorithms,” IEEE Transactions on Reliability, Vol. 43, pp. 617-629, 1994.
[30] I. Koren and C. M. Krishna, “Fault-tolerant systems,” Elsevier, 2007.
[31] A. Avizienis, “The N-version approach to fault-tolerant software,” IEEE Transactions on Software Engineering, Vol. 11, No. 12, pp. 1491-1501, 1985.
[32] F. Daniels, K. Kim and M. A. Vouk, “The reliable hybrid pattern: a generalized software fault tolerant design pattern,” in Conference PloP’97, pp. 1-9, 1997.
[33] M. Lyu, “Handbook of software reliability engineering,” New York: McGraw-Hill and IEEE Computer Society Press, 1996.
[34] A. Avizienis, “The methodology of N-version programming,” in Software Fault Tolerance, M. Lyu, Ed. New York: Wiley, pp. 23-46, 1995.
[35] J. C. Knight and N. G. Leveson, “An experimental evaluation of the assumption of independence in multiversion programming,” IEEE Transactions on Software Engineering, Vol. 12, pp. 96-109, 1986.
[36] F. Salewski, D. Wilking, and S. Kowalewski, “The effect of diverse hardware platforms on n-version programming in embedded systems-an empirical evaluation,” in 3rd Inter-national Workshop on Dependable Embedded Systems (WDES’06), 2006.
[37] B. Littlewood and D. R. Miller, “Conceptual modeling of coincident failures in multiversion software,” IEEE Transactions on Software Engineering, 1989.
[38] J. G. W. Bentley, P. G. Bishop, and M. J. P. van der Meulen, “An empirical exploration of the difficulty function,” in Computer Safety, Reliability and Security (Safe-comp), 2004.
[39] X. Cai and M. R. Lyu, “An empirical study on reliability modeling for diverse software systems,” 15th International Symposium on Software Reliability Engineering (ISSRE), 2004.
[40] B. Littlewood, P. Popov and L. Strigini, “A note on modeling functional diversity,” in Reliability Engineering and System Safety, 1999.
[41] F. Salewski and S. Kowalewski, “Achieving highly reliable embedded software: An empirical evaluation of different approaches,” in Proceeding of 26th International Conference on Computer Safety, Reliability and Security (SAFECOMP’07), pp. 270-275, 2007.
[42] K. Kanoun, M. Kaaniche, C. Beounes, J. C. Laprie, and J. Arlat, “Reliability growth of fault tolerant software,” IEEE Transactions on Reliability, Vol. 42, No. 2, 1993.

Copyright © 2022 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.