Thursday, April 14, 2011

Hidden features in IBM Rational Software Architect (RSA)


Being a very large tool, there's also an enormous amount of "hidden features" in RSA. Here I'm going to list a few of my favorites. Starting out with:


Controlling the order of model elements in Project Explorer (PE)

By default, model elements are listed alphabetically in PE. Often good, but sometimes you just want to be able to control the order they are listed in - but how?

Well, as with some many other things, bring up the Preferences dialog (Window > Preferences) and browse to Modeling > Views > Project Explorer.
There you'll find a section on "Project Explorer settings" in which you can modify the "Sort by" settings. Setting it to "Storage Order" gives you full control over the order of elements in PE.

Next, you very likely will want to to reorder the elements. With "Storage Order" you'll notice that they appear in the order that they were added to the model.

Reording is done by one of the more hidden features. Here's some examples:

Reordering contents of a UML Package:
  1. Right click on the package in PE and select "Properties"
  2. Switch from "General" to "Advanced"
  3. Click in the value part of the entry for "PackagedElement" and a button marked "..." appears
  4. Click this button
  5. A new Property dialog is opened - use this to move the elements up/down to suit your needs
  6. Close all dialogs and enjoy
If you need to rearrange attributes in a class, perform the same steps, but instead of locating "PackagedElement" locate "OwnedAttribute" and perform your reordining there.

As this is dependent on having the "Sort by" preference set, other users will need to set the same "Sort by" as you to enjoy your model order. You may want to consider sharing of preferences to address this issue.

Monday, March 28, 2011

Controlling Eclipse Preferences


Ever struggled with preference settings in Eclipse?
A typical case is where you have to over and over again reapply the same preferences in to new workspaces and projects. Quite tiresome.

This problem was addressed during this years EclipseCon in the talk Getting Eclipse Preferences Under Control in Teams. Here we learned of three parallel projects addressing in different ways the same issue:

Full presentation is available here.

Shortly after the session, I also stumbled across a post on the e4-dev list announcing yet another initiative e4preferences.

Given that there is a fair number of attempts to address various aspects of the "preference problem", I now hope that we can work together to, if not once and for all solve, but at least improve the preference sharing support for end users.

Except for Bug 334016, there's wikis describing what they do, so I'll have a go at explaining it.

The name of this feature is "Common Preferences" and was developed for Ericsson in order to address the problem of sharing "common preferences" between users and teams in the larger enterprise.

It has been deployed and successfully used for about 4 years now.
For the end user, the typical case could be that he/she never notices that Common Preferences is there to help out. This is accomplished by installing the feature along with everything else in the Eclipse based product and having it preconfigured to set key preferences (such as network proxies etc) upon creating a workspace.

In addition to this, the users can then add their own preferences to the list of what is to be managed. There's a neat export wizard allowing the user to identify what preferences are modified (i.e. changed from their default values) and thus helping the user to compile a Eclipse preference file which later can be imported by others in the team (including the user him/herself). It also allows the comparison of applied preferences with those defined by the Common Preferences.

As of writing, I'm waiting for this bug to progress further through the submission process. Ideally, it could result in an improved preference sharing support in the platform, possibly by merging the key features from the various initiatives addressing this gaping hole.

Why don't you go ahead and vote on bug 334016 ...