The industrial use of formal methods

Abstract Building safety-critical computer systems is a complex engineering task, requiring deep understanding of the application requirement and rigorous control over the development process if the resulting system is to be trustworthy. Universally, engineers use mathematically based methods to describe their systems, to explore possible behaviours, to guide design decisions and to verify that safety constraints have been met. Formal methods are the mathematics for computer systems development, and software and hardware engineers are increasingly recognizing the power of formal methods in helping to achieve dependable systems. This paper explains what formal methods are, with examples, and describes their current and future role in safety-critical systems.