1

在用例图中,如果用例 B 扩展了用例 A,是否意味着只与用例 A 相关联的参与者……也与用例 B(间接)相关联?

我正在为犯罪记录管理系统制作用例图。监狱长和警察都有权通过不同的输入搜索罪犯,然后访问他的全部信息。在查看罪犯的信息时,警司也可以选择修改,而警察则没有。

现在,我已经将“搜索”和“访问信息”的用例设置为两个参与者都可以访问的相同。“访问信息”用例扩展了“搜索”用例。现在,如果我通过图中的“更新”用例扩展“访问信息”,是否意味着任何可以访问信息的人也可以更新?也就是说,我是否会错误地描述警察也可以更新罪犯的信息。

*我没有在警官参与者和更新用例之间建立关联。我对这里的间接关联感到困惑……通过搜索和访问信息。

4

1 回答 1

1

如果用例 B 扩展了用例 A,是否意味着仅与用例 A 相关联的参与者……也与用例 B 相关联

不,它没有。就向现有用例添加额外的步骤或选项而言,“扩展”关系可以被认为意味着“添加到”。因此,如果参与者与用例 A 相关联,那么他们可能与扩展用例“B”相关联,也可能不相关。

您可能正在寻找用例之间的继承(泛化)。如果用例 B 继承自用例 A,那么如果一个参与者与用例 A 相关联,则此关系由用例 B 继承。这个问题(尽管工具允许您绘制它)是用例继承的语义是' 并没有真正由标准定义,因此您需要自己清楚地定义您的意思。

不过,看看你的例子的细节,我认为你快到了。如果您创建一个扩展“访问信息”的用例“访问和更新信息”,那么只有监狱主管参与者应该有权访问它。

您还可以考虑演员之间的继承,这可以很好地工作。例如,您可以有一个访问搜索和访问信息的基本参与者“只读用户”。然后添加一个扩展“只读用户”的参与者“信息所有者”(例如),并添加对“访问和更新信息”用例的引用。您现在所做的是根据用户在系统中而不是在域中所扮演的角色来描述用户交互。这可能是有用的,也可能是沟通的障碍——这完全取决于上下文。

如果与最终用户的沟通是关键,我建议保持图表非常简单,不要使用任何这些复杂的关系。另一方面,如果使用该模型的人对 UML 有相当好的了解,那么使用“扩展”和参与者继承可以增加模型的精度并避免重复。

于 2013-01-30T20:43:27.073 回答