UML StructuredClassifier::role 和 allRoles()

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

StructuredClassifier
第 11.8.15.5 节“关联结束”和 11.8.15.6“操作”中UML 2.5.1规范的PDF版本的275,我们看到这两项的定义:

• /role : ConnectableElement [0..*]{union, subsets Namespace::member} (opposite
A_role_structuredClassifier::structuredClassifier)
The roles that instances may play in this StructuredClassifier.

• allRoles() : ConnectableElement [0..*]
All features of type ConnectableElement, equivalent to all direct and inherited roles.

body: allFeatures()->select(oclIsKindOf(ConnectableElement))
       ->collect(oclAsType(ConnectableElement))->asSet()

/role
的预期推导是什么?它是派生的,但没有给出 OCL 实现。操作
allRoles()
返回拥有和继承的角色,但我认为
/role
不应该返回任何父级
Features
(从
allFeatures()
返回)。它确实是
member
的子集,因此可能包含一些导入的
Elements

这是正确的吗?或者

allRoles()
操作是否应该以某种方式实现
/role
属性的派生?

language-lawyer uml ocl
1个回答
0
投票

role
的推导由
{union}
简单给出。

它是子集

role
的所有属性的派生联合。所以,不需要ocl。
allRoles()
只是为了方便。它用于其他约束。

© www.soinside.com 2019 - 2024. All rights reserved.