Rational's tools are pretty widely used (as fare as this kind of stuff is
concerned).
However, I don't really like the way most CASE tools treat every problem
with a one-size-fits-all mentality (and no matter how much "customization"
they let you do to a glove, it's still a glove and sometimes you need a
shoe). I actually stumped the Rational techie when I asked how one would go
about doing something in the tool, to which he replied "why would you want
to do that?", and when I gave him the reason of why it was important, he
turned pale and admitted it couldn't be done within the system itself -
which rather defeats the purpose of having the CASE tool to begin with.
(names and events altered and obscured to protect the not-so-innocent)
Honestly, I do all my modeling in Visio. The rest is good old-fashion
coding, which really doesn't take long to do in VS.NET with all the neat
little productivity tools (VB or C#). And since I've yet to see a complex
system successfully round-trip two iterations in a CASE tool, I rule out the
importance of the maintenance aspect of said tools too
Don't get me wrong, I've written a whitepaper on how the next generation of
engineering management absolutely requires computer-assistance as the
complexity of projects are growing faster than Moore's law would allow for,
as well as tons of valuable knowledge assets being lost and not reused, or
used inefficiently. However, I don't think UML is the universal answer to
everything software, nor do I think someone has built the CASE tool with the
adaptive "brain" I need (yet).
-Rob Teixeira [MVP]