kirancodes.me
To Proof Maintenance & Beyond!

Compiler and tool support for debugging object protocols

Sergey Butkevich, Marco Renedo, Gerald Baumgartner, Michal Young

Abstract

We describe an extension to the Java programming language that supports static conformance checking and dynamic debugging of object “protocols,” i.e., sequencing constraints on the order in which methods may be called. Our Java protocols have a statically checkable subset embedded in richer descriptions that can be checked at run time. The statically checkable subtype conformance relation is based on Nierstrasz' proposal for regular (finite-state) process types, and is also very close to the conformance relation for architectural connectors in the Wright architectural description language by Allen and Garlan. Richer sequencing properties, which cannot be expressed by regular types alone, can be specified and checked at run time by associating predicates with object states. We describe the language extensions and their rationale, and the design of tool support for static and dynamic checking and debugging.

BibTeX
@inproceedings{Butkevich-al:FSE00,
  author    = {Sergey Butkevich and
               Marco Renedo and
               Gerald Baumgartner and
               Michal Young},
  title     = {Compiler and tool support for debugging object protocols},
  booktitle = {FSE},
  pages     = {50--59},
  publisher = {{ACM}},
  year      = {2000},
}

Related papers