Sparx Systems Forum
Enterprise Architect => General Board => Topic started by: derek73 on February 13, 2006, 01:45:50 am
-
I just made a recommendation to my management to purchase a few licenses of EA. But the plethora of UML modeling software available out there sure made the research lengthly. I'm by no means an expert in UML or OOP software engineering, and that element in itself was a prominent criteria to selecting software - intuitive interface required!
I spent days (literally) researching modeling and CASE tools with a desire to pay as little as possible and get the most intuitive interface and robust featureset as possible. Only two software bundles captured my requirements (non-Java shops will quickly find themselves eliminating many of the available tools).
I'm at a small company that has no problem using OpenSource software whenever it gets the job done. We run on multiple desktop platforms, and don't really have any CASE software deployed, but the complexity is going up, and many of our new (and senior) devs are OOP naturals, so finding something to cover basic needs is becoming increasingly important.
My research started with an opensource diagraming tool called Dia, available to any platform that runs GTK+. It does a nice job representing UML and provides form-driven interfaces to construct classes. But it's just not a modeling tool, so I hit Google.
I reviewed and tested everything from Magic Draw to Visual Paradigm to Poseidon, looked at opensource tools such as Gaphor, ArgoUML and Umbrello, and kept coming back to EA for the features that I wanted. Python support was a big bonus, but usability and code generation/reversal was high on the list. This is what I learned in my endeavors:
(a) Scrap any product that's Java-based. It's typically slow, ridden with display/interface bugs, and bogs down as the size of the project increases. I can't believe some of these companies are getting away with $400 a shot for this shoddy software. I think performance and reliability outweigh cross-platform compatibility, and there's always VMWare!
(b) Scrap any product that thinks Java is the only language in the universe worth generating (unless you happen to be a Java shop)
(c) Scrap anything over $500 per annual license. $5500 for some of these licenses, what?! Does your tool write our software for us?
(d) Don't buy into a massive, complex framework that is going to take a dedicated person to deploy and maintain just to obtain a UML tool. Don't get into anything that will forever tie your software development practices into one platform or method - unless you're a big company with lots of process in place.
(e) Look for tools that are immediately productive. Producing basic diagrams and class frameworks the same day as installation should be possible. Learning the basics shouldn't require reading all of the help, but the help should be very thorough, detailed, and immediately accessible.
In any justification for software, no matter how large or small, it's always nice to present a Free alternative. Umbrello is my OpenSource of choice, and I use it successfully. It's a great piece of software, and has serious potential. It's reasonably stable (about 90% in my estimate), friendly to use, forward-engineers C++, C#, Java, PHP5, Python and Ada, and reverse-engineers C++. The most obvious limitation is it only runs on Linux and requires the KDE/Qt libraries to run. For my own purposes at home, it's perfectly sufficient (the help is light but right for the tool).
But alas, it's no EA. Someone at work was under the impression that EA only reverse-engineered Oracle schemas, but when I read that it is supposed to do Postgres, I got pretty excited. Round-trip on Python and C++ as well? Awesome. And the total project planning/designing/requirements tracking thing is sweet. The license cost compared with the feature set truly creates an appealing situation which drew me back to the website for further investigation about a dozen times over the past week.
It should be no problem to convince management to grab a few copies. But Failing that, I'll just buy one myself and run a cross-over office deployment on my laptop. Since a respected developer is pushing for the corporate edition, it won't be long before our plotter is spewing 30 feet of database schema (I hope).
I'd be interested to read further comments and feedback on the community's experience with the product, in addition to what is in the forums. I hope my decision is well informed and my faith in this product is well-placed!
-Derek73
-
You probably won't receive any flames for that post ;)
What I (and many others) can add: Sparx support is very responsive as you can see here in this board. The number of features they release per year increases much more than the price. And of course the price/performance ratio is outstanding. Sparx is also reacting on bug reports immediately and most reported bugs are fixed in the next release.
On the other side you will find some glitches when you deal with EA's Unique Interface (UI). This is of (still) minor importance and I didn't abandon hope that Sparx will fix them in the future.
-
Derek,
Good analysis. We convinced management to buy a floating license (5 user) we'll use on a current project. Following the project, we'll have to decide if we want to spread UML and EA to everyone. If so, the training issue, including cost and time will be critical. Learing curve for EA seems acceptable, learning UML seems daunting.
Mitch
-
In my little world the MagicDraw vs. EA battle is still raging.
I’m a convinced EA fan due to the features/price, powerful DB integration and freedom of modeling. I actually get irritated when a tool forces me to model ‘correct’ UML; I know UML, but sometimes want to break the rules to get the message across.
The MagicDraw fans are feverishly holding on to the missing XMI 2.0 support in EA. If Sparx could just do me the favor of cutting this last little straw... victory would be declared over night. Pretty Please?
-
what I hated in MagicDraw is slowlyness - Java takes it's bet, but maybe currently this isn't a big issue (progress in CPU technology & etc).
What I very enjoy in EA is the latest "class wizard" :D it greatly improves drawing... very nice ;D
-
This morning when I came into work, the afformentioned lead developer had written up a nice supporting email blog as to what she thinks a tool like EA could bring to our development strategy. My manager told me she's going to request 3 corporate license (possibly floating).
Can someone please confirm that I read this correctly: EA has the potential to reverse engineer a Postgres schema from a live database? That was my interpretation from reading through the Help. Someone else has the impression that it will only use the database to save models, not actually help engineer them. Did I get the Postgres engineering support feature correct?
In the meantime, I'm sorting out the Crossover Office fiasco - a couple of years ago, Codeweavers was really confused on how to get customers access to download their software once they took your money. Eventually, we somehow got the package and dropped it on an internal server for the licensed users to access. We're going around in circles again trying to find the license renewals, so it looks like we're just going to buy a bunch of new licenses and avoid the headache. *sigh* Thank god it's not $5500 a license. Ha! (I think finding a CASE tool license for the price of $5500 has permanently scarred me).
-
In my little world the MagicDraw vs. EA battle is still raging.
The MagicDraw fans are feverishly holding on to the missing XMI 2.0 support in EA. If Sparx could just do me the favor of cutting this last little straw... victory would be declared over night. Pretty Please?
There are only two places for Java and JRE-based tools, in my opinion. One is when portability (cross-platform deployment) and the correlated reduction in development time are first priority; the second is when the tool is OpenSource (and therefore FREE), which removes a user's right to make demands.
Restructuring EA internals to abstract the product a layer up from Windows and Access to provide an avenue for it to run natively on MacOSX would marginally increase market share, but probably not enough to cover the costs of development. Crossover Office licenses run about $40, and coupled with the price of EA, the total deployment cost to Linux is still substantially less than MagicDraw costs for a single license ($499 for a standard edition, and $1599 for enterprise, source: http://www.magicdraw.com).
While it would obviously be stupid to question why EA charges so little for their software, it does raise the question, "Is EA missing any substantial features MagicDraw provides?" How far ahead of, or what features do a competetive product need to offer in the world of UML modeling for a corporation to justify a substantially higher cost? This wasn't a question that needed to be answered in my analysis, but is definitely a valid question that some companies will need to ask. Is another product worth an extra $1200 per license?
-
While it would obviously be stupid to question why EA charges so little for their software, it does raise the question, "Is EA missing any substantial features MagicDraw provides?" How far ahead of, or what features do a competitive product need to offer in the world of UML modeling for a corporation to justify a substantially higher cost? This wasn't a question that needed to be answered in my analysis, but is definitely a valid question that some companies will need to ask. Is another product worth an extra $1200 per license?
Yes, MagicDraw has a MUCH more consistent User Interface (as opposed to EA's Unique Interface).
I also suspect that internally, MagicDraw has a more orthogonal design allowing it to implement functionality more consistently.
However, EA still wins out (and not on price - how cheap do you want the wrong product). Price is only really a consideration when there is an order of magnitude difference. The price is a bonus, however, that doesn't mean that I really enjoy using EA. It's just the best of a bad lot. It can still be a LOT better...
(And before I get flamed, I have in a past life created a Conceptual Modelling tool, so I can talk from some knowledge about what these kinds of tools need to do and how they can go about it.)
Paolo
-
Can someone please confirm that I read this correctly: EA has the potential to reverse engineer a Postgres schema from a live database? That was my interpretation from reading through the Help. Someone else has the impression that it will only use the database to save models, not actually help engineer them. Did I get the Postgres engineering support feature correct?
I haven't done it with Postgres but with Access, SQL Server and MySQL but AFAIK you can use also Postgres for re-engineering. Note that views are not supported at all at the moment.
The repository can be stored in almost any ODBC-capable database.
-
...(And before I get flamed, I have in a past life created a Conceptual Modelling tool, so I can talk from some knowledge about what these kinds of tools need to do and how they can go about it.)
Paolo
You won't get flames since you are simply right with your statement. Hopefully Sparx will also come to the point where they start improving the UI instead of feature-mania.
-
Yes, MagicDraw has a MUCH more consistent User Interface (as opposed to EA's Unique Interface).
...that doesn't mean that I really enjoy using EA. It's just the best of a bad lot. It can still be a LOT better...
Wouldn't be a scary future, if Sparx decides to hire Paolo for UI redesign? ;) However, this idea very attracts me ... don't know for Paolo ... 8)
-
Wouldn't be a scary future, if Sparx decides to hire Paolo for UI redesign? ;) However, this idea very attracts me ... don't know for Paolo ... 8)
Don't applaud, throw money... ;D
-
Don't applaud, throw money... ;D
Would be nice to get sparxians opinion on this ...
P.S. register as users request?! ;D
-
Would be nice to get sparxians opinion on this ...
It would be a long commute across the Nullarbor... :-/
-
It would be a long commute across the Nullarbor... :-/
My consulting company could run a short course... 8) 8)
You know where I am...
Paolo
-
Most excellent! /evil_laughter
I'm now running one of four new shared license corporate editions! My model is looking pretty snazzy! I have two class models. One shows the implementation and the framework, while the other just shows the implementation to get rid of the inheritance (realize and generalization) lines and objects.
I have a sequence diagram for components, and another sequence diagram for instances of the classes at run-time. It's pretty fun! I just jammed 20 files into the source code repository for source code generation.
Diagraming the project with UML has taken the original concept and reworked it. I discovered so many limitations in the original design - mainly in relationships at the wrong level of abstraction (i.e. only the Compiler class needs to know about the Parser, the whole program doesn't care about what a Parser is or what it does).
Anyway, it's been a challenge. I'm now writing actual code based on generated templates -- just gotta figure out how to get that self variable in the python templates.
Y'all thought I had disappeared, didn't ya!
-
My company use EA for software development and system modeling.
Even if I am a real EA fan, there are some missing features that are really annoying.
Some of the developpers in my teams says they could do with the ability to rename a class throughout the whole project and the code. I think they're thinking of Eclipse Refactoring function. And when one rename a class directly in the code, reverse engineering creates duplicates class in the model. That also is boring.
Personnaly this is a minor drawback, but I am not a developper.
Comming to system development (where there is no need for code generation), the major feature here is the ability to execute the model, i.e. running state machines and checking the generated sequence diagrams. I know only one tool with that ability : Ilogix Rhapsody, that may become Telelogic Rhapsody since Telelogic recently buy Ilogix. But the licence price is 12 000$. My management staff is not ready to pay that price... for the moment. But this may change when system complexity will increase. I'm working on an add-in that could execute state-machine, but it won't replace a built-in feature.
Eventually, I would like to 'sanity' ckeck my models. That also can be done with add-ins but, then the add-in would be designed for one company rules. A built-in feature should be modular.
-
You would do well to break these ideas into individual feature requests, and post them in the Suggestions and Requests board. First, check to see if there is a fairly recent thread for each. [I know that several members have remarked about name changes not propagating through the model - or the generation process - but don't know if anyone has actually made the request. I for one would second this request.]
Sparx does pay attention to what's requested. Other forum readers can add their support to a request, giving Sparx some idea of where the 'hot spots' are.
-
Done !
You can add your vote here
http://www.sparxsystems.com.au/cgi-bin/yabb/YaBB.pl?board=suggestions;action=display;num=1142542272;start=0
and here
http://www.sparxsystems.com.au/cgi-bin/yabb/YaBB.pl?board=suggestions;action=display;num=1142541931