Foundations of Incremental Aspect Model-Checking

Shriram Krishnamurthi, Kathi Fisler

ACM Transactions on Software Engineering and Methodology, 2007


Programs are increasingly organized around features, which are encapsulated using aspects and other linguistic mechanisms. Despite their growing popularity amongst developers, there is a dearth of techniques for computer-aided verification of programs that employ these mechanisms. We present the theoretical underpinnings of a technique for verifying programs (expressed as state machines) written using aspects or related notations such as AHEAD. The analysis is incremental, examining only components that change rather than verifying the entire system every time one part of it changes. Our technique assumes that the set of pointcut designators is known statically, but that the actual advice can vary. It handles both static and dynamic pointcut designators. We present the algorithm, prove it sound, and address several subtleties that arise, including cascading advice application and problems of circular reasoning.


A complementary approach handles product-line systems. An informal position paper puts the research program in perspective.



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.