Software & Systems Modeling

, Volume 4, Issue 1, pp 32–54

The KeY tool

Integrating object oriented design and formal verification

Authors

    • Department of Computing ScienceChalmers University of Technology
  • Thomas Baar
    • Software Engineering LaboratorySwiss Federal Institute of Technology in Lausanne
  • Bernhard Beckert
    • Institute for Computer ScienceUniversity of Koblenz-Landau
  • Richard Bubel
    • Department of Computer ScienceUniversity of Karlsruhe
  • Martin Giese
    • Department of Computing ScienceChalmers University of Technology
  • Reiner Hähnle
    • Department of Computing ScienceChalmers University of Technology
  • Wolfram Menzel
    • Department of Computer ScienceUniversity of Karlsruhe
  • Wojciech Mostowski
    • Department of Computing ScienceChalmers University of Technology
  • Andreas Roth
    • Department of Computer ScienceUniversity of Karlsruhe
  • Steffen Schlager
    • Department of Computer ScienceUniversity of Karlsruhe
  • Peter H. Schmitt
    • Department of Computer ScienceUniversity of Karlsruhe
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