Free utility which runs in Linux to create a UML class diagram from Java source files

user14070 picture user14070 · Apr 10, 2009 · Viewed 23.5k times · Source

I prefer to jot down UML-diagrams on paper and then implement them using Java. It would be nice to have a utility which could create UML-diagrams for me which I may share on-line and include in the digital documentation. In other words: I want to create UML diagrams from Java source code.

The utility must be able to:

  • Run in Linux.
  • Handle Generics, i.e show List<Foo> correctly in parameters and return type.
  • Show class inheritance and interface implementations.

It's nice if the utility is able to:

  • Run in Windows and Mac OS X.
  • Display enums in some nice manner.
  • Generate output in a diagram format which I may modify using some other utility.
  • Run from the command line.
  • Restrict the UML generation to a set of packages which I may specify.
  • Handle classes/interfaces which are not part of my source code. It could include the first class/interface which is external in the UML diagram. Perhaps in another color to indicate it being a library/framework created by someone else.
  • Focuses on this task and doesn't try to solve the whole issue of documentation.

Answer

Bob Cross picture Bob Cross · Apr 10, 2009

One method that we've experimented with is a combination of UMLGraph and GraphViz. What we were doing at the time was making the UML creation an automatic part of our CruiseControl build: the javadoc would be built with UML diagrams built in. It is pretty slick.

I think you'll find that the UMLGraph documentation answers pretty much all of your questions. Specifically, you should be able to create the class diagram that you want from the command line.