A three-valued logic for software specification and validation
Proceedings of the 2nd VDM-Europe Symposium on VDM---The Way Ahead
The Z notation: a reference manual
The Z notation: a reference manual
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Non-deterministic expressions and predicate transformers
Information Processing Letters
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Computer
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Checking Java Programs via Guarded Commands
Proceedings of the Workshop on Object-Oriented Technology
Predicative Programming - A Survey
Proceedings of the International Conference on Formal Methods in Programming and Their Applications
High Integrity Software: The SPARK Approach to Safety and Security
High Integrity Software: The SPARK Approach to Safety and Security
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Logical Foundations of Program Assertions: What do Practitioners Want?
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
A Sound Assertion Semantics for the Dependable Systems Evolution Verifying Compiler
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Reachability analysis for annotated code
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
Status report on JSR-305: annotations for software defect detection
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Reusing a JML Specification Dedicated to Verification for Testing, and Vice-Versa: Case Studies
Journal of Automated Reasoning
Hi-index | 0.00 |
The earlier errors are found, the less costly they are to fix. This also holds true of errors in specifications. While research into Static Program Verification (SPV) in general, and Extended Static Checking (ESC) in particular, has made great strides in recent years, there is little support for detecting errors in specifications beyond ordinary type checking. This paper reports on recent enhancements that we have made to ESC/Java2, enabling it to report errors in JML specifications due to (method or Java operator) precondition violations and this, at a level of diagnostics that is on par with its ability to report such errors in program code. The enhancements also now make it possible for ESC/Java2 to report errors in specifications for which no corresponding source is available. Applying this new feature to, e.g., the JML specifications of classes in java.*, reveals over 50 errors, including inconsistencies. We describe the adjustment to the assertion semantics necessary to make this possible, and we provide an account of the (rather small) design changes needed to realize the enhancements.