简单用例图 - UML

Simple Use Case Diagram - UML

我有一个网页,里面有一个由许多节点组成的图表。用户显然可以查看图表(用例:preview the graph)。它还可以根据参数和难度过滤图的节点,在这种情况下,图会自行更新并突出显示感兴趣的节点(用例:filter nodes)。

我的问题是:像图中这样插入一个«include»有意义吗?我想是的,因为当图表更新时,用户会显示再次更新的图表的预览。

编辑:这是图表;右侧有 FILTER 面板,可以按难度和主题进行过滤。

UML 语义

«include» 表示一个用例总是包含在另一个用例中。

因此,我们从您的图表中了解到 Preview graph 是一组独立的行为,但它也可以包含在 Filter node 中。因此过滤总是意味着预览。

形式正确,意思似乎与您的叙述相符。此外,它强调了行为集的重用。

用例逻辑

但是,用例原则上是用户目标,而不是分解得更详细的特性或功能。而且您的叙述似乎更多地描述了功能和用户界面,而不是目标。

此外,一个«include»并不代表一个序列。如果 Filter node 包括 Preview graph 这并不意味着过滤导致预览,也不意味着过滤发生在预览之前。

站在用户的角度

虽然我们可以争论预览或过滤可能是用户目标,但很明显预览不是过滤的子目标。

那么这里用户的真正目标是什么?难道是Navigate in the graph?它是如何完成的,是用户界面细节:我们只是浏览图片吗?我们是否提供过滤功能以方便导航?我们是否使用着色来突出显示某些部分?我们放大看更多吗?所有这些都是(有趣的)功能,但不是独立的用例。

编辑后编辑

您的屏幕截图强化了我之前所说的内容:过滤只是一种在预览中更轻松地导航的方法。我建议不要将其视为用例。

如果你不顾我的建议想要在图表上显示过滤,那么你应该使用 <> 来表明过滤行为可能会丰富导航行为:

                                               <<extend>>
actor --------- Previsualize/Navigate graph <-------------- Filter interests