Shotgun Wedding: Enterprise Architect 7.0
Good UML diagramming that won't break the bank
Agile development, for some, means avoiding diagramming (whether for documentation or analysis and design) and just getting on with testing and coding.
So goes the agile ethos: the source code is the finished product, more or less, so if the work you're doing doesn't contribute directly towards creation of source code, then it must be a waste of time. That would include drawing diagrams, exploring requirements in detail and writing them down, and so on. It's bunkum, of course.
But agility and diagramming needn't be mutually exclusive. What's needed is a tool and/or process that reduces the gap between UML (assuming that's your poison) and tests/code. If you create a class or interaction diagram, you want to see the changes reflected in the code as soon as possible. If you change the code, you want to see the diagrams updated automatically. A tool that does this job well would answer the age-old criticism of UML (okay, one of them) that the diagrams become out-of-date as soon as you begin coding.
Enterprise Architect (EA) from Oz softco Sparx Systems, while no silver bullet, brings us closer to that ideal with its support for round-tripping from model to code and back, and by integrating with Eclipse and Visual Studio. Of course, code generation and IDE support are not exactly new (TogetherJ did round-trip engineering and had its own - admittedly lame - built-in Java editor, years ago) but it's the slickness of the implementation and ability to integrate seamlessly with modern "de facto" tools that counts.
With version 7.0 released this month, EA improves on its agile goals in several areas, as well as adding some ostensibly "killer" new features. There's visualization of executing code, Model Driven Architecture (MDA) support, and some nifty lifecycle features such as model auditing, version control, requirements management, integrated testing support, Mind Mapping (presumably not the Matrix variety) and Business Process Modelling Notation (BPMN). For those that care about such things, it also boasts full UML 2.1 support.
The trouble with UML modelling tools is that the free ones are usually rubbish, and the commercial ones tend to cost even more than a five-night stay in Disneyland Paris, reinforcing the common perception that CASE tools are only for corporations with more dollars than wit.
But EA is as cheap as chips, and leaves its rivals floundering in the fryer. The Professional Edition costs a mere $199 per user (prices go up for corporate editions, but not by much). It costs roughly a tenth the price per developer seat of its main rival, bugged-out crashware Rational Rose.
Given its low price and full feature set, EA is quite popular, with Sparx claiming an installed base of over 100,000 users in more than 60 countries. That's still an almost criminally low number of users given its potential to rule the modelling world.
I do have one slight gripe to end with, though. Although Sparx's website mentions a Linux version, it's actually the Windows version executed via Crossover Office, and takes some setting up. You'll also need a WGA-certified copy of Windows to get at the required libraries.
With desktop Linux increasing in popularity, software companies need to be lobbied to provide native support for it. Relying on Crossover/WINE is a serious cop-out and provides a sub-par user experience. So Sparx, please consider yourselves lobbied!