Dynamically Detecting Faults via Integrity Constraints

  • Authors:
  • Ian J. Hayes

  • Affiliations:
  • School of Information Technology and Electrical Engineering, University of Queensland, Brisbane, Australia

  • Venue:
  • Methods, Models and Tools for Fault Tolerance
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

Control programs for safety-critical systems are required to tolerate faults in the devices they control. In this paper we examine a systematic approach to devising code to detect faulty devices at runtime. The approach is centred around the use of integrity constraints , which are invariants on the state of a system's variables, including its inputs and outputs. Under normal operation integrity constraints should always hold, but they are designed to fail to hold if there is a fault. By adding variables to capture the previous state of variables or the time of significant events, additional integrity constraints can be devised to check for faults in state transitions or faults with the rate of progress of the system. We discuss techniques for devising integrity constraints as well as efficiently evaluating the constraints. When an error is detected via the failure of an integrity constraint, the integrity constraint(s) that failed can help diagnose the likely fault. The techniques are presented by way of a simple case study of controller software written in the action system style, but the approach is equally applicable to other state machine approaches such as Event-B and TLA.