C. Alexander, “A Pattern Language: Towns, Buildings, Construction,” New York: Oxford University Press, 1977.
E. Gama, R. Helm, R. Johnson, and J. Vlissides, “Design patterns: Element of reusable object-oriented software,” New York: Addison-Wesley, 1997.
IEC61508 Functional safety for electrical/electronic/ pro-grammable electronic safety-related systems, International Electrotechnical Commission, 1998.
 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.
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.
P. Coad, “Object-oriented patterns,” Communications of the ACM, Vol. 35, pp. 152-159, 1992.
 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.
 J. Coplien, “Idioms and patterns as architectural literature,” IEEE Software, Vol. 14, pp. 36-42, 1997.
B. Appleton. “Patterns and software: Essential concept and terminology,” available at .
B. P. Douglass, “Doing hard time: Developing real-time system with UML, objects, frameworks, and pattern,” New York: Addison-Wesley, 1999.
B. P. Douglass, “Real-time design patterns,” New York: Addison-Wesley, 2003.
D. Gross and E. Yu, “From non-functional requirements to design through patterns,” Requirements Engineering, Vol. 6, No. 1, pp. 18-36, 2002.
 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.
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.
 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.
 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.
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.
 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.
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.
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.
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.
A. Athavale, “Performance evaluation of hybrid voting schemes,” M. S. thesis, North Carolina State University, Department of Computer Science, 1989.
 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.
N. Storey, “Safety-Critical Computer Systems,” Boston: Addison-Wesley, 1996.
 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.
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.
Y. W. Leung, “Maximum likelihood voting for fault- tolerant software with finite output space,” IEEE Transac-tions on Reliability, Vol. 44, No. 3, 1995.
 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.
B. Parhami, “Voting algorithms,” IEEE Transactions on Reliability, Vol. 43, pp. 617-629, 1994.
I. Koren and C. M. Krishna, “Fault-tolerant systems,” Elsevier, 2007.
A. Avizienis, “The N-version approach to fault-tolerant software,” IEEE Transactions on Software Engineering, Vol. 11, No. 12, pp. 1491-1501, 1985.
 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.
M. Lyu, “Handbook of software reliability engineering,” New York: McGraw-Hill and IEEE Computer Society Press, 1996.
A. Avizienis, “The methodology of N-version programming,” in Software Fault Tolerance, M. Lyu, Ed. New York: Wiley, pp. 23-46, 1995.
 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.
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.
B. Littlewood and D. R. Miller, “Conceptual modeling of coincident failures in multiversion software,” IEEE Transactions on Software Engineering, 1989.
 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.
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.
 B. Littlewood, P. Popov and L. Strigini, “A note on modeling functional diversity,” in Reliability Engineering and System Safety, 1999.
 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.
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.