Author(s): Iliasov A, Romanovsky A
Abstract: This paper proposes to use fault tolerance refinement patterns to assist system developers in disciplined application of software fault tolerance mechanisms during rigorous system design. Two patterns, that help correctly introduce recovery blocks and N-version programming into a system model, are developed, formally defined and their correctness is proven. Several important issues in engineering systems using these patterns, including tool support and pattern composition, are discussed.
Keywords: formal system development, software fault tolerance, patterns, recovery blocks, N-version