Linking Object-Z with Spec#

  • Authors:
  • Shengchao Qin;Guanhua He

  • Affiliations:
  • Durham University, UK;Durham University, UK

  • Venue:
  • ICECCS '07 Proceedings of the 12th IEEE International Conference on Engineering Complex Computer Systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Formal specifications have been a focus of software engineering research for many years and have been applied in a wide variety of settings. Their use in software engineering not only promotes high-level verification via theorem proving or model checking, but also inspires the "correct-by-construction" approach to software development via formal refinement. Although this correct-by-construction method proves to work well for small software systems, it is still a utopia in the development of large and complex software systems. This paper moves one step forward in this direction by designing and implementing a sound linkage between the high level specification language Object-Z and the object-oriented specification language Spec#. Such a linkage would allow system requirements to be specified in a high-level formal language but validated and used in program language level. This linking process can be readily integrated with an automated program refinement procedure to achieve correctness-by-construction. In case no such procedures are applicable, the obtained contract-based specification can guide programmers to manually generate program code, which can then be verified against the obtained specification using any available program verifiers.