Java EMF生成swing应用程序

Java EMF生成swing应用程序,java,eclipse,swing,uml,emf,Java,Eclipse,Swing,Uml,Emf,我正在开发简单的桌面应用程序 能够以类似UML的形式观察和修改模型结构是非常有用的,EMF允许这样做。我想将EMF代码生成方法与现有的GUI框架(即Swing)结合起来,但我还没有找到任何现有的示例 我想知道这是不是因为这不是一个合理的想法?是否有其他方法可以掌握和编辑应用程序背后的模型结构,并为具体的GUI框架生成代码?模型驱动开发背后的主要思想之一是自动生成系统的替代表示。这些转换通常被称为模型到模型(m2m)和模型到代码(m2t)转换(尽管在某些场景中,代码只是被认为是另一个模型) EMF

我正在开发简单的桌面应用程序

能够以类似UML的形式观察和修改模型结构是非常有用的,EMF允许这样做。我想将EMF代码生成方法与现有的GUI框架(即Swing)结合起来,但我还没有找到任何现有的示例


我想知道这是不是因为这不是一个合理的想法?是否有其他方法可以掌握和编辑应用程序背后的模型结构,并为具体的GUI框架生成代码?

模型驱动开发背后的主要思想之一是自动生成系统的替代表示。这些转换通常被称为模型到模型(m2m)和模型到代码(m2t)转换(尽管在某些场景中,代码只是被认为是另一个模型)

EMF是定义元模型的框架。元模型定义了模型的语义。简单地说,元模型定义了可用于对特定域建模的类和属性。例如,UML元模型允许您创建模型来表示软件系统。模型包括结构(类图),也可以包括行为(序列图、状态机等)

与EMF垂直的是,有许多框架和语言能够读取、修改和创建模型。例如,提供了各种模型管理语言来处理模型。Epsilon转换语言(ETL)允许您编写程序来执行m2m转换,Epsilon生成语言(EGL)允许您编写程序来执行m2t转换

因此,要从UML模型生成代码到具体的GUI框架,您可以使用EGL直接生成使用GUI框架API的代码。另一种方法是首先使用m2m转换和执行m2t生成GUI模型(您需要框架的元模型)。后一种方法可能是首选的,因为m2m转换可以帮助您更好地打破UML和所选框架之间的语义鸿沟

既然您提到了EMF生成,这也是一种可行的方法。但是,请注意,EMF只生成表示元模型的Java代码。在这种方法中,您必须编写所有GUI框架代码,这些代码将使用下面的EMF生成的代码作为基本模型。因此,我推荐m2m和m2t方法,在这种方法中,您将能够生成大部分(如果不是全部)代码

Epsilon框架在EGL上有一个简单的示例,展示了如何从模型生成HTML。它将帮助你了解需要什么。如果您的GUI框架是HTML,那么这将是一个很好的起点


查看m2m和m2t的详细信息需要更多关于您拥有的特定UML模型和您打算使用的目标GUI框架的详细信息。

Eclipse4对使用SWT实现的应用程序模型使用EMF。在Swing桌面应用程序中使用EMF的实际问题是什么?我不认为这会是个问题。这可能很不寻常,就好像我们在谈论eclipse和独立桌面应用程序一样,人们会使用带有SWT的RCP。@Christian我只是没有找到任何helloworld级别的“EMF->GUI应用程序”示例,不过,据我所知,这可能是一种很好的、显而易见的教学方法,例如,模式:您看到UML图,然后在一瞬间生成相应的应用程序。但如果你说这不是一种不恰当的做事方式,那就好了。