Verified Software: Theories, Tools, Experiments: First IFIP TC 2/WG 2.3 Conference, VSTTE 2005, Zurich, Switzerland, October 10-13, 2005, Revised Selected Papers and Discussions

Front Cover
Bertrand Meyer, Jim Woodcock
Springer, Jun 29, 2008 - Computers - 546 pages
A Step Towards Verified Software Worries about the reliability of software are as old as software itself; techniques for allaying these worries predate even James King’s 1969 thesis on “A program verifier. ” What gives the whole topic a new urgency is the conjunction of three phenomena: the blitz-like spread of software-rich systems to control ever more facets of our world and our lives; our growing impatience with deficiencies; and the development—proceeding more slowly, alas, than the other two trends—of techniques to ensure and verify software quality. In 2002 Tony Hoare, one of the most distinguished contributors to these advances over the past four decades, came to the conclusion that piecemeal efforts are no longer sufficient and proposed a “Grand Challenge” intended to achieve, over 15 years, the production of a verifying compiler: a tool that while processing programs would also guarantee their adherence to specified properties of correctness, robustness, safety, security and other desirable properties. As Hoare sees it, this endeavor is not a mere research project, as might normally be carried out by one team or a small consortium of teams, but a momentous endeavor, comparable in its scope to the successful mission to send a man to the moon or to the sequencing of the human genome.
 

Contents

Theories Tools Experiments Vision of a Grand Challenge Project
1
Towards a Worldwide Verification Technology
19
It Is Time to Mechanize Programming Language Metatheory
26
Methods and Tools for Formal Software Engineering
31
A Call for a Holistic Approach to Reliability
42
Build a Verifiable Filesystem
49
A Constructive Approach to Correctness Exemplified by a Generator for Certified Java Card Applets
57
Some Interdisciplinary Observations about Getting the Right Specification
64
Eiffel as a Framework for Verification
301
Can We Build an Automatic Program Verifier? Invariant Proofs and Other Challenges
308
The Real Grand Challenge
318
Linking the Meaning of Programs to What the Compiler Can Verify
325
Scalable Software Model Checking Using Design for Verification
337
ModelChecking Software Using Precise Abstractions
347
Toasters Seat Belts and Inferring Program Properties
354
On the Formal Development of SafetyCritical Software
362

Software Verification and Software Engineeringa Practitioners Perspective
70
Decomposing Verification Around EndUser Features
74
Automatic Verification of Strongly Dynamic Software Systems
82
Reasoning about Object Structures Using Ownership
93
Modular Reasoning in ObjectOriented Programming
105
Challenges for Program Logic
116
Lessons from the JML Project
134
Challenges and Directions
144
Supporting Multiple Theories and Provers in Verification
153
Automated Test Generation and Verified Software
161
Dependent Types Theorem Proving and Applications for a Verifying Compiler
173
Generating Programs Plus Proofs by Refinement
182
The Verification Grand Challenge and Abstract Interpretation
189
What You See Is NotWhat You eXecute
202
Implications of a Data Structure Consistency Checking System
214
Towards the Integration of Symbolic and Numerical Static Analysis
227
Defect Prevention Detection and Containment
237
Trends and Challenges in Algorithmic Softwar eVerification
245
Back and Forth between Hardware and Software
251
Computational Logical Frameworks and Generic Program Analysis Technologies
256
A Mechanized Program Verifier
268
Verifying Design with Proof Scores
277
Integrating Theories and Techniques for Program Modelling Design and Verification Positioning the Research at UNUIIST in Collaborative Research...
291
Verify Your Runs
374
Specified Blocks
384
A Case for Specification Validation
392
Some Verification Issues at NASA Goddard Space Flight Center
403
Performance Validation on Multicore Mobile Devices
413
Tool Integration for Reasoned Programming
422
Decision Procedures for the Grand Challenge
428
The Challenge of HardwareSoftware Coverification
438
From the How to the What
448
An Overview of Separation Logic
460
A Perspective on Program Verification
470
MetaLogical Frameworks and Formal Digital Libraries
478
Languages Ambiguity and Verification
486
The Importance of Nontheorems and Counterexamples in Program Verification
491
Regression Verification A Practical Way to Verify Programs
496
LanguageBased Approaches to Totally Correct Software
502
The Role of ModelBased Testing
510
Abstraction of Graph Transformation Systems by Temporal Logic and Its Verification
518
Program Verification by Using DISCOVERER
528
Constraint Solving and Symbolic Execution
539
Author Index
545
Copyright

Other editions - View all

Common terms and phrases

Bibliographic information