Modeling using the Unified Modeling Language was never as easy and inexpensive as it is with UModel.
- By Peter Varhol
1: Virtually inoperable or nonexistent
5: Average, performs adequately
The area of Unified Modeling Language (UML) modeling has no middle ground.
You can't "sort of" do modeling in application development. You either
think, design, develop and maintain entirely from a modeling perspective, or
you do little or nothing with modeling. Even if you're designing deployment
environments and architecting an IT infrastructure, it's difficult to be selective
about the UML features you use because they all work together. That in itself
is a high barrier to entry in UML.
The other high barrier is complexity -- of both UML in general and the tools
that implement it. UML 2.1, the latest version of the UML standard, has a total
of 13 diagram types, and each diagram has a bevy of rules that have to be understood
before serious use. You may not need to use all of the diagrams in any one project,
but you have to know enough about each to determine if it contributes to your
In the past, tools automating UML and generating code from diagrams were highly
complex, with a seemingly impenetrable user interface that reflected -- at least
to some extent -- the underlying complexity in modeling. They also were (and,
in many cases, still are) expensive, often costing several thousands of dollars
a seat. Those who made the commitment to modeling often had to spend a significant
chunk of money for software and training, and had to wait for years for that
investment to pay off.
[Click on image for larger view.]
|Figure 1. Altova
UModel enables users to create Use Case diagrams that are easily understandable
by all participants in an IT project.
Simplicity in Modeling
Altova brings both affordability and simplicity to UML modeling. It achieves
simplicity in what is effectively a complex process by taking a step-by-step
approach. Each step is logical, easy to understand and easy to carry out. The
principal problem is that there are a great many steps in building a model,
but that's not UModel's fault.
The user interface is as clean as it can be. Modeling is complex, but the UModel
UI lets you take it step by step. If you start on a model, you can view the
different model types in a tree diagram pane on the left-hand side of the screen.
You can expand the tree diagram to get to the diagram you want to work on. The
tree structure also lets you plan out the hierarchy of your diagrams as your
This is an important characteristic. Almost all designs are too big to be modeled
"flat," without some sort of hierarchy, and UModel makes that hierarchy
a natural way of working. Traversing the hierarchy is a simple matter of clicking
on the appropriate diagram type at the appropriate level.
UModel also helps define the components that you assemble together into diagrams.
For every element in a diagram, you have a set of properties that you can set
in order to define that element in greater detail. For example, an actor in
a Use Case diagram can have a fully qualified name based on its location in
the diagram, be defined as public or private, and have a custom icon defined
for it. Some of these definitions are, in fact, necessary in order to get the
appropriate code generated for the element.
Of course, code generation is a feature in just about every UML modeling tool
these days. UModel provides model-to-code and code-to-model capabilities for
both C# and Java. While the product doesn't integrate into either Visual Studio
or a Java IDE, opening the resulting C# file in Visual Studio and importing
it into a project takes only a few seconds.
You work with libraries and other external references by adding them to the
diagram tree as separate entities. This places those external references on
the same conceptual level as the diagrams, rather than adding them as an afterthought
or in an inconsistent manner. You can do a syntax check prior to code generation
to make sure you have all of the references available. That makes building from
an IDE (or even a command line, if that's your fancy) easy when the time comes.
[Click on image for larger view.]
|Figure 2. Enterprise
architects can create deployment architectures for IT projects, defining
constraints within which those projects must work.
Virtually everyone -- from business analysts to developers to enterprise architects
-- creates Use Cases. The UModel Use Case diagrams are very clean and easy to
understand, with the hierarchical approach to creating those diagrams letting
users build and share Use Cases easily.
For designing deployment architectures, UModel provides the necessary component
and deployment diagrams for designing and implementing layouts and connections.
Because of its relative simplicity, an enterprise architect can construct a
deployment architecture and pass it on to application designers to understand
the constraints of a system, and then to the developers to build to those constraints.
One selling point for UModel 2007 is that it supports all of the UML 2.1 diagrams
-- a hefty 13 different diagrams. (Technically, it supports UML 2.1.1, but I
couldn't figure out what the most recent version of the standard included.)
The company claims to release new versions frequently, and can easily catch
the latest features of the language. While those features may not be used right
away, there's a certain amount of bragging rights that goes with keeping up
with the standard.
Crisp and Clear Documentation
The documentation is among the best I've seen in a long time. It takes you through
all of the features in a visual and easy-to-follow fashion, and even includes
a tutorial to help get you started on your first UML model. The explanations
for all the features are clear, combining words and pictures that illustrate
the concepts. If you don't have thousands of dollars to spend on UML training,
working through the UModel tutorials provides a sound way to get started. It
won't provide the background on modeling or deliver the experience to model
efficiently, but for someone who already knows the fundamentals of UML, there's
no better way to get started.
UModel 2007 starts at $129 for a single-user license (volume discounts are
available). Altova typically adds 25 percent for annual support and maintenance.
There's no requirement to purchase it, but the company has been producing as
many as two releases a year, so it may not be a bad investment.
There's at least one other comprehensive modeling tool in the low-priced category
that I've used: Enterprise Architect from Sparx Systems Pty Ltd. Enterprise
Architect has more features, such as extensibility and use in other modeling
projects like Business Process Modeling (BPM), but it's comparatively more difficult
to learn and use.
Perhaps the worst thing you can say about UModel is that it does UML well,
but it does nothing else. If you want no-frills UML modeling and code generation
in a package that's easy to learn, UModel is just about the only choice out