0

在 EMF 中,用户可以绘制 UML 图,并且可以将 UML 模型转换为 Java 代码。据我所知,EMF 有自己的内部数据结构来捕获用户绘制的 UML 模型。而我想做的是通过编码而不是绘图来制作UML模型,即使用EMF的内部数据结构表示UML元模型(类,包,属性等)。像,

UmlClass myClass = new UmlClass();
UmlAttribute myAttr = new UmlAttribute();
myClass.addAttribute(myAttr);

这可能吗(甚至不是通过 EMF)?无论如何,我想使用一个完全反映 OMG 标准 UML 规范的健壮数据结构。

提前致谢。

4

2 回答 2

0

没有完全反映 OMG 规范的类,但 EMF ECore 是模型的元模型。因此,您可以使用 EMF ECore 做您想做的事。http://www.eclipse.org/modeling/emf/docs/#overviews上有很多文档和一本好书。该链接有一张图片和该书的链接。

一个例子:

EcoreFactory ecoreFactory = EcoreFactory.eINSTANCE;
EClass myClass = ecoreFactory.createEClass();
myClass.setName("MyClass");
EAttribute myAttr = ECoreFactory.createEAttribute();
myAttr.setName("myAttr");
myAttr.setEType(EcorePackage.Literals.ESTRING);
myClass.getEStructuralFeatures().add(myAttr);
于 2011-09-22T12:34:18.920 回答
0

EMF 是一个建模框架,旨在支持一般建模,而不仅仅是 UML。

如果您特别关注 UML,那么确实有这样一个构建在 EMF 之上的实现。查看UML2

于 2011-09-22T21:07:29.750 回答