Aspect: detecting bugs with abstract dependences

  • Authors:
  • Daniel Jackson

  • Affiliations:
  • School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA

  • Venue:
  • ACM Transactions on Software Engineering and Methodology (TOSEM)
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

Aspect is a static analysis technique for detecting bugs in imperative programs, consisting of an annotation language and a checking tool. Like a type declaration, an Aspect annotation of a procedure is a kind of declarative, partial specification that can be checked efficiently in a modular fashion. But instead of constraining the types of arguments and results, Aspect specifications assert dependences that should hold between inputs and outputs. The checker uses a simple dependence analysis to check code against annotations and can find bugs automatically that are not detectable by other static means, especially errors of omission, which are common, but resistant to type checking. This article explains the basic scheme and shows how it is elaborated to handle data abstraction and aliasing.