Compiler and tool support for debugging object protocols

  • Authors:
  • Sergey Butkevich;Marco Renedo;Gerald Baumgartner;Michal Young

  • Affiliations:
  • Dept. of Computer and Information Science, The Ohio State University, 395 Dreese Lab., 2015 Neil Ave., Columbus, OH;Dept. of Computer and Information Science, The Ohio State University, 395 Dreese Lab., 2015 Neil Ave., Columbus, OH;Dept. of Computer and Information Science, The Ohio State University, 395 Dreese Lab., 2015 Neil Ave., Columbus, OH;Dept. of Computer and Information Science, University of Oregon, 120 Deschutes Hall, Eugene, OR

  • Venue:
  • SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

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.