Verifying Multi-object Invariants with Relationships

  • Stephanie Balzer
  • Thomas R. Gross
Conference paper

DOI: 10.1007/978-3-642-22655-7_17

Part of the Lecture Notes in Computer Science book series (LNCS, volume 6813)
Cite this paper as:
Balzer S., Gross T.R. (2011) Verifying Multi-object Invariants with Relationships. In: Mezini M. (eds) ECOOP 2011 – Object-Oriented Programming. ECOOP 2011. Lecture Notes in Computer Science, vol 6813. Springer, Berlin, Heidelberg

Abstract

Relationships capture the interplay between classes in object-oriented programs, and various extensions of object-oriented programming languages allow the programmer to explicitly express relationships. This paper discusses how relationships facilitate the verification of multi-object invariants. We develop a visible states verification technique for Rumer, a relationship-based programming language, and demonstrate our technique on the Composite pattern. The verification technique leverages the “Matryoshka Principle” embodied in the Rumer language: relationships impose a stratification of classes and relationships (with corresponding restrictions on writes to fields, the expression of invariants, and method invocations). The Matryoshka Principle guarantees the absence of transitive call-backs and restores a visible states semantics for multi-object invariants. As a consequence, the modular verification of multi-object invariants is possible.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Stephanie Balzer
    • 1
  • Thomas R. Gross
    • 1
  1. 1.ETH ZurichSwitzerland

Personalised recommendations