Picking a Tool

Picking a Tool

Pick a tool that meets the following requirements:

  • Up to date: Does your tool support UML 2 (or have plans to do so within your timeframe)? Some of the smaller tools don’t have the time or money behind them to stay updated. On the other hand, sometimes the larger tools are burdened with a large user population that must migrate to any new version. Look for the UML 2 features that you need—and consider how soon you can get them up and running.

  • Affordable: Buy the best tool that you can afford, considering not only the price of the tool but also the price of any support or maintenance that you’ll need. Look for a tool that fits your checkbook.

  • Understands XMI: XMI (XML Model Interchange) enables you to get your model out of one tool and into another tool. If your tool supports XMI, you’re less likely to get stuck with the limited modeling capability of a tool that you’ve outgrown. XMI is also essential for getting the best-of-breed in tools. Many vendors specialize in enabling specific parts of the development solution (for example, modeling, metrics, or code generation). With XMI as the glue, you can pick one tool as the best for modeling and another as the best for generating code. Look for a tool that speaks XMI.

  • Stable: The fancier the tool, the more unstable it may be. Look for a tool that foregoes too many bells and whistles so that it won’t blow up on you.

  • Supported: The UML tool market is an exciting and dangerous place; companies come, and companies go. Look for a tool from a company that you trust.

  • Checks consistency flexibly: Most tools have some ability to check consistency among the models. This is good. However, you’ll often find that the tool’s idea of consistency may be too strict for your purposes. Look for a tool that enables you to control checking at the lowest level possible.

  • Has an MDA approach in mind: With the growing popularity of the OMG’s Model Driven Architecture approach, a good tool should be able to support this initiative by handling platform independent and platform-specific modeling. Look for a tool that supports MDA.

  • Scalable: Many tools are great solutions for single users but won’t scale up to many users as the same time. So consider: How many of your users can be modeling at the same time? Look at the tool’s strategies for locking, providing concurrent updates, and managing configurations. See whether it meets your team’s needs; look for a tool that grows with you.

  • Works in and for your environment: The tool has to run on your development platform as well as generate code suitable for your target platform. Look for a tool that works where you want it to.

  • Supports the diagrams that you need: It’s unlikely you’ll need every diagram that UML 2 has, certainly not equally. For example, some tools make the best class diagrams, some make the best state diagrams, and some make the best use cases. They differ in the amount of detail that they support, and in whether they generate code from that diagram. Look for a tool that knows how to do what you want.

At our last count, there were over 128 UML-capable tools to choose from—a tool for every user, purpose, and price range. In fact, it’s been said that any developer who acts as his or her own tool has a fool for a tool. So take a look at some of these tools and pick what works for you.

We selected ten representatives that should simplify your choices, but if you don’t find what you need, there are plenty more out there.

 Python   SQL   Java   php   Perl 
 game development   web development   internet   *nix   graphics   hardware 
 telecommunications   C++ 
 Flash   Active Directory   Windows