next up previous contents
Next: Sessions Up: Overview of the Bandera Previous: Overview of the Bandera

The Project and Code Panels

Figure 2 displays the main window of the BUI with some example code loaded (we'll see how to load an example in Section 5). The main window contains two panels: the left panel is the project panel and the right panel is the code panel. The Project panel contains a tree that organizes the packages, classes, fields and methods of the Java software being analyzed.

It is important to note that the code panel does not display the actual text of the corresponding .java file. Rather, one should think of the display as providing the Java abstract syntax of the source code. When JJJC compiles a program, it creates a Java abstract syntax tree (AST) representation as well as the underlying Jimple intermediate representation. A system of internal annotations implemented using hash tables associates each node in the Java AST with its counterpart in the Jimple representation (and vice versa). The display in the code window is generated by dynamically decompiling the internal Jimple representation back to the corresponding Java using the annotations. This display strategy makes it easier to implement the visualization tools associated with counterexample traces, slicing, and abstraction. However, it has the disadvantage that textual features of the actual source code (e.g., comments, indentation, etc.) are not shown in the window.gif

Now we'll give a brief description of each tool-bar button and menu in the main Bandera window.


next up previous contents
Next: Sessions Up: Overview of the Bandera Previous: Overview of the Bandera

Roby Joehanes
Wed Mar 7 18:30:51 CST 2001