Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rational, EA, or something else?

Does anyone have any thoughts on Rational Software Architect vs Sparx EA? Are there other tools I should be looking at? Specifically, I'm interested in the following;

  1. Adherance to some methodology (RUP, SOMF, etc.) -- we're not settled on one now, but need to pick one that suits a SoA architecture.
  2. Multi-modeling -- I need to model all the way from hardware (ideally with cost/spec tracking across physical and cloud) to deployment, classes/services, etc.
  3. Roundtrip -- reverse our code/data and then generate stubs as we add new classes to the model.
  4. NoSQL support
  5. Focus on code -- we're less data-centric, we don't need to model tables and entities that much.

It seems both rational and EA will do most of this, rational obviously leads with RUP. Neither seems to do the hardware mapping/costing, though sybase powerbuilder does -- not sure if im missing something here?

Any advice on how to properly evaluate/choose one? Anything else I should look at?

like image 861
XeroxDucati Avatar asked Mar 19 '12 18:03

XeroxDucati


1 Answers

It's hard to do a side-by-side based on these criteria alone, but here are some general differences.

RSA is based on the Eclipse Modeling Framework and the UML2 layer. This means you're in the Eclipse ecosystem, can run the tool on most platforms and can use any EMF and Eclipse plug-ins to enhance RSA. Downside with Eclipse is the GUI, which is based on SWT and feels clunky and slow.

EA is Windows-native and supported on Linux via Wine / CrossOver. The plug-in architecture is proprietary, so plug-ins are developed specifically for EA. The GUI feels like any Windows program, quick and smooth.

EMF / UML2 provides a higher degree of UML conformance than EA's database-based data model. RSA can feel cumbersome and obsessed with details, while EA can feel lax.

RSA does not support SysML. EA does.

EA supports SoaML. I don't think RSA does, but I'm not certain.

Code forward / reverse engineering: I'm not sure whether RSA offers any such functionality itself, or if it's simply a matter of using the appropriate Eclipse plug-ins. EA supports forward and reverse engineering of a dozen-odd source languages, and can reverse-engineer Java and .NET binaries, as well as record execution paths from native binaries.

Both RSA and EA support model-to-model transformations. Most likely the specific transformations you're after won't be supported and you'll have to construct them yourselves. Both tools can be extended, in RSA through the Eclipse plug-in architecture and Java; in EA through a proprietary model-based mechanism ("MDG Technologies") and .NET.

In terms of methodology, I know EA has support for SOMF (as well as TOGAF and UPDM), but that's not the same as enforcement. I don't know whether RSA supports any frameworks or methodologies.

Hardware is tricky in most modelling tools since it's not core to UML. You can model nodes and devices, and that's pretty much it.

On balance, I don't think you will find any tool that suits your specific needs out of the box. Instead, be prepared to make adaptations and also to make changes to your internal processes.

That said, for sheer modelling power, functionality and ease of use I would go with EA. If you want to ensure a higher degree of UML conformance and/or you are already using Eclipse-based tools, look at RSA.

Credentials / disclosure: I'm an IBM certified solutions designer for RSA, and probably Sweden's leading expert on EA. The company I work for sells an RSA-based product intended to increase RSA modelling productivity and quality.

like image 120
Uffe Avatar answered Oct 03 '22 23:10

Uffe