Modular Generic Verification of LTL Properties for Aspects
Max Goldman, Shmuel M. Katz · 2006
Aspects are separate code modules that can be bound (“woven”) to a base program at joinpoints to provide an augmented program. A novel approach is defined to verify that an aspect state machine will provide desired properties whenever it is woven over a base state machine that satisfies the assumptions of the aspect. A single state machine is constructed using the tableau of the linear temporal logic (LTL) description of the assumptions, a description of the joinpoints, and the state machine of the aspect code. A theorem is shown that if the constructed machine satisfies the desired properties, so will an augmented state machine using any base machine that satisfies the assumptions. The theorem is stated and shown for assumptions and properties given in LTL, for a somewhat restricted form of joinpoint description, and for aspect code that ends in states already reachable in the base state machine. A language-based description of aspects, as in AspectJ, can be converted to a state machine version using existing tools, thus providing generic modular verification of code-level aspects.