Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml EMF中的聚合与合成_Uml_Aggregation_Eclipse Emf - Fatal编程技术网

Uml EMF中的聚合与合成

Uml EMF中的聚合与合成,uml,aggregation,eclipse-emf,Uml,Aggregation,Eclipse Emf,EMF中只有组合关系,这是真的吗?或者有一种方法可以在我的模型之间创建聚合关系 谢谢我记得,有可能。。。我没有插件了 看一看,第3.2节。创建生态核心图 EMF中只有组合关系,这是真的吗 有点。在EMF中定义关联的唯一方法是使用一个erereference(实际上,精确地说,它们是一对-每种方式一个)。EReference有一个“包含”标志。EMF在生成过程中使用它:例如,在生成的EMF编辑器中,containment=true允许您创建引用类型的子节点。如果没有,你只能参考他们 然而,更相关的

EMF中只有组合关系,这是真的吗?或者有一种方法可以在我的模型之间创建聚合关系


谢谢我记得,有可能。。。我没有插件了

看一看,第3.2节。创建生态核心图

EMF中只有组合关系,这是真的吗

有点。在EMF中定义关联的唯一方法是使用一个
erereference
(实际上,精确地说,它们是一对-每种方式一个)。EReference有一个“包含”标志。EMF在生成过程中使用它:例如,在生成的EMF编辑器中,
containment=true
允许您创建引用类型的子节点。如果没有,你只能参考他们

然而,更相关的问题是:你所说的聚合与合成是什么意思?聚合在UML中定义得非常松散,每个人都有自己的解释

也许你可以说更多关于你想用聚合和合成来表达的规则


hth.

一旦您使用关联,最好避免使用EMF

我会用一个例子来解释我的问题。假设我们有3个模型:房间、墙、椅子。关系{Room,Wall}是一种组合关系(没有房间,墙就无法“生存”),但关系{Room,Chair}是一种聚合,我们可以分别实例化房间和椅子,我没有发现如何在EMF中表达这种关系。在UML中,它由一个空/白菱形表示,但组合由一个暗/满菱形表示。明白了吗?好的,这很有帮助。那么有两件事。(1) 我真的不认为你需要聚合。你有一个简单的二元关系。UML中的聚合是一件非常复杂的事情——语义非常弱,在实践中没有任何价值。这就引出了第(2)点:只需使用
erereference
,将{Room,Chair}的包容设置为false。这不是我需要的,我的问题是关于EMF中不同类型的关系,似乎只有3种:简单的关系(电子引用、组合(包含)、继承),我正在寻找如何进行聚合。不过还是要谢谢你;)我认为,当引用被视为“任何对子对象具有包含引用(EMF元模型中的包含=True)的父对象管理该子对象的生命周期”的组合时,否则它将被视为聚合。第一部分是确定的,但您的“Else”零件号:)它将被视为一个简单的关系。这就是为什么我问如何进行聚合我认为你应该区分元建模和建模,你在谈论UML概念(关联、聚合和组合)。。。EMF中没有确切的等价物,因为它是一个更高的层次,UML可以使用EMF进行设计。。。在EMF中,您创建了自己的概念:关系A(关联)、关系B(聚合)。。。对于这一点,您将看到更通用的概念(关系/多重性…)非常清楚,这里出现了一个大问题:我必须从Magic Draw导出一个元模型并将其导入EMF,我可以看到我的模型,但无法实例化它,由于EMF处理了许多错误和歧义,这就是为什么我想更改元模型并将其应用于EMF,但在这样做之前,我必须证明这个问题!关联属性应由目标分类器拥有,并保存为UML2中的属性。一旦您不能用EMF定义完整的UML关联属性,那么这是无用的。EMF是面向java代码的,在java中,聚合和组合之间没有区别。只有在模型或图形级别才能看到它。希望对您有所帮助:-)