The ObjectAid UML Designer for Eclipse

Why another UML tool?

Most UML tools are geared towards the design of class models. They generate the source code for you and then they leave you mostly alone. If you want to keep track of how your source code evolves, you can reverse engineer it. Since many things have changed, you need to recreate most of your diagrams. Many-to-one associations (represented by collections and maps) are not reverse engineered anyway. And then you can repeat the whole process a week later because things changed again...

Or there is this large, mostly unknown code base that you need to understand quickly. Most UML tools will let you reverse engineer even from byte code, but what do you do then? Wouldn't it be nice to start from some strategic class and explore the code structure from there? Right within your favorite IDE, looking at code and diagrams depending on your need?

The ObjectAid UML Designer always keeps your diagrams in sync with your source code, because they are based on source code and listen to refactoring events within the Eclipse IDE. Generic collections are reverse engineered the way they should be. Exploring code is easy because you can find and add related classes with a right-click from the context menu. And the source code or type hierarchy is always only an F3 or F4 key away.

What does it do?

The ObjectAid UML Designer allows software developers to document and explore Java source code and libraries. It supports an agile approach to software development with seamless integration into the Eclipse IDE and many ease-of-use features:

  • Create new class diagrams with a wizard.
  • Drag and drop Java types from the Package Explorer, the Type Hierarchy and the Search view.
  • All relationships are reverse engineered automatically: Generalizations, realizations, associations, nesting and dependencies.
  • Associations are also determined from generic Collections and Maps or can be added manually for non-generic Collections/Maps. Two unidirectional associations can be merged into one bidirectional association.
  • Fields can become associations when the referenced class is in the diagram, otherwise they are just attributes.
  • You can inspect javadoc and source code for any type in your diagram in the Javadoc and Declaration views.
  • Build your diagram incrementally by adding new types that have a relationship with a type already in the diagram. Select generalized, realized, associated and nested types from the context menu of a type or field to add them to the diagram. Or use to the familiar References context menu to find references to a class in the diagram.
  • When you update your source code, all open diagrams reflect the changes as soon as the source file is saved.
  • When you refactor your source code, all diagrams in the workspace are updated automatically (even if they are not open).
  • The Outline view shows all types in the diagram, along with their fields and methods. It also has a thumbnail of the diagram for easy navigation in large diagrams.
  • Save your diagram as a GIF file so it can be incorporated into other documents.

What's coming next?

While the current focus is code exploration, planned future versions will have a broader range:

  • UML design support: Create a language-neutral class model, then convert it into source code. Or do it the other way around if you need to design enhancements for an existing system.
  • More UML diagrams: Sequence diagrams can also be reverse engineered from source code.
  • Support for more object-oriented programming languages: C++, Ruby, Groovy and possibly Python.