2013-06-25 23 views

回答

1

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

  • <<include>>限定了子用例是总是包括在一般使用情况下的:用例-include-->子使用 - 案例。通常它用来表示用例的一个不同部分,或者可以被其他用例重复使用的公共部分。

  • <<extend>>限定可选子,可以在一定的条件下(这应该在较低的水平设计来限定,而不是在用例图)来执行的用例。这里关系的方向与<<include>>关系相反:用例<--extend-子用例

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

0

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

+1

谢谢布鲁斯。我决定使用安全登录作为先决条件而不是用例,我认为它使图更易于管理。 – aenergi

0

当我试图区分使用扩展和打算用例图之间的区别之前,我发现这条建议。我希望它也可以帮助你。最初的建议来自this StackOverflow answer。之间

差分延伸,并且包括

扩展时使用一个用例有条件地添加步骤到另一个 第一类的用例。例如,想象一下“Withdraw Cash”是ATM机使用的一种情况。 “评估费”将扩展Withdraw Cash并且 描述当ATM用户没有在ATM所属机构存款时实例化的条件“扩展点”。注意 基本的“Withdraw Cash”用例本身,不带 扩展名。

包含用于提取在多个用例中复制的用例碎片。包含的用例不能单独存在,如果没有包含用例,则原始用例不完整。这个 应该谨慎使用,只有在重复是 显着并且通过设计(而不是巧合)存在的情况下。例如,在每个ATM 使用案例(当用户放入其自动提款卡,输入其PIN,并且 显示为主菜单)开始时发生的事件流将是包括的一个很好的候选者。

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

0

许多关系在这里显然不正确。然而,我认为这个图的主要问题不是包含和扩展的正确使用,而是复杂和整体不明确的关系。尽管在法律上有效,您应该避免使用这些关系中的多个关卡。

你的图很难跟踪和解释。

一些重构的思路和更正:

  • 秀“安全登录”类分开,只能用演员,然后采用下列先决条件全部用例“包括”它链接:“用户正在securelly登录“
  • ”5分钟后注销“应该是自己的用例,只与Actor连接,并具有2个先决条件:”用户已安全登录“和”用户未激活5分钟“
  • 删除包含“5分钟后注销”和“发起呼叫”。延长可能更合适
  • 扭转包括“转移资金...”和“确保足够的资金......”之间的方向 - 很明显,第一个包括第二个而不是反之亦然
  • 考虑在2个或更多简单和小型的相关联合国家图表中打破一个图表:例如,所有登录/注销都可以单独显示并简化视图。在一张图上,您不应该有超过5-7个用例