Understanding Z: a specification language and its formal semantics
Understanding Z: a specification language and its formal semantics
The Z notation: a reference manual
The Z notation: a reference manual
An analysis of defect densities found during software inspections
Journal of Systems and Software
Logic and discrete mathematics: a computer science perspective
Logic and discrete mathematics: a computer science perspective
Introduction to the personal software process
Introduction to the personal software process
Z: An Introduction to Formal Methods
Z: An Introduction to Formal Methods
Toward Zero-Defect Programming
Toward Zero-Defect Programming
Experiences in applying formal methods to the analysis of software and system requirements
WIFT '95 Proceedings of the 1st Workshop on Industrial-Strength Formal Specification Techniques
An Elementary Tutorial on Formal Specification and Verification Using PVS
An Elementary Tutorial on Formal Specification and Verification Using PVS
Hi-index | 0.00 |
Accurate and complete requirements specifications are crucial for the design and implementation of high-quality software. Unfortunately, the articulation and verification of software system requirements remains one of the most difficult and error-prone tasks in the software development lifecycle. The use of formal methods, based on mathematical logic and discrete mathematics, holds promise for improving the reliability of requirements articulation and modeling. However, formal modeling and reasoning about requirements has not typically been a part of the software analyst's education and training, and because the learning curve for the use of these methods is nontrivial, adoption of formal methods has proceeded slowly. As a consequence, technology transfer is a significant issue in the use of formal methods. In this paper, several efforts undertaken at NASA aimed at increasing the accessibility of formal methods are described. These include the production of the following: two NASA guidebooks on the concepts and applications of formal methods, a body of case studies in the application of formal methods to the specification of requirements for actual NASA projects, and course materials for a professional development course introducing formal methods and their application to the analysis and design of software-intensive systems. In addition, efforts undertaken at two universities to integrate instruction on formal methods based on these NASA materials into the computer science and software engineering curricula are described.