UML 协作和结构化分类器

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

我仍在尝试在

/role
的背景下理解
StructuredClassifier
属性。如果我正确理解
{union}
,这意味着
/role
指定的集合中的所有元素都必须是包含在其子集之一中的元素。在 UML 参考中搜索术语“子集角色”,我发现只有两个子集属性:
StructuredClassifier::ownedAttribute
Collaboration::collaborationRole
,它们一起形成
/role
的派生并集。

但是为什么

/role
存在于
StructuredClassifier
中呢? AFAICT 直接拥有
Collaboration::collaborationRole
子集
StructuredClassifier::ownedAttribute
就足够了,因为
Collaboration
没有需要考虑的其他可能的子集属性的专业化。
Collaboration
是否可以拥有角色,即属性,而这些角色却不是
ownedAttributes
?还是有时在
/role
的上下文之外使用
Collaboration

language-lawyer uml
1个回答
0
投票

是的,

collaborationRoles
不一定是
attributes
Collaboration
。因此,这两个集合都是
role
的子集,但可以并且经常具有不同的内容。 enter image description here
collaborationRoles
可以是其他
attributes
Classes
parameters
Operations
Behaviors
、或者
variables
Activities

PS:后者很少使用,大多数人从未听说过它们。

PPS:没有为

collaborationRoles
指定非
Properties
的符号。而且 Cameo 无法在复合结构图中显示不属于
attributes
Collaboration

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