A Review of Formal Methods

A New Report from the DACS

Technical reports addressing a variety of software engineering topics are available from the DACS. Our newest report, A Review of Formal Methods, examines a topic of increasing interest, formal methods. Formal methods provide a foundation for many of the techniques that have changed the face of software development over the last two decades. Structured programming, top down development, abstract data types, rapid prototyping, object oriented design, and formal inspections all draw on formal methods.

Formal methods imply a distinctive view of software development. According to this view, the software engineer's task is to produce several models or descriptions of a system for an abstract machine, with accompanying proofs that models at lower levels of abstraction correctly implement higher-level models. The job of the hardware engineer, language designer, and compiler writer is to provide a realization suitable for executing the applications developer's abstract model, but it is not the application programmer's job to twist his logic to fit inadequate physical automata. Only this idealized design process can ensure high levels of quality, not testing. Testing can demonstrate the presence of faults, not their absence.


Use these buttons to move between newsletter articles or to navigate to the DACS Home Page.