0

We have a requirement to generate c++ & Java code out of StateCharts drawn in UML tools.

Previously we used "Rational Rose" but due to some license error we can not use it anymore. In rose there was a plugin available which generates a text file out of the stateChart which was integrated with our framework.

So now our need is to evaluate & select a standard UML tool which fulfill the following requirement.

@ ease to use. Ease to draw stateCharts.

@ ability to generate code from the stateCharts for C++ in GNU Linux env. [ with all queue, thread requirements handled by the generated code. So that user can only concentrate on the business logic]

@ OR availability of a plugin or tool to generate a text file capturing the transactions.

Two tools have come forward as strong contenders - IBM's Rhapsody & SparxSystems EnterpriseArchitect.

Let me know your suggestions and experience in this area. Thanks in advance

Promit
  • 1

3 Answers3

1

I am comparing the UML tools for our company now. Of proprietary tools I have tried several, including IBM, sparx EA and VP UML. Only the last two were acceptable - at least a bit convenient. Not much, though, but better than others.

As for IBM, I had the awful process of installation with instructions in some unknown orient language and manual registry editing. It simply won't does what promises even on this stage. When I managed it, I have tried only class diagrams and found, that its elements set is obsolete for a long time. They are NOT up to UML standard and even are not trying to be. I wouldn't call IBM tool a serious or a strong one. I hadn't tried state machine diagrams, but if had to spit the first spoon, I won't eat the whole bowl to know I don't like it.

As for EA and VP, the last has better support for project management, but the diag drawing is a bit more convenient in the EA. It is less intuitive, but when you catch it, it is easier. So, now I have decided for EA. But it was a 49 to 51 decision. I would advice you to install the both and try YOUR tasks on them and try do draw yourself. What is convenient for me, could be awkward for you. They both have 30-days evaluation free time. The editions with engineering options are about $200 for both, too. And different organization of everything on the screen. Really hard to choose.

Gangnus
  • 24,044
  • 16
  • 90
  • 149
0

As Gangnus noted, you need to pick the tool which best suits your specific requirements. UML is just a standard for visual representations; the underlying data store is left entirely up to the toolmakers, as indeed is code generation. Do not expect to be able to reuse much of your old Rose models without a fair bit of hands-on work in the new tool.

My recommendation out of your two alternatives is EA.

Rhapsody is on its third owner, which is generally not a good sign for a software product, and it's only one of several modelling tools IBM offers (see my answer re EA vs RSA) - whereas Sparx Systems only has one single product and focuses its entire engineering workforce on that.

With EA you can forward and reverse engineer code in a dozen-odd languages (including Java, C, C++ and C#), and add your own. You can modify the code generation scripts as you wish and in addition, you can generate code from state charts, reverse engineer binary code and record execution paths from running code as sequence diagrams.

EA is a Windows-native application, with Linux support via Wine or its commercially supported version Crossover. It has good support for team modelling and some support for version control. It supports model transformations and document generation, and comes with a scripting engine and APIs for Java and C#, making it extremely adaptable. There is also a pretty good selection of third-party Add-Ins.

The main reason to go with Rhapsody would be if you're already using a lot of IBM tools and want to integrate them. If you don't have that need, I'd go with EA.

Disclosure: I am an (independent) EA consultant.

Community
  • 1
  • 1
Uffe
  • 10,396
  • 1
  • 33
  • 40
0

You should try GenMyModel it supports State Diagrams and allow you to define and run your own code generators directly in your browser, without installing anything. You could then share your model and your generators with your team.

As it is a web application, it works on any OS, including GNU/Linux.

Xaelis
  • 1,609
  • 10
  • 17