Science

Since the 1930s mathematical logicians have studied computational processes as mathematical objects. Since the 1950s computer scientists have studied computational processes and the programs that represent them. Basic research in these areas has included

Technology

On the basis of this science and mathematics, a technology has gradually developed for increasing the reliability of hardware and software by
  1. verifying that they meet their specifications
  2. systems for interactively going from the specifications to programs and hardware that meet them.

Present State of the Art

Here goes a list of a few exemplary applications -- Boyer and Moore (CLINC), Rushby , ORA ...

Some WWW pages related to Formal Methods

A Database of Automated Reasoning Systmes maintained by Carolyn Talcott.

A Formal Methods Page maintained by Jonathon Bowen.

Future Directions

Application developers and software engineers must deal with complex software systems, not just single isolate programs. They are often distributed, and composed of heterogeneous parts. They evolve over time, and must function in environment over which they have no control. New formal methods are needed to address problems of scaling, provide the ability to use partial information, and combine methods based on widely varying formalism, addressing different aspects of specification and analysis.