在UML工具中从StateCharts生成代码的需求



我们需要生成c++&用UML工具绘制的StateCharts中的Java代码。

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

所以现在我们需要评估;选择一个满足以下要求的标准UML工具。

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

@在GNU Linux环境中从C++的stateCharts生成代码的能力。[所有队列、线程需求都由生成的代码处理。这样用户就只能专注于业务逻辑]

@或者插件或工具的可用性,以生成捕获事务的文本文件。

有两个工具是有力的竞争者——IBM的Rhapsody&SparxSystems EnterpriseArchitect。

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

我现在正在比较我们公司的UML工具。在专有工具中,我尝试过几种,包括IBM、sparxEA和VPUML。只有最后两个是可以接受的——至少有点方便。虽然不多,但比其他人好。

至于IBM,我经历了一个糟糕的安装过程,用一些未知的东方语言编写指令,并手动编辑注册表。即使在这个舞台上,它也不会兑现承诺。当我管理它时,我只尝试了类图,发现它的元素集已经过时很长一段时间了。他们并没有达到UML标准,甚至没有试图达到。我不会称IBM工具是一个严肃的或强大的工具。我没有尝试过状态机图,但如果必须吐出第一勺,我不会因为不喜欢而吃掉整个碗。

对于EA和VP,最后一个对项目管理有更好的支持,但在EA中绘制diag更方便。它不那么直观,但当你抓住它时,它会更容易。所以,现在我决定参加EA。但这是一个49比51的决定。我建议你把两者都安装好,试着在上面完成你的任务,试着自己画画。对我来说方便的事,对你来说可能很尴尬。他们都有30天的免费评估时间。带有工程选项的版本也都在200美元左右。以及屏幕上所有内容的不同组织。真的很难选择。

正如Gangnus所指出的,您需要选择最适合您特定需求的工具。UML只是可视化表示的一个标准;底层数据存储完全由工具制造商决定,代码生成也是如此。如果没有在新工具中进行大量的实践工作,就不要指望能够重用大部分旧的Rose模型。

在你的两个备选方案中,我的建议是EA。

Rhapsody是它的第三个所有者,这对软件产品来说通常不是一个好兆头,它只是IBM提供的几种建模工具之一(请参阅我对EA与RSA的回答),而Sparx Systems只有一种产品,并将其整个工程人员集中在这一点上。

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

EA是一个Windows原生应用程序,通过Wine或其商业支持版本Crossover支持Linux。它对团队建模有很好的支持,对版本控制也有一些支持。它支持模型转换和文档生成,并配有Java和C#的脚本引擎和API,使其适应性极强。还有一个不错的第三方加载项选择。

使用Rhapsody的主要原因是,如果您已经在使用许多IBM工具并希望将它们集成在一起。如果你没有这种需要,我会选择EA。

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

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

由于它是一个网络应用程序,它可以在任何操作系统上工作,包括GNU/Linux。

最新更新