How to generate UML Diagrams from Java code in Eclipse


UML diagrams compliment inline documentation ( 
javadoc ) and allow to better explore/understand a design. Moreover, you can print and bring them to table to discuss a design.

In this post, we will install and use the ObjectAid plugin for Eclipse to produce jUnit lib class diagrams. Then, we will be able to generate UML diagrams by simply dragging and dropping classes into the editor. We can further manipulate the diagram by selecting which references, operations or attributes to display.  

Open Eclipse and go to Help > Install New Software
Click on add to add a new repository
Enter name ObjectAid UML Explorer
Enter Location

Next, select the ObjectAid Class Diagram plugin – 
it is free – and click Next. The Sequence Diagram one requires a paid license.

Finish to confirm your choices and start the instalation process.

Click Ok on the security warningSelect Restart Now after the installation completes to restart Eclipse.

To create a new UML diagram we start the ObjectAid wizard with 
File >
 New >
 Other…  and start typing in the textbox 
Class Diagram to filter the desired wizard. Click 
Next, and enter a directory and name for the diagram.

Drop java source or compiled class files into the visual UML editor to start populating the diagram. Right click on a generated class to bring up a context menu and adjust visibility, operations attributes, etc as you like.

Below, we see the 
Assert class from the jUnit library with all operations and fileds hidden.

From the context menu, we can add implementations and associations for a selected class. In the following screen, we add the interface 
Test implemented by the 
TestCase class.

This is how part of the jUnit UML class diagram look after adding some more classes.

To auto layout the diagram right click anywhere within the editor and select 
Layout Diagram. From the same menu, you can export the diagram to an image ( 
gif png jpeg ) by clicking the Save As Image… menu item

Have fun with the plugin, leave a comment if you like 🙂

Read More: