Lab 3: Reverse Engineering the Architecture of a Java Application

The goal of this lab is to reverse engineer the architecture of your java application from the first lab. You will need to use the scripts developed in the second lab and also install and use two other tools, which are available from the course website. The two new tools are: Start by running the Bunch tool. Using the Bunch GUI, specify the MDG file that was converted from the XML/ODEM file as the "Input Graph File:". Select "Hill Climbing" as the "Clustering Method:" (this is the default option). Select a suitable file name for the "Output Cluster File:" option, which assigns a name to the file that stores the result produced by Bunch. Select "Text" as the "Output File Format:" (note, this is not the default). Click on the "Clustering Options" GUI tab on the top of the tool's GUI. Make sure you select "Generate Tree Format", which is disabled by default. Once you do this, click on the "Basic" tab to return to the primary GUI and press the "Run" button on the bottom right of the GUI. Bunch will cluster the MDG specified by the input file and produce a file with a .bunch extension. The output file specifies the subsystems that contain each of the classes of the application. This output file, along with the MDG file, will be used as inputs to the ISF (Interconnection Style Formalism) tool.

Once you run the ISF tool, specify the MDG file in the "Graph file:" option, also specify the Bunch output file name in the "Cluster file:" option of the ISF GUI. Keep the default settings for the "ISF Style:" and "Method:" options. On the "Output" tab, unselect the "Enforce Tree Structure" option. Finally, click on the "Start" button on the bottom left of the ISF GUI. If you specified where the Graphviz program resides on the file system in the ISF shell script you should see a graphical display of the result in Graphviz.