Enterprise Architect
Miscellaneous Forums/General Discussion/Enterprise Architect
http://www.sparxsystems.com.au/products/ea/editions.htmlI vaguely knew about this product a few years ago, but I've only just started using it.
It's pretty damned good! I've been using it for PHP, but it has support for C, C++, C#, Java and several other languages, and you can add export capability for any language you want (I've already done a simple Blitzmax Exporter).
Has anyone else used it?
If so, how do I export my BMax language template so it can be used by other people?
incidentally, you can buy it cheaper here:
http://www.pcwb.com/catalogue/item/SPXEA001 than on their site.
Sorry...what does it do?
It's a UML modelling tool, you define your classes using UML diagrams then generate the code for them.
Because it can reverse engineer all the languages it supports, you can then make changes to the code and re-import the classes into the software and the diagram is updated.
It also supports amongst other things, use cases and data models.
I never used to see the point of UML (I did just fine before) but it's grown on me significantly over the last couple of years, it really helps clearly define the class/database interactions.
Given I still don't know what it does, I don't think its for me :)
@boomboom: From what im aware, at its simplest, UML is an attempt to make coding/design easier by creating diagrams; the UML software then converting these diagrams to code, or the other way round.
Unfortunately, (like alot of other things in this world) the simple concept is cluttered by lots of complication and 'red tape' so as to negate most of the benefit.
Ive looked at products from rational/IBM before, but never really found one thats 'dumbed down' enough for me to start dabbling with, or with support for a language that I was using, so I never got into it.
Would be very interested in this software if blitz can be supported. May kickstart me into trying this again.
There's not really a lot of complication in it, there are many things you *can* do, but you don't need to. The thing that put me off more was that I didn't understand the terminology, but with a bit of fiddling it started to make sense.
Have you looked at Star UML? That does reverse engineering/code generation, and it's open-source... (aka no cost)
Though I'm not sure if you can extend beyond the core languages it supports (I guess ya get what you pay for...)
For small projects that have just a handful of classes or data structures, UML diagrams are a bit of over kill...
I don't usually use UML for code generation. I use code smith templates for that typically. But in larger enterprise level applications, UML been an important communication tool.
For instance, with Star, I can tell a junior programmer how to climb through the object graph to get a particular piece of data by just selecting the classes he needs. The tool draws out the classes, automatically figures out relationships and draws arrows, etc... It's saved me from writing extensive emails and explanations (at which point, I could have probably just written the code myself by then)
I've looked at StarUML and used it for a while, but it's not been updated in over a year and a half and the PHP support is limited to an export only template. Adding new languages is possible, but not as easy, and the UI isn't quite up to scratch.
With EA I can create a class diagram, export it, open the files in eclipse, add code to them, even add new properties and operations (functions) and then re-synchronize the diagram with the source and it will update the diagram and preserve my code.
Of the free ones, StarUML is definitely the best I've seen, but it isn't nearly as good as EA.