UML 中两个用例之间的关联

3
1个回答

6

首先,让我们为这些关系命名:

在用例图中,您可以定义三种关系:

  1. 包含
  2. 扩展
  3. 泛化

然后警告您有关用例的事项

用例是文本故事,展示了“演员”与系统互动以达到“目标”的过程。

因此,不要问“是否可以使用此关系”,而是首先编写您的用例场景。您不必(也不应该)详细编写所有用例场景。采用迭代方式工作。

请查看用例的生命周期

包含关系

在编写用例时,如果您发现用例场景中的某些步骤一遍又一遍地出现[多次],则将重复步骤提取为单独的用例,然后使用“包含”关系从其他用例中引用它。[避免重复]

或者您可以使用“包含”关系将一个长用例分解成较小的子单元。[注意,避免功能分解]

扩展关系

在基于条件的用例中,您有一个可选行为。但是很多时候,在编写用例时,您会有一个扩展部分,而不必在图表中显示扩展关系,只需在该[扩展]部分记录-编写可选行为即可。但是,如果您认为可选行为很重要并且应该在用例图上看到,则应使用扩展关系在图表上显示它。

泛化关系

如果您是一位初学者建模师,请远离泛化关系。它的解释[如何编写其文本故事]有些棘手。如果想获取更多信息,请查看书籍《用例建模,Kurt Bittner Ian Spence》或《有效用例的模式》,Steve Adolph等... [Dan Rawsthorne的第7.5节。CapturedAbstraction—UML泛化应用模式]

关于示例图:

“租赁视频”和“信用卡扣款”之间的关系在技术上是合法的,因为据说“租赁视频”用例包括“信用卡扣款”:为了租赁视频,您应该始终使用信用卡扣款。而这一步[信用卡扣款]也会被“支付滞纳金”用例重复执行。[根据您的图表]

折扣是“可选的”,基于一个条件[可能是如果您租借超过3个],所以“延长”也在技术上是合法的。

但您有一些我不理解的不必要的行。

enter image description here

最终建议:

不要在用例图上浪费太多时间。重要的是使用用例场景。尽可能在您的用例图中使用最少关系。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接