02 July 2007

Eclipse Europa and Modeling

I needed to whip up some class and sequence diagrams today, but had some time to spare first. So I thought I'd reevaluate how easily I could get a modeling tool working that's code-aware.

First, I saw that sometime over the last week, Eclipse released Europa. I'm still a little confused how that relates to Eclipse 3.3 - I think 3.3 is the new version, which is released, however they encourage people to get Europa instead, which is a bundled release for 3.3 along the lines of Callisto.

That was only the beginning of how fragmented the development efforts around Eclipse seem to be. I started poking around in the ever-disappointing GEF/EMF/MDT/UML tooling. It seems like they've abandoned/renamed/re-organized these projects more frequently than they've gotten meaningful releases out the door, and although there's a project called UML2 Tools that's supposed to provide class and sequence diagramming, there's zero documentation on how one would use it in Eclipse. I get the impression that despite the large number of eclipse tools and projects that make up the modeling stack, none of them is meant to be used by "users", they're all for "toolsmiths" (http://wiki.eclipse.org/GMF_Tutorial)

And this toolstack always caused the dreaded Eclipse plugin spaghetti mess for me in the past, so I'm still not really impressed with it. Maybe I'm completely misusing it, but I've put in a good faith effort to read some docs and learn what to do, and it can't be that hard. So, time to move up the stack to the vendors who build on top of the eclipse tooling.

One tool I've used before, Omondo, seems to have gone through some nasty personnel issues, because now there's a competing plugin, eUML2 that apparently came from Omondo's CTO and a mass defection of engineers. So I gave eUML2 a try.

It's nice to see it builds on the Europa/Eclipse toolstack concisely. It helped me through the reverse engineering, although I got XDoclet-style annotations in my source files rather than Java5 annotations. It's terribly slow even on my MacBook Pro, but it does eventually pull in the classes I want, has a very nice presentation (including full package name, yellow warning icons, etc), and manages to discover some of the connections between the classes. The sequence diagram editor had some problems with the view falling a step behind the true model state, which I had to work around. Also, it didn't leave enough margin for some text, although it did so consistently. Overall, it was usable, and I got my diagrams done... I think it would drive me nuts for a real design phase though.

Also used the new Spring IDE 2.0 which was just released - I didn't hit any new features but I do enjoy the bean dependency graph, that makes for nice quick documentation too.

No comments: