Many people use UMLGraph to document and reverse engineer existing Java programs. But the reason I wrote it is exactly as a tool to create UML diagrams using a textual notation. It use as a documentation and reverse-engineering tool came about, because the notation is Java-like.