There is an interesting topic here about UMLGraph vs apiviz (which are mentioned in this question on SO too), and I understand the following:
- The UMLGraph is older but really good (dixit Fowler, which has more weight than mine).
- apiviz is a rewrite of UMLGraph, but it’s not entirely clear why it was rewritten.
- The “big” advantage of apiviz is that build will not fail if Graphviz is not installed (this does not justify the whole correspondence, although, in my opinion).
- apiviz does not create graphics automatically, you need to add tags against UMLGraph by default (which can be convenient), and fully automatic results for everyone are easy and simple (UMLGraph can also simulate the composition relation to custom javadocs tags).
- The UMLGraph seems to do more things ("it looks like apiviz is doing nothing more than an idea of ​​generalizations and using the interface" or "using the class shown by UMLGraph really helps to understand how the class works"), but I did not. t check yourself, and this may be incorrect or outdated.
So, if you published a project, then the fact that apiviz works gracefully without Graphviz is good. If you have many classes, the need to add tags to javadoc everywhere is a big pain. If you are looking for special features, UMLGraph has more to offer. In fact, I think you should experiment, as you obviously know better your needs and limitations for the final choice.
source share