用例图中的关联方向

Association direction in use case diagrams

在 UML 用例图中,参与者和用例之间关联的方向是什么意思?是数据流向还是控制流向?标准对此有任何说明吗?

啊不。这是一个关联,在规范中,actor 和 use 之间的关联是没有方向的。请参阅从规范中提取的图像。

用法是:如果actor在左边,表示是"primary actor",激活用例的actor。如果actor在右边,说明这个actor是次要的:他参与用例但不激活用例。

请注意多样性:“该示例表明客户或管理员可能会也可能不会参与他们的任何相关用例 (因此 0..1 多重性)。从 UseCase 的角度来看,示例中的每个 UseCase 都必须有一个 Actor 来 启动它(因此是 1 的多重性)。存款和登记 ATM 用例需要银行的参与,而 银行可以同时参与许多存款和注册 ATM 用例。”(摘录,p641)

关键是如果你有很多演员,让他们留在左边或右边并不容易。所以"I"(但这是我的方式,不是规范)使用定向关联,如果这是从演员到用例,这意味着演员是主要的,如果这是从用例到演员这意味着这是次要的。

UC 图中的方向没有约定的共同含义。我曾经使用定向箭头和非定向箭头来区分主要和次要参与者(并将其写在领域的建模指令中)。我不是唯一这样做的人。直到后来我才了解到(正如@granier 指出的那样)将主要参与者放在系统边界的左边,将次要参与者放在系统边界的右边也是很常见的。

N.B。正如@granier 所评论的,UML 规范中的 UC 内容太技术化了。其中有些像 include/extend 一样可疑,这很容易被误认为是功能分解。 @granier 从规范中获取的图片甚至缺乏对 UC 名称的良好措辞。我宁愿去读 Bittner/Spence 那些真正知道他们在用商业术语谈论什么的人。