Title: The Reliable Hybrid Pattern - A Generalized Fault Tolerant Software Design Pattern Authors: Fonda Daniels (Dept. of Electrical & Computer Engineering, Box 7911) Kalhee Kim and Mladen A. Vouk (Dept. of Computer Science, Box 8206) North Carolina State University, Raleigh, NC 27695 Contact author: Fonda Daniels Dept. of Electrical & Computer Engineering, Box 7911 Raleigh NC, 27695-7911 919-515-7479 email: fjdaniel@eos.ncsu.edu Key Words: Reliable hybrid pattern, fault tolerant software, N-Version Programming (NVP), Recovery Block (RB), Consensus Recovery Block (CRB), Maximum Likelihood Voting (MLV), Consensus Voting (CV), Acceptance Voting (AV), N-Self Checking Programming (NSCP), Expedient Voting (EV) Abstract In order to make object-oriented software applications more reliable, it may be necessary to incorporate into them a strategy for tolerating software faults. In the case of critical applications, this is essential. In this paper we describe a general pattern, which we call the Hybrid pattern, that can be used to design fault tolerant software applications. The pattern supports development of applications based on classical fault tolerant strategies such as N-Version Programming (NVP) and Recovery Block (RB), as well as those based on advanced hybrid techniques such as Consensus Recovery Block (CRB), Acceptance Voting (AV), N-Self Checking Programming (NSCP) and Expedient Voting (EV). The Hybrid pattern reflects that these advanced strategies can be constructed through recursive combination of NVP, RB, and hybrid components. Our pattern also explicitly indicates how different advanced software voting techniques fit into the design structure. We use CRB to illustrate the behavior of the designs that can be constructed using the Hybrid pattern.