在UML工具中从状态图生成代码的需求 我们有一个要求,在UML工具中绘制状态图生成C++和java代码。

在UML工具中从状态图生成代码的需求 我们有一个要求,在UML工具中绘制状态图生成C++和java代码。,c++,uml,enterprise-architect,rhapsody,statechart,C++,Uml,Enterprise Architect,Rhapsody,Statechart,以前我们使用“RationalRose”,但是由于一些许可证错误,我们不能再使用它了。在rose中有一个插件,它可以从状态图生成一个文本文件,该状态图与我们的框架集成在一起 因此,现在我们需要评估和选择一个标准的UML工具来满足以下需求 @易于使用。易于绘制状态图 在GNU Linux环境下,C++从状态表生成代码的能力。[对于所有队列,线程需求由生成的代码处理。因此用户只能专注于业务逻辑] @或者提供插件或工具来生成捕获事务的文本文件 IBM的Rhapsody和SparxSystems Ent

以前我们使用“RationalRose”,但是由于一些许可证错误,我们不能再使用它了。在rose中有一个插件,它可以从状态图生成一个文本文件,该状态图与我们的框架集成在一起

因此,现在我们需要评估和选择一个标准的UML工具来满足以下需求

@易于使用。易于绘制状态图

在GNU Linux环境下,C++从状态表生成代码的能力。[对于所有队列,线程需求由生成的代码处理。因此用户只能专注于业务逻辑]

@或者提供插件或工具来生成捕获事务的文本文件

IBM的Rhapsody和SparxSystems EnterpriseArchitect这两个工具已经成为强有力的竞争者


让我知道你在这方面的建议和经验。提前感谢

我现在正在比较我们公司的UML工具。我已经尝试了一些专有工具,包括IBM、sparx EA和VP UML。只有最后两个是可以接受的——至少有点方便。虽然不多,但比其他人好

至于IBM,我有一个可怕的安装过程,用一些未知的东方语言和手动注册表编辑的指令。即使在这个舞台上,它也不会做出承诺。当我管理它时,我只尝试了类图,发现它的元素集已经过时很长时间了。它们不符合UML标准,甚至不想达到。我不会把IBM工具称为严肃或强大的工具。我没有尝试过状态机图,但是如果我不得不吐出第一个勺子,我不会吃下整个碗来知道我不喜欢它


对于EA和VP,后者对项目管理有更好的支持,但diag绘图在EA中更方便。它不那么直观,但当你抓住它时,它就更容易了。所以,现在我决定使用EA。但这是一个49比51的决定。我建议您安装这两个,并尝试在它们上执行任务,然后尝试自己绘制。对我来说方便的,对你来说可能会很尴尬。他们都有30天的自由时间。有工程选项的版本也要200美元左右。屏幕上的所有内容都有不同的组织。真的很难选择。

正如Gangnus指出的,您需要选择最适合您特定需求的工具。UML只是可视化表示的标准;底层数据存储完全由工具制造商决定,代码生成也是如此。不要期望在新工具中没有相当多的实践工作的情况下能够重用许多旧的Rose模型

我对你们两个备选方案的推荐是EA

Rhapsody是它的第三个拥有者,这对于一个软件产品来说通常不是一个好兆头,而且它只是IBM提供的几种建模工具中的一种(请参阅),而Sparx Systems只有一种产品,它的整个工程人员都专注于此

使用EA,你可以用十几种语言(包括java、C++、C++和C语言)来进行代码的逆向工程,并添加自己的代码。您可以根据需要修改代码生成脚本,此外,还可以从状态图生成代码,对二进制代码进行反向工程,并将运行代码的执行路径记录为序列图

EA是一个Windows本机应用程序,通过Wine或其商业支持的版本提供Linux支持。它对团队建模和版本控制有很好的支持。它支持模型转换和文档生成,并带有一个脚本引擎和用于Java和C#的API,使其具有极强的适应性。第三方插件也有很多选择

使用Rhapsody的主要原因是,如果您已经在使用很多IBM工具,并且希望集成它们。如果你不需要,我会和EA一起去

披露:我是一名(独立)EA顾问。

您应该尝试它支持状态图,允许您直接在浏览器中定义和运行自己的代码生成器,而无需安装任何东西。然后,您可以与您的团队共享您的模型和生成器

因为它是一个web应用程序,所以可以在任何操作系统上工作,包括GNU/Linux