Larkware banner
border

Review: Altova UModel

Altova UModel 2006 release 2, $129
Altova, Inc.
Beverly, Massachusetts
(978) 816-1600
http://www.altova.com/products/umodel/uml_tool.html

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.

UModel screenshot  Click for larger screenshot 

Mike GunderloyLarkware is the editor of Larkware, the daily .NET newspaper of record.

Published August 14, 2006