1

我目前正在研究 UML/SysML 配置文件(使用 Cameo Systems Modeler (NoMagic))。

我创造了两个新的刻板印象。一个是与元类依赖«collaborates»的新关系,另一个是称为«SystemGroup»的类原型。

然后我向«SystemGroup» 原型添加了一个派生属性,称为“/size”。这个想法是这个属性是由通过新的 «collaborates» 原型连接到 SystemGroup 的系统的数量得出的。

我认为使用 OCL(或者甚至工具的表达式?)应该不难。我是 MBSE 的绝对初学者,到目前为止,OCL 规范和谷歌并没有帮助,因为规范非常详细,谷歌上的答案大多是通用的,比如“派生属性是由 OCL 中的特定表达式派生的属性或其他语言”。

有人可以帮助我或向我发送如何为派生属性做一些顶级 OCL 的链接吗?

提前致谢!

4

2 回答 2

1

OCL 与 Stereotypes 的使用被大量低估。在 OCL 规范中零提及,只是在 UML 规范中的一个例子的提示。基于 Pivot 的 Eclipse OCL 原型可能是唯一一致的实现,其中包含使用 base_XXX 和 extension_XXX 名称和多样性提供合理类型安全导航的提示。我怀疑任何其他工具都可以做到这一点。我怀疑 NoMagic 使用了传统的 Classic Eclipse OCL,其中 OCL 功能不足会鼓励许多用户访问 Eclipse MDT UML2 项目 Java API。

您可能会从https://help.eclipse.org/2020-03/topic/org.eclipse.ocl.doc/help/OCLExamplesforUML.html#OCLM2Constraints获得一些线索

于 2020-08-26T16:18:00.910 回答
0

如果我很好地理解一个类<<SystemGroup>>的定型派生属性/size值,那么<<collaborates>>从类开始定型的依赖项的数量(无论目标的类型如何),例如:

context SystemGroup:: size: Integer
derive: self.clientDependency->select(v | v.stereotype.name = "collaborates")->size()

连接到 SystemGroup 的系统数量

这是否意味着您也有刻板印象System并且只有刻板印象的目标<<System>>必须是 count ?如果是 :

context SystemGroup:: size: Integer
derive: self.clientDependency->select(v | v.stereotype.name = "collaborates" and v.supplier.stereotype.name = "System")->size()

警告/size元类的派生属性,因此它在应用程序级别上不可用,使用<<SystemGroup>>为其实现定型的类实例,您确定这是您想要的吗?

PS回答我用过

于 2020-08-26T16:44:31.263 回答