For the past month or so, I've been largely immersed in modelling a totally new version of PIER. I've done some modellling in the past, but never a soup-to-nuts model of a brand new application. After getting most of the domain model's class diagrams fleshed out, and starting to go back over it fixing problems, I've come to a few realizations:
- Modelling OO systems is friggin' hard. I'm constantly having to remember I'm modelling classes and not a DB schema.
- Modelling tools are really pathetic. I've tried a pile of UML tools, and assuming I've got two grand to spend, I can't buy something that does Java 5 round-tripping and has a decent interface. I'll admit to being spoiled by Eclipse, but even the tools that plug into Eclipse are nasty.
- Modelling without round-tripping is cumbersome. There are a lot of things that are really easy to do with code that are really difficult to do with a modelling tool. Injecting an abstract in the middle of an existing hierarchy is a good example.
All in all, however, doing a formal model is definitely a good idea, if you ask me. I've run into a number of issues with my initial conceptions of the app that would have been very expensive to change if I'd started implementing stuff without working things through first. We'll see how things go once the coding starts, though. ; )
I presume you tried Poseidon? It did an OK job, but what drove me to the edge was the whole click on something, wait five minutes and then start typing. Hate Pure Java user interfaces :D
Yeah, horribly slow. And while it requires Java 5 to run, it's only capable of round-tripping Java 1.4 code. So it fails both criteria, though it did have nice Eclipse integration, which is a plus. ;)
I don't know if it's one of the products you've looked at or if it provides exactly what you're looking for, but I've found Enterprise Architect to be very helpful in the modeling area. I don't use it for any code round-tripping, but I know they have an eclipse/java add-on that claims to support this function.
It is however, much less expensive than almost everything else I looked at when I was searching for a solution. I actually chose this product over the Poseidon product. You can find it at http://www.sparxsystems.com.au
Good Luck!
We did a full scale search for good OO modelling tools with UML to Java translation. Unfortunately, the only one we found worth buying was IBM's Rational Software Architect, which is about $8K per node.
If you just want to model without round trip (lame as noted in your post) Rational Software Modeler is pretty good… it's basically RSA without code generation. But seriously, what good is that? If you can't round trip then your spending time syncing models and code, which is no fun at all.
When it comes to OO modeling tools, there's really nothing good out there for the little guy… at least not from what I've seen to date.
- max
I'm happy to say that today I found a reasonably nice tool that meets my requirements (Java 5, round-tripping, decent UI), and it's build upon Eclipse from top to bottom to boot. It's called EclipseUML from Omondo (http://www.omondo.com/).
The down side, of course, is that it's !990 euro for a single seat, which is like 2500 USD, so certainly not cheap. However, compared to all the other tools out there, it's not terribly expensive for the feature set, and they have a [integration-crippled] free version to boot.
Mike,
I did look at EA, and had a couple issues with it, the largest being that it's for windows, and I run a Linux workstation. They say it's supported with CrossOver Office, but I've never had good luck with Windows emulators on Linux. It also makes no mention of Java 5 support, which is of great import to me. But you're right, it's a very good deal for the money if it's got what you need.
So what are you saying? Are you now dumping PIER for EclipseUML? What is PIER anyway? You didn't provide a url for it.
Sorry Chris. Wasn't very clear. PIER is the application my company provides. We're in the modelling phase of a complete rebuild, which was the impetus for the post. The functional focus won't change across the rebuild, but the platform it's built upon will be dramatically different to suit the changing needs of our customers.
In a nutshell, PIER's an online communications management suite, designed for daily usage (issuing press releases and such), but particularly suited for communications in a crisis. So if your oil refinery blows up, there's a hurricane and your city's underwater, or your merchant ship goes aground, you have an integrated communications tool to coordinate your response with the media, your stakeholders, employees, and the public. And since it's web based, you can get your public affairs team in Washington, the on-site response team in Alaska, and your lawyers in Chicago all collaborating as if they're in the same room, because they effectively are.
I forgo round tripping and generate one way from the Model. I use AndroMDA for generating the architecture (http://www.andromda.org/) and MagicDraw for UML modelling (http://www.magicdraw.com/).
A bit of a learning curve, but have found this combination to be really great. This generates a complete Spring/Hibernate/Axis stack for me. I can vary any of the generated code by modifying the code templates (in velocity), and am very happy with the whole lot!