Tracechecks: defining semantic interfaces with temporal logic

  • Authors:
  • Eric Bodden;Volker Stolz

  • Affiliations:
  • Software Modeling and Verification (MOVES), RWTH Aachen University, Aachen, Germany;Software Modeling and Verification (MOVES), RWTH Aachen University, Aachen, Germany

  • Venue:
  • SC'06 Proceedings of the 5th international conference on Software Composition
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tracechecks are a formalism based on linear temporal logic (LTL) with variable bindings and pointcuts of the aspect-oriented language AspectJ for the purpose of verification. We demonstrate how tracechecks can be used to model temporal assertions. These assertions reason about the dynamic control flow of an application. They can be used to formally define the semantic interface of classes. We explain in detail how we make use of AspectJ pointcuts to derive a formal model of an existing application and use LTL to express temporal assertions over this model. We developed a reference implementation with the abc compiler showing that the tool can be applied in practice and is memory-efficient. In addition we show how tracechecks can be deployed as Java5 annotations, yielding a system which is fully compliant with any Java compiler and hiding any peculiarities of aspect-oriented programming from the user. Through annotations, the tracecheck specifications become a semantic part of an interface. Consumers of such a component can then take advantage of the contained annotations by applying our tool and have their use of this component automatically checked at runtime for compliance with the intent of the component provider.