Extending RSA 7’s UI to support profiles

Hopefully these days, most developers are aware of UML profiles and the value that they can add to a development team. As with other UML 2.x compliant modelling tools, IBM’s RSA tooling has direct support for the creation and deployment of profiles (including into an RSM install).

Although I’ve produced profiles before, I’d always lived with having to create a generic UML element and then apply the stereotype afterwards. If your profile is something that relates to domain in which you’re working, it’s likely that you will want to create these elements reasonably frequently. In this case, this long hand approach can become a little tiresome.

So, given that RSA is based on Eclipse, the platform that promotes extensibility, I wondered whether there would be a way to extend RSA’s modelling user interface. Not holding out much hope I had a quick look in the help - only to find that indeed it does.

The help is actually pretty good (assuming you’ve got a reasonable grasp on Eclipse plug-in development and aren’t a little hard of thinking). I have to say, I was really quite pleasantly surprised. So, to prove to myself that it was as easy as it looked, I’ve created a couple of plug-ins.

The first plug-in I created includes a custom profile with a single stereotype called workflow, which can be applied to classes. The way I’ve currently got it setup, the additional palette entry can only be seen in class diagrams (i.e. don’t go looking for it in the default freeform diagrams that get created by default when you create a package).

Workflow Profile Plug-in Screenshot.

You can download this plug-in here.

When testing this out, be sure to add the Workflow Profile to your model before using the palette tool. If you don’t you’ll get a class created with its keyword set, not its stereotype. I’ve not looked into this issue in much detail, but I guess RSA doesn’t really have too much choice if the profile hasn’t been associated with the model.

The second plug-in came about because I noticed that there’s no easy way to create the RUP Analysis classes (i.e. boundary, control and entity). The analysis model template suggests copying them from the building blocks package. For some reason, I’d assumed there would be palette entries for this, but unfortunately I couldn’t find them, so I’ve created a plug-in that does this.

RUP Analysis Profile Plug-in Screenshot

No giggling at the icons please - I’m a tecchie not an artist ;-)

You can download the plug-in here.

[For information, this was developed and tested on RSA 7.0.0.3]

Leave a Reply

You must be logged in to post a comment.