IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Automatically closing open reactive programs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Filter-based model checking of partial systems
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Property specification patterns for finite-state verification
FMSP '98 Proceedings of the second workshop on Formal methods in software practice
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Using predicate abstraction to reduce object-oriented programs for model checking
FMSP '00 Proceedings of the third workshop on Formal methods in software practice
Communicating sequential processes
Communications of the ACM
A note on reliable full-duplex transmission over half-duplex links
Communications of the ACM
Slicing Software for Model Construction
Higher-Order and Symbolic Computation
Telecommunications Systems Engineering Using SDL
Telecommunications Systems Engineering Using SDL
Model Checking Large Software Specifications
IEEE Transactions on Software Engineering
Validating SDL Specifications: an Experiment
Proceedings of the IFIP WG6.1 Ninth International Symposium on Protocol Specification, Testing and Verification IX
Simple on-the-fly automatic verification of linear temporal logic
Proceedings of the Fifteenth IFIP WG6.1 International Symposium on Protocol Specification, Testing and Verification XV
Logic Verification of ANSI-C Code with SPIN
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Formal Methods at AT&T - An Industrial Usage Report
FORTE '91 Proceedings of the IFIP TC6/WG6.1 Fourth International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols: Formal Description Techniques, IV
VeriSoft: A Tool for the Automatic Analysis of Concurrent Reactive Software
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Abstraction in Software Model Checking: Principles and Practice (Tutorial Overview and Bibliography)
Proceedings of the 9th International SPIN Workshop on Model Checking of Software
Evaluating and improving the automatic analysis of implicit invocation systems
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Verifying linear time temporal logic properties of concurrent Ada programs with quasar
Proceedings of the 2003 annual ACM SIGAda international conference on Ada: the engineering of correct and reliable software for real-time & distributed systems using ada and related technologies
Verifying Time Partitioning in the DEOS Scheduling Kernel
Formal Methods in System Design
A compositional behavioral modeling framework for embedded system design and conformance checking
International Journal of Parallel Programming
McErlang: a model checker for a distributed functional programming language
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Regression Verification - A Practical Way to Verify Programs
Verified Software: Theories, Tools, Experiments
From Model Driven Engineering to Verification Driven Engineering
SEUS '08 Proceedings of the 6th IFIP WG 10.2 international workshop on Software Technologies for Embedded and Ubiquitous Systems
Recent improvements to the McErlang model checker
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
An experience in embedded control software verification
ETFA'09 Proceedings of the 14th IEEE international conference on Emerging technologies & factory automation
Quasar: a new tool for concurrent Ada programs analysis
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Symbiosis of static analysis and program testing
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
Model checking industrial robot systems
Proceedings of the 18th international SPIN conference on Model checking software
Effective bug hunting with spin and modex
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Hi-index | 0.00 |
Software verification methods are used only sparingly in industrial software development today. The most successful methods are based on the use of model checking. There are, however, many hurdles to overcome before the use of model checking tools can truly become mainstream. To use a model checker, the user must first define a formal model of the application, and to do so requires specialized knowledge of both the application and of model checking techniques. For larger applications, the effort to manually construct a formal model can take a considerable investment of time and expertise, which can rarely be afforded. Worse, it is hard to secure that a manually constructed model can keep pace with the typical software application, as it evolves from the concept stage to the product stage. In this paper, we describe a verification method that requires far less specialized knowledge in model construction. It allows us to extract models mechanically from source code. The model construction process now becomes easily repeatable, as the application itself continues to evolve. Once the model is constructed, existing model checking techniques allow us to perform all checks in a mechanical fashion, achieving nearly complete automation. The level of thoroughness that can be achieved with this new type of software testing is significantly greater than for conventional techniques. We report on the application of this method in the verification of the call processing software for a new telephone switch that was recently developed at Lucent Technologies.