This discussion begins with some caveats. It is very costly to fully
evaluate computer assisted software engineering (CASE) tools. These
tools are used to model requirements and specifications and/or software
designs to help in the construction of software systems. The high-end
tools are extremely costly and this author has never had the opportunity
to use them. This very short paper is based on personal experience
including both commercial practice with a tool budget of anywhere
up to $50,000(USD) to unfunded professional activities such as this
site. While I have done extensive piloting of a handful of tools,
many tools on the market today were ruled out on the basis of cost
or features or simply because this author did not know of them.
Do not take this as a definitive evaluation or even a review
of CASE tools. Instead, use it as a starting point for your own evaluation!
This paper will discuss three tools for UML modeling in requirements
analysis and specification and user interface architecture and design
work. The three alternatives span a range of cost from low-end to
mid-end and vary in the number of modelers they will easily support.
This author has no financial ties to any of the companies mentioned
in this discussion. Note that the second alternative, MagicDraw, has
been used to develop the models and diagrams used throughout this
site.
The
Simplest AlternativeVector-Based Drawing Tools
One alternative whose cost varies from low-cost to mid-cost is to
use a vector-based drawing tool, such as Adobe Illustrator, and draw
all of your UML diagrams by hand. My own experience is with Visio
and Illustrator
.
Both work just fine for creating diagrams. Illustrator provides much
more control over how the vectors end up being rendered and in what
format. For professional results in print or on the web this is the
choice to make. Visio provides templates to support UML. If you can
find an old version (say in the V4 series) at a good price, this is
an excellent entry-level tool. The later versions of Visio are more
costly and attempt to give you some of the features of a CASE tool
but, in the end, deliver neither CASE tool functionality nor drawing
tool simplicity. There are many other vector-based drawing tools,
these are simply the ones this author has experience with.
Vector drawing applications are the tool of choice only if the production
quality of the final images is the over-riding consideration or if
you have no budget at all and you already own a vector-based drawing
tool or you want to use one of the open software drawing applications.
Why? Because drawing tools, though they are ultimately flexible, provide
no help in organizing your model. Even the lowest price CASE tool
should keep in one place all of the textual information associated
with one model element. That way, if that model element is reused
in a second diagram (this is very typical) your tool keeps track of
all the common information. This is important in that you will eventually
decide to change some aspect of the model element's description. When
you do, you want that change to propagate through all references to
that model element. If you are authoring scenarios
with sequence diagrams you will have to use a text editor to author
the narratives. The cost of manual model maintenance (among narrative
scenarios and between them and various diagrams) will be enormous
and is virtually guaranteed. This is because of the iterative nature
of scenario writing. As you finish one pass through the scenarios
you will discover many revisions to already written scenarios.
The
Low-Cost AlternativeMagicDraw CASE Tool
MagicDraw
provides full UML notational support (I have not yet found anything
it won't do). This review is based on MagicDraw 4.51. It manages a
true model representation which it stores as one large XML flat file.
Model elements can be drawn on multiple diagrams carrying their content
into these new contexts. Some model elements can be displayed with
varying degree of detail depending on context. For example, class
can be shown in different class diagrams with some, none, or all attributes
or operations showing, depending on what each class diagram is attempting
to convey. MagicDraw also has a reporting capability which appears
to externalize the report creation as an XML file containing the options
and an XSL file specifying the report construction. I hope to make
use of this to create a custom report for generating software specifications
which I'll report on in a paper in this section later this year. MagicDraw
also provides multiple user support with this support mediated via
flat file. I have not tested this capability.
The advantage of using MagicDraw or a tool like it is that your UML
diagrams are easy to create and will be in standard UML notation.
Since the tool maintains a single model across all of your diagrams,
you accumulate a single description rather than a series of disconnected
diagrams which you must manually update whenever a common element
changes. If you author scenario content
using sequence diagrams this model maintenance overhead is large
and so is the labor savings afforded by a CASE tool.
The
Mid-Cost AlternativeSoftware through Pictures (StP) CASE Tool
StP, produced by Aonix
,
is a solid mid-cost CASE tool with all of the features a larger modeling
team will need. As of 12 months ago, StP provided nearly complete
UML support (it is probably better now, I have not checked in the
past year). It stores its model in a relational database and provides
both a query language and a scripting language. The scripting language,
utilizing C-like syntax, supports extensions to the generic UML metamodel
and notation as well as custom reporting. The query language provides
full access to the model and any extensions you make to it. A standard
set of report scripts is also provided. Full multiuser support is
based on locking individual diagrams and check-out of subsystems.
It can sometimes be a temperamental system. Aonix is very good about
getting you set up but expect to spend some funds on Aonix support,
either contract or training.
The advantage of this tool is the robustness of a database-driven
multiuser system. I have extensive experience customizing StP via
scrips and queries. Once the scripting language and its labyrinthine
inclusion hierarchy is learned it is very straightforward. Licensing
can be floating or fixed so if you have a large group of modelers
only some of which are working at any one time, it can be more economical.
On the other hand, StP is, as has already been said, temperamental
and requires proactive administration. It is also moderately costly
(though no more than products like Rational Rose).
A
Fourth AlternativeOpen Software
I would like to report to you that open software provides a good
fourth alternative. Unfortunately, the open software tools I've tested
did not support fundamental features like attributed associations.
Otherwise, the offerings I found seemed quite solid. I will keep my
eye on these efforts and hopefully this report will in future be a
bit rosier and offer a no-cost solution for low-budget and professional
development projects.
Conclusions
The three alternatives presented here will support UML diagraming
for HCI modeling. Vector-based drawing tools, though widely available
and fairly easy to use, are mostly useful for the purposes of professional
illustration. The other two alternatives are useful for software specification
modeling. The low-cost alternative, MagicDraw, is best suited to single-modeler
projects while the mid-cost alternative, StP, provides better multiple-modeler
support. Both of these alternatives provide UML extension mechanisms
that adequately support the HCI techniques in the Methods topic. This
report will, as time permits, be updated to reflect the reporting
capabilities of the low-end alternative and, with luck, suitable open-software
tools.
If you have comments concerning UML tool support or this review,
please email me, John
Artim, via this website.