Software & Systems Modeling

, Volume 4, Issue 1, pp 32–54

The KeY tool

Integrating object oriented design and formal verification
  • Wolfgang Ahrendt
  • Thomas Baar
  • Bernhard Beckert
  • Richard Bubel
  • Martin Giese
  • Reiner Hähnle
  • Wolfram Menzel
  • Wojciech Mostowski
  • Andreas Roth
  • Steffen Schlager
  • Peter H. Schmitt
Regular Paper

DOI: 10.1007/s10270-004-0058-x

Cite this article as:
Ahrendt, W., Baar, T., Beckert, B. et al. Softw Syst Model (2005) 4: 32. doi:10.1007/s10270-004-0058-x

Abstract

KeY is a tool that provides facilities for formal specification and verification of programs within a commercial platform for UML based software development. Using the KeY tool, formal methods and object-oriented development techniques are applied in an integrated manner. Formal specification is performed using the Object Constraint Language (OCL), which is part of the UML standard. KeY provides support for the authoring and formal analysis of OCL constraints. The target language of KeY based development is Java Card DL, a proper subset of Java for smart card applications and embedded systems. KeY uses a dynamic logic for Java Card DL to express proof obligations, and provides a state-of-the-art theorem prover for interactive and automated verification. Apart from its integration into UML based software development, a characteristic feature of KeY is that formal specification and verification can be introduced incrementally.

Keywords

Object-oriented designFormal specificationFormal verificationUMLOCLDesign patternsJava

Copyright information

© Springer-Verlag 2004

Authors and Affiliations

  • Wolfgang Ahrendt
    • 1
  • Thomas Baar
    • 2
  • Bernhard Beckert
    • 3
  • Richard Bubel
    • 4
  • Martin Giese
    • 1
  • Reiner Hähnle
    • 1
  • Wolfram Menzel
    • 4
  • Wojciech Mostowski
    • 1
  • Andreas Roth
    • 4
  • Steffen Schlager
    • 4
  • Peter H. Schmitt
    • 4
  1. 1.Department of Computing ScienceChalmers University of TechnologyGothenburgSweden
  2. 2.Software Engineering LaboratorySwiss Federal Institute of Technology in LausanneLausanne EPFLSwitzerland
  3. 3.Institute for Computer ScienceUniversity of Koblenz-LandauKoblenzGermany
  4. 4.Department of Computer ScienceUniversity of KarlsruheKarlsruheGermany