Hey, IBM Rational, read this!
Today while at a customer we were working on integrating openArchitectureWare with the upcoming version of RSA. "Upcoming", because we needed Eclipse 3.2 and the corresponding versions of EMF and UML2. Here's what we needed to do: a) define a profile, b) apply the profile's stereotypes to the elements in certain packages and c) export the model in Eclipse UML2 format. That is - I suppose - a rather typical use case. In fact, it's the most typical use case in model-driven development. However, executing this use case is a pain in this brand-new, Eclipse based UML tool. Here's why.
So you start by defining a profile. So far, so good, no issues here. Defining the stereotypes in the profile is also reasonably straight forward. Now you apply the profile to a given package. Also no problem. Here is where the fun begins. To actually apply a stereotype to a class, for example, you have to open the UML properties, go to the stereotypes tab, press the Add Stereotype button and then select the stereotype you want to apply. These are a lof of mouse gestures. Why no simply put the stereotypes from the profile you've applied to the package directly into the menu? That would allow you to add stereotypes with one mouse gesture. After all, the whole point of applying a profile to a package is that you'll typically add some of the stereotypes in the profile to some of the classes (or whatever) in the package.
The next thing you want to do is to export the model in Eclipse UML2 format. So you go to the Export dialog, select the export format, select the model package you want to export, define the output folder, click one or two option check boxes and then press Finish to run the export. Ok, that's a huge number of mouse gestures. Now, once you exported it you'll run the generator. Most likely, during generator development, you'll find a problem, either in the generator, or in the model. So, let's say you change the model. What'll you do next? Right. Export it again. Same model, same location, same preferences. You have to go through all the same many steps again. It even forgets the directory to which you've exported stuff before! What we need is a button, directly in the top button panel in Eclipse that simply reexports the last export; same location, same preferences. Just "do it again".
Both of these features are very easy to implement. However, having these features would make a *huge* difference in productivity. Missing features like these (in addition to some conceptual problems with UML) is what keeps people from adopting UML tools for MDSD.
And by they way: Several of the other UML tools I've worked with recently had the same problem. So it's not just RSA. However, since the version of RSA I worked with today is still in beta, I have the hope that somebody from IBM Rational will actually read this blog and add the features to this upcoming version of RSA. Apart from these issues, RSA looked *really* nice - so I think I'd be able to recommend RSA as a UML tool for MDSD if these features were in! And my customer, who's got a support contract with IBM, will also inform them about these missing feaures on the "official way".