Lookup NU author(s): Professor Cliff Jones
Full text for this publication is not currently held within this repository. Alternative links are provided below where available.
Hardware and software systems will inevitably grow in scale and functionality. Because of this increase in complexity, the likelihood of subtle errors is much greater. Moreover, some of these errors may cause catastrophic loss of money, time, or even human life. A major goal of software engineering is to enable developers to construct systems that operate reliably despite this complexity. One way of achieving this goal is by using formal methods, which are mathematically based languages, techniques, and tools for specifying and verifying such systems. Use of formal methods does not a priori guarantee correctness. However, they can greatly increase our understanding of a system by revealing inconsistencies, ambiguities, and incompleteness that might otherwise go undetected. The first part of this report assesses the state of the art in specification and verification. For verification, we highlight advances in model checking and theorem proving. In the three sections on specification, model checking, and theorem proving, we explain what we mean by the general technique and briefly describe some successful case studies and well-known tools. The second part of this report outlines future directions in fundamental concepts, new methods and tools, integration of methods, and education and technology transfer. We close with summary remarks and pointers to resources for more information.
Author(s): Clarke EM, Wing JM, et al
Publication type: Article
Publication status: Published
Journal: ACM Computing Surveys
Print publication date: 01/01/1996
ISSN (print): 0360-0300
Notes: Cliff Jones was a member of the Working Group who prepared this report.
Altmetrics provided by Altmetric