Model的完整Java / C#代码生成工具?

时间:2011-02-16 16:01:28

标签: c# java frameworks uml

非常令人惊讶的是,没有真正的工具可以从模型中完全生成代码。我见过的所有UML工具都不是很实用,除了这个:

http://www.intrinsarc.com/

A hierarchical component model with full connectors
At the heart of Evolve is a hierarchical component model with full connectors. Connectors act like
wires between components, making it simple and intuitive to express detailed structures that are
difficult or impossible in other approaches such as dependency injection.
Resemblance and evolution
These two constructs provide unprecedented levels of support for component reuse. 

Resemblance
    is a form of component inheritance. Evolution builds on this to allow the structure of an existing
    system to be remodeled, without destroying the original definition. These facilities can be used to
    create variants of a system, or to switch in test components.

有人试过吗:你怎么看?它似乎基于UML,但不是基于UML类,而是基于其他类型的图。

任何其他可以实现UML实际代码生成的工具吗?

我的意思是真实的:EMF不是一个工具,它只是一个构建UML工具的框架,因为我看不到它本身不是一个工具,它有助于构建和维护一个应用程序。

Visual Studio Ultimate也是如此。虽然内部的UML工具非常好,但它只是另一个UML工具,它并不能真正帮助ypu模型,而只是通过键入代码以图形方式完成你可以做的事情。

3 个答案:

答案 0 :(得分:2)

我写了关于问题的Evolve系统。

Evolve生成代码以连接UML组件模型中的类。它还可以生成状态图的完整代码,这非常方便。您可以轻松导入和连接自己的类。它有效地允许您以类似于将芯片插入电子电路板的方式创建软件。

真正的优势在于它可以协调软件创建,重用和进化。换句话说,您可以创建一个系统,将其传递给同事,他们可以以任何方式进化或扩展它,即使没有源代码,也无需预先规划扩展点。您也可以扩展和重用状态图表。

它听起来很神奇,但它具有非常强大的基础 - 这是最近的博士研究的结果,它实际上是市场上更复杂的设计工具之一。监督这项研究的教授也影响了微软的COM工作。

以下是该视频的一小部分视频:http://intrinsarc.com/movies/evolve.html

尝试一下,让我们知道你怎么走!本手册有一个教程,向您展示如何构建GWT / Hibernate工作示例。 (BTW Evolve使用EMF来存储UML模型)

答案 1 :(得分:0)

我使用Sybase Powerdesigner和自定义Ruby代码(访问数据模型)从UML生成我的ORM模型。生成针对UML的代码可能很困难,因为有很多方法可以自定义模型。我有一些不是真正的类的构造型,但是被用于其他代码生成目的,这些目的是我正在解决的问题。通用代码生成器如何理解我对模型的自定义使用?

答案 2 :(得分:0)

Eclipse EMF从EMF模型(ECore)生成完整的Java代码。 EMF生成类以在内存中表示模型的实例,支持XML或XMI序列化/反序列化,用于验证的挂钩,可选编辑器等。


  

我的意思是真实的:EMF不是一个工具,它只是一个构建UML工具的框架,因为我看不到它本身不是一个工具,它有助于构建和维护一个应用程序。

在你做出这样的陈述之前,你需要做更多的研究。 EMF是基于真实模型构建真实软件的真正工具。多年来,我已经成功地使用它来构建和维护生产软件。

  

你有没有见过有人使用EMF生成一个完整的GUI应用程序?

哦,是的。自己完成了。不可否认,我在谈论特定类型的应用程序和特定类型的GUI。