Java Reverse Engineering Tool – Source Code To UML

Reverse Engineering and Redocumentation of Java Code

This is my final year University project. It analyses Java code and then produces a UML class diagram of the Java code.

The picture below shows some typical output from the application. Each box represents a Java source file. The lines show the dependencies betweent the files.

Reverse Engineering Tool

Download Reverse Engineering Project (72kb)

Brief Overview

  • Each box represents a Java source file.
  • Each box can have three compartments. They are 'name', 'attributes' and 'operations'.
  • The lines show the file dependencies.
  • A red line means that two classes are mutually dependent on each other.
  • Blue lines show inheritance.
  • The public, private and protected attributes and operations can be toggled on or off as desired.
  • The boxes have an 'elastic property' which makes the diagram easier to layout. If two boxes are too close they will try to move apart. Each box can be manually moved and fixed into a position.
  • The depth to which the source files are shown can be altered.
  • There are three automatic layout methods.
  • The easiest way to understand the above is just to try the application. There is only one screen to get the hang of, so it is (hopefully) easy to use. Press Ctrl-h for help at any time.

How to Use

  1. You must have Java 1.2 or above installed. You need a fairly fast computer. A 400MHZ Pentium 2 with 64mb RAM should be alright.
  2. To work fully you need access to the .java and .class files of the project you are analysing. They must all be in the same directory.
  3. Unzip the files from the above zip file into a new directory. Double click on 'reverse.bat'.
  4. Go to the file menu and choose open. Select a Java file that you want to analyse. This will usually be the Java file with the 'main' method.

Source Code

As this was a university project I'm afraid I'm not able to share the source code.

Leave a Reply

Your email address will not be published. Required fields are marked *

Do NOT fill this !