A program visualization system called InspectJ is presented in this paper, which uses aspect-oriented programming (AOP) for monitoring program execution. InspectJ allows the visualization of Java programs using AspectJ as the AOP system. AOP is used to gather monitoring information without changing the target program: instead of adding instrumentation calls to the program itself, they are specified as aspects, which are executed at specific join points in the program. By using aspects, InspectJ is able to collect monitoring information while being unobtrusive, retaining program security levels, and enabling monitoring to be done at an arbitrary level of granularity.
Aside from these advantages, the authors also discuss several problems related to the use of AOP in program visualization. They tackle both general problems (such as the user’s need for considerable knowledge of the target program to avoid logical errors when specifying join points), and problems specific to AspectJ (for example, its limitation to Java).
The paper provides both a good initial introduction to aspect-oriented programming and an interesting application of AOP. One shortcoming of the paper is that the presentation of InspectJ itself seems rather superficial. However, this is made up for by an extensive, more general discussion of the advantages and disadvantages of AOP in program visualization, which is the main contribution of the paper.