1

我只想确定我是否正确使用了扩展和包含。如果我在这里的某个地方使用不正确,请指出在哪里,如果可能的话,为什么它不正确。

https://imageshack.com/scaled/large/163/nlnk.jpg

干杯。

4

4 回答 4

1

<<include>>和的使用规则<<extend>>很简单:

  • <<include>>定义了一个子用例,它总是包含在一般用例中:用例子 -include--> 用例。通常它用于表示用例的不同部分或可以被其他用例重用的公共部分。

  • <<extend>>定义了一个可以在特定条件下执行的可选子用例(应该在较低级别的设计中定义,而不是在用例图中)。这里关系的方向与关系相反<<include>>用例子 <--extend- 用例

将这些规则应用于您的图表并确定它是否正确。

于 2013-06-26T05:37:25.117 回答
0

许多关系在这里显然是不正确的。然而,我认为这张图的主要问题不是正确使用包含和扩展,而是复杂和整体不清楚的关系。尽管在情景上是有效的,但您应该避免使用多于一层的这些关系。

你的图表真的很难理解和解释。

一些重构思路和更正:

  • 单独显示“安全登录”类,仅与 Actor 链接,然后对“包含”它的所有用例应用以下先决条件:“用户已安全登录”
  • “5 分钟后注销”应该是自己的用例,也只连接到 Actor,有 2 个先决条件:“用户已安全登录”和“用户 5 分钟处于非活动状态”
  • 删除“5分钟后注销”和“发起呼叫”之间的包含。扩展可能更合适
  • 颠倒“转移资金......”和“确保足够的资金......”之间的包含方向 - 很明显,第一个包含第二个,反之亦然
  • 考虑将图表分解为 2 个或更多仅相关 UC 的简单和小型图表:例如,所有登录/注销都可以单独显示并简化视图。一张图上的用例不应超过 5-7 个
于 2014-04-24T07:43:11.837 回答
0

在我试图区分用例图中使用扩展和意图之间的区别之前,我发现了这条建议。我希望它也能帮助你。最初的建议来自这个 StackOverflow 答案

扩展和包含之间的区别

当一个用例有条件地将步骤添加到另一个第一类用例时,使用扩展。例如,假设“提取现金”是 ATM 机的一个用例。“Assess Fee”将扩展 Withdraw Cash 并描述当 ATM 用户不在 ATM 所属机构银行时实例化的条件“扩展点”。请注意,基本的“提取现金”用例独立存在,没有扩展。

包含用于提取在多个用例中重复的用例片段。包含的用例不能独立存在,没有包含的用例是不完整的。只有在重复很重要并且设计存在(而不是巧合)的情况下,才应谨慎使用。例如,在每个 ATM 用例开始时发生的事件流(当用户放入他们的 ATM 卡、输入他们的 PIN 并显示主菜单时)将是包含的一个很好的候选者。

此外,从我读过的每一本书中,总是建议使用 include 和谨慎地扩展。保持简单愚蠢。

于 2014-04-24T02:52:52.263 回答
0

看起来好像需要在您链接的其他活动之前执行“安全登录” <<include>>。包含意味着该用例每次也运行包含的用例,在这种情况下,这可能不是您想要的(每个会话只有一次登录)。您始终可以创建新的刻板印象,例如<<precedes>> or <<requires>>. 始终如一地使用它们将使您能够传达您的意思。

于 2013-06-27T12:51:48.667 回答