TL;DR: Formal methods used in developing computer systems are defined, and their role is delineated, and certain pragmatic concerns about formal methods and their users, uses, and characteristics are discussed.
Abstract: Formal methods used in developing computer systems (i.e. mathematically based techniques for describing system properties) are defined, and their role is delineated. Formal specification languages, which provide the formal method's mathematical basis, are examined. Certain pragmatic concerns about formal methods and their users, uses, and characteristics are discussed. Six well-known or commonly used formal methods are illustrated by simple examples. They are Z, VDM, Larch, temporal logic, CSP, and transition axioms. >
TL;DR: The USE specification as discussed by the authors is a formal executable description of the user interaction with the system, based on augmented state transition diagrams, which is a methodology for the specification and implementation of interactive information systems.
Abstract: User Software Engineering is a methodology for the specification and implementation of interactive information systems. An early step in the methodology is the creation of a formal executable description of the user interaction with the system, based on augmented state transition diagrams. This paper shows the derivation of the USE transition diagrams based on perceived shortcomings of the "pure" state transition diagram approach. In this way, the features of the USE specification notation are gradually presented and illustrated. The paper shows both the graphical notation and the textual equivalent of the notation, and briefly describes the automated tools that support direct execution of the specification.
TL;DR: This chapter introduces Z, a system of formal methods for modelling large systems and their applications, and discusses program derivation and formal verification, and its applications in rule-based and object-oriented programming.
Abstract: This 1997 book is a self-contained tutorial on Z, a formal notation for modelling, specifying and designing computer systems and software, for experienced professionals and serious students in programming and software engineering. It presents realistic case studies emphasising safety-critical systems, with examples drawn from embedded controls, real-time and concurrent programming, computer graphics, games, text processing, databases, artificial intelligence, and object-oriented programming. It motivates the use of formal methods and discusses practical issues concerning how to apply them in real projects. It also teaches how to apply formal program derivation and verification to implement Z specifications in real programming languages with examples in C. The book includes exercises with solutions, reference materials, and a guide to further reading.
TL;DR: The B Language and Method provides a comprehensive introduction to the B Abstract Machine Notation, and how it can be used to support formal specification and development of high integrity systems.
Abstract: From the Publisher:
B is a formal approach to software specification and development based on the Z specification language. It has been successfully applied in industry, and has robust, commercially available tool support for the entire development lifecycle, from specification through to code generation. The B Language and Method provides a comprehensive introduction to the B Abstract Machine Notation, and how it can be used to support formal specification and development of high integrity systems. Beginning with a discussion of the history of B, it builds up a description of the notation from the basic mathematical notation for sets and sequences, through to the structuring mechanisms of the language, and how it supports "programming in the large". Particular emphasis is placed on the use of B in the context of existing software development methods, including object-oriented analysis and design. Specifically designed to support the teaching of B at undergraduate and postgraduate level, the text includes a large number of worked examples and graduated exercises in B AMN specification. It also includes two extended case studies of the development process, and an appendix of proof techniques suitable for B.