来自模型的完整 Java/C# 代码生成工具?

问题描述 投票:0回答:4

令人惊讶的是,没有真正的工具可以从模型完全生成代码。我见过的所有 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 工具,并不能真正帮助你建立模型,而只是以图形方式完成你可以通过键入代码完成的工作。

c# java frameworks uml
4个回答
2
投票

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

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

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

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

这是一个实际操作的小视频:http://intrinsarc.com/movies/evolve.html

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


0
投票

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


0
投票

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


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

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

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

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


0
投票

2023:顶级模特

TopModel 是 C# Entity Framework、Java JPA、vanilla Typescript、Angular 的代码生成器。

它允许您仅使用 yaml 文件描述您的模型(以便您可以合并您的模型)。 VsCode 扩展“TopModel”以改善开发人员体验。

生成:

  • 实体
  • Dto的
  • 制图员
  • 客户端和服务器端点
  • ...
© www.soinside.com 2019 - 2024. All rights reserved.