School of Computer Science
    
ITDVisualiser
Visualization Support for Static Crosscutting in AspectJ

Ekwa's HOME

News

[April 18th, 2009] version 2.1.5 of ITDVisualiser released!
   

What is the impact of an inter-type declaration of AspectJ on the base code?

Understanding aspect-oriented systems, without appropriate tool support, is a difficult and a recognized problem in the AOP community. Surprisingly, little has been done to help developers understand the impact of the static crosscutting constructs of AspectJ on base programs. Questions of interest to developers such as: "which statements in a base program are affected by a given inter-type declaration?", or "how has the behavior of the affected statements been modified?", are still outstanding. The ITDVisualiser Eclipse plugin employs static analysis techniques for inferring the impact of the static crosscutting constructs of AspectJ on base programs, and provides support for visualizing the results of the analysis in an IDE; thus improving the comprehension of AspectJ systems and guarding against unintended modifications.

User Guide

The first step in using the ITDVisualiser plugin is to open the views. To open the ITDVisualiser Views, select Window | Show View | Other... and select the Lookup Impact and Shadowing Impact views.


Figure 1: Instructions on how to run ITDVisualiser.

Figure 2: The Shadowing Impact view.



The "Shadowing Impact" view identifies fields in the base code impacted by either inter-type field
declarations or the declare parents constructs. For instance, in the figure above, the field Square.myColor was affected by the construct declare parents: Square extends Rectangle. The
field Square.myColor referred to Shape.myColor before the declare parents construct, but now refers to Rectangle.myColor.





To run ITDVisualiser, right-click on an AspectJ project to reveal the context menu, then
navigate to the "AspectJ ITDVisualiser" and select either "Lookup Impact" or
"Shadowing Impact" to run the corresponding analysis.
 

Figure 3: The Lookup Impact View


The "Lookup Impact" view identifies call sites in the base code impacted by either the inter-type method
declarations or the declare parents constructs. For instance, in the figure above, the target of the call site Square.move(int,int) located within the class Main has been modified by the construct declare parents: Square extends Rectangle. The target of the call site Square.move(int,int) was originally Shape.move(int,int) before the introduction of the declare parents construct, but the target is now Rectangle.move(int,int).

 


Download

System requirements: Eclipse 3.3.x and above, AOP code written in Java 1.4 or below, and a minimum of -vmargs -Xmx1024m should be specified as argument to Eclipse (required for creating call graph). ITDVisualiser has been tested on Windows only.

Step 1: ITDVisualiser depends on the Soot Framework and the ABC compiler of AspectJ. The current version of both libraries are compartible with code
written in Java 1.4.x and below. Eclipse 3.3.x and above does not come with Java 1.4.x, so we have packaged the required libraries for download.
Download and unzip these libraries within the Eclipse installation directory. Please, do not rename the unzipped directory.

Step 2:

To install ITDVisualiser:

  1. From the Eclipse menu bar, select Help | Software Updates | Find and Install...
  2. Select "Search for new features to install" and click Next >
  3. Click on the New Remote Site... button.
  4. For the name, enter "ITDVisualiser". For the URL, enter "http://www.cs.mcgill.ca/~eduala/itd-tool/update", and click OK
  5. Select the new ITDVisualiser entry in the list and click Finish
  6. In the list of features to install, select the root node of the ITDVisualiser tree, and click Next >
  7. Select that you accept the terms of the license agreement, and click Next >
  8. Click Finish, and then Install
  9. Restart your workspace.

Documentation

User Interface

The features of the ITDVisualiser plug-in and the underlying algorithms and heuristics are described in detail in our ICPC 2009 paper.

Publications

Dehua Zhang, Ekwa Duala-Ekoko and Laurie Hendren. Impact Analysis and Visualization Toolkit for Static Crosscutting in AspectJ.
In Proceedings of the 17th IEEE International Conference on Program Comprehension, May 2009 (pdf)

People

ITDVisualiser was developed by Ekwa Duala-Ekoko and Dehua Zhang, with contributions from Laurie Hendren.

Contact Information

Address questions, bugs, and comments to Ekwa Duala-Ekoko.