【问题标题】:Full Java/C# Code Generation tools from Model?来自 Model 的完整 Java/C# 代码生成工具?
【发布时间】:2011-06-28 11:19:37
【问题描述】:

令人惊讶的是,没有真正的工具可以完全从模型生成代码。除了这个,我见过的所有 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 模型,而只是以图形方式完成您可以通过输入代码来完成的工作。

【问题讨论】:

  • 我开始怀疑这更像是一场辩论,而不是一个真正的问题。

标签: c# java frameworks uml


【解决方案1】:

我写了问题所在的 Evolve 系统。

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

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

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

这是一个小视频:http://intrinsarc.com/movies/evolve.html

试试吧,让我们知道你的进展!该手册有一个教程,向您展示如何构建 GWT/Hibernate 工作示例。 (BTW Evolve 在后台使用 EMF 来存储 UML 模型)

【讨论】:

  • 我看到的问题是我无法让它工作阅读您的文档。例如 doc 没有解释如何导入包来创建 IRun 接口。有许多细节似乎缺失。
  • 是的,为当前的文档道歉。在过去一周左右的时间里,我一直在与一些人一起工作,并意识到这些文档过于宽泛且不易理解。 IRun 接口位于backbone.jar 文件中的com.intrinsarc.backbone.runtime.api 包中。如果您有任何问题,请随时通过 info@intrinsarc.com 给我发送电子邮件或发布到支持论坛。
  • 顺便说一句,我们总是对 cme​​ts 感兴趣,批评和改进建议。 Evolve 工具已将近十年的研究压缩成一个工具集,因此尽管它非常强大,但我们在让人们超越学习曲线时遇到了初期问题。我们希望在不久的将来改进文档等。随时将任何 cmets 发送至 info@intrinsarc.com
【解决方案2】:

我使用 Sybase Powerdesigner 和自定义 Ruby 代码(访问数据模型)从 UML 生成我的 ORM 模型。生成针对 UML 的代码可能很困难,因为您可以通过多种方式自定义模型。我的刻板印象并不是真正的类,而是用于其他代码生成目的,这些目的是针对我正在解决的问题定制的。通用代码生成器如何理解我对模型的自定义使用?

【讨论】:

  • ORM 不是完整的应用程序。上述工具旨在生成一个成熟的应用程序并使其发展。
【解决方案3】:

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


我的意思是真实的:EMF 不是这样的工具,它只是一个用于构建 UML 工具的框架据我所知,它本身并不是一个有助于构建和维护应用程序的工具。

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

您是否见过有人使用 EMF 生成带有 GUI 等功能的完整应用程序?

哦,是的。我自己做的。诚然,我说的是特定类型的应用程序和特定类型的 GUI。

【讨论】:

  • 您是否见过有人使用 EMF 生成带有 GUI 等功能的完整应用程序? ?
  • EMF 是一个用于构建 UML 工具的框架,据我所知,它本身并不是一个有助于构建和维护应用程序的工具。
  • 这就是我的观点,就我所见,除了上面的,没有什么通用的。
猜你喜欢
  • 2010-09-19
  • 2011-03-13
  • 2015-04-09
  • 2011-05-14
  • 2010-10-25
  • 1970-01-01
  • 2012-12-02
  • 2013-11-04
  • 1970-01-01
相关资源
最近更新 更多