Early detection of JML specification errors using ESC/Java2

  • Authors:
  • Patrice Chalin

  • Affiliations:
  • Concordia University, Montréal, Québec, Canada

  • Venue:
  • Proceedings of the 2006 conference on Specification and verification of component-based systems
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.