Wednesday Jun 18, 2014

Belgrade Brings UML Back to NetBeans IDE

The Open Source Development Center in Belgrade, Serbia, recently presented the current state of their work on UML tooling for NetBeans IDE.

Below you see Milan Djoric showing a pretty complex looking UML graph which he generated from a Java application. Indeed, reverse engineering of UML graphs is supported, as well as tools for creating UML graphs from scratch.

Together with Ilija Ivanovic, who also presented during the session above, as well as Stefan Petrovic, the team is doing great work. They've narrowed the scope to class diagrams, specifically. The tools they're creating let you create a new UML project, via a new UML project type, after which you can draw class diagrams, via items that can be dragged from the palette and dropped, and arranged on a Visual Library scene in a TopComponent. From the diagram, you can generate Java source files into an existing project in the IDE and regenerate them when the diagram changes. And, from the Java source files, you can generate/regenerate the diagram.

If your curiosity is combined with a sense of adventure, you can download and build the sources of these new tools here:

They're under heavy development. "Buyer" beware. I put the sources together, generated NBMs, and installed them into NetBeans IDE 8.0. Not a problem at all and then reverse engineered the class diagram below from the Anagram Game sample. Click to enlarge the image below. (I scrunched up the widgets a bit to make the screenshot. It looks a lot better when enlarged below, though the image above gives an even better picture of the graph at full scale.)

The team mentioned that they're using a solution via Jung that Tim Boudreau created and blogged about here for the arrangement of the widgets in the scene. In his presentation, Milan Djoric said that he learned an unexpectedly massive amount of things about areas he never knew about before, including compiler APIs and reflection APIs.

I would suggest the following usability changes be done before the plugin is released: move the satellite view into the Navigator, move the Explorer Window into the Navigator, and add the "Reverse Engineer" action to the right-click popup of projects (i.e., not only to the Source menu, where it is now). Also, Undo/Redo needs to be added and the Delete key should delete widgets, in addition to the right-click popup menu that already does this.

Great work, guys. Really excellent. Looking forward to the official release.


Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.


« June 2014 »