Some developers swear by UML, some hate it. If you're in the former camp (or in
the latter, but forced by corporate policy to use UML anyhow), you'll want a tool
that allows you to easily construct UML diagrams. Altova UModel tries to stake out
the middle ground for such tools, between the simplest sketching tools that have
no particular understanding of the structure of UML diagrams and the most complex
tools that support every last nuance of the UML specification. It offers a good
mix of features, including round-trip engineering for Java and C# code, at a reasonable
cost.
UModel does not implement all of the diagram types defined in the full UML 2.1 specification
(which you can see over at the OMG's UML Resource Page,
though I'd recommend starting with
UML 2.0 In a Nutshell instead). It does, however, let you construct nine
of the most common and useful types of UML diagrams:
-
Use case diagrams
-
Class diagrams
-
Object diagrams
-
Component diagrams
-
Deployment diagrams
-
Activity diagrams
-
Composite structure diagrams
-
Sequence diagrams
-
State machine diagrams
After adding a new diagram, you can build it up largely by drag and drop. For example,
to create a use case diagram, you can select actors from a toolbar and drop them
on a diagram, and then drag from one actor to another to show their interactions.
Typing directly on the diagram or in a properties window lets you customize things
like visibility and icon file names. The design experience ends up being a sort
of combination of Visio and Visual Studio, though there are some rough edges (for
example, I wanted to drag over the name of a class to highlight and replace it,
and had to backspace to remove the existing text instead).
Diagrams are arranged into a hierarchy of packages, and you can manage them either
in the model view (showing the entire hierarchy) or in a diagram view (where they
group by diagram type). You can also share subprojects of one or more packages between
UModel projects. The product comes with some preconfigured subprojects containing,
for example, Java and C# data types so that you can incorporate these into your
own models easily.
As you'd expect if you know the Altova product line connections with other products
are a strong point. UModel supports the XMI 2.1 specification for exchanging UML
models with other modeling products. On a simpler level, if you're just using it
as a diagramming tool for your documentation, you can grab a .PNG export of any
diagram with a couple of mouse clicks. UModel also works well with code generated
by Altova's own XMLSpy or MapForce products. This is just one aspect of a more global
round-trip engineering facility: you can use UModel to generate Java or C# code,
or import Java or C# classes to build the corresponding UML diagrams. The code generation
is based on templates, which are completely customizable and allow you a high degree
of control over the generated code.
Besides adding activity diagrams, state machine diagrams, and composite structure
diagrams, release 2 improves the context menus and property entry from the original
release, and adds additional tutorials and examples (which come in very handy when
trying to learn an application like this). Overall, UModel is a very serviceable
way to generate anything from a quick UML diagram to drop into some documentation
to a full-blown UML model of a moderately-sized application coupled with custom
templates to generate C# or Java code just the way you like it. You can download
a 30-day trial from Altova's Web site.