【问题标题】:Use Case Diagram which relationship to use用例图使用哪种关系
【发布时间】:2023-01-31 18:04:36
【问题描述】:

我有一个用例“管理登录和安全”(MA01),描述如下:作为用户,我希望能够导航到 myaccount 中的登录和安全屏幕,以便能够管理我的凭据。

还有另一个用例称为“管理帐户详细信息”(MA03),描述如下:作为用户,我想管理我的访问数据(电子邮件、密码)。

还有更多的用例,例如第二个。有越来越多的具体用例。例如,用例“更改电子邮件”(MA03 001) 是管理帐户详细信息的可能用例。

我如何在用例图中显示它?

这是用例之间的泛化关系吗?第一个很笼统,想要管理登录和安全;另一个用例更具体,想要管理帐户详细信息。 用例管理登录和安全的工作流程如下所示

【问题讨论】:

  • 我建议您阅读有关用例的 Bittner/Spence。您正在尝试进行功能分解。
  • @qwerty_so 你能告诉我我做错了什么吗?这些是真实的用例,我必须构建一个用例图,那么我做错了什么?我不能读一本洞书然后完成这个任务。
  • 你说用例,但实际上,你有用户故事(“作为一个……我想……为了……”)。用例图不适用于用户故事。您是否也有流程描述(“1.演员做...,2.系统响应...,3.演员做...”)?
  • 您的“用例”不是用例。就像你在告诉我们:“我有这辆车,还有这列火车,但是如何用这些船航行?”嗯,你不能,因为它们不是船!
  • 不幸的是,无知不会帮助你解决任何问题。任何关于 UC 的课程很可能都在教授错误的东西(从这里出现的问题来看)。所以你进退两难。 UC 简而言之:它与演员目标有关。这不是深入细节,而是要了解全局。通常你会学习分析和细节,但在这里反之亦然,这就是为什么这么多人都弄错了。

标签: uml use-case use-case-diagram


【解决方案1】:

关于如何应用用例技术有多种意见。您的团队似乎有一种不熟悉的方法,但我不会对此发表评论。您有用例和详细的流程描述,现在您想要创建一个用例图来直观地了解这些用例。问题是在图中的用例之间使用哪些关系。我将总结可用的关系类型以及何时使用它们。最后,我将得出关于哪些关系适用于您提供的示例的结论。

“包括”

如果用例 UC1 的流程包含“现在执行 UC2”或“执行 UC2”或其他任何内容的步骤,则用例图应该在 UC1 和 UC2 之间具有 «include» 关系,箭头从 UC1 指向 UC2 .

旁注:许多人这样解释 UML,即只有当 UC1 总是执行 UC2 时,«include» 关系才存在,但在我看来,如果 UC1 仅在特定条件下执行 UC2,它也存在。

“延长”

如果用例 UC1 的流程包含扩展点 EX1(即流程中可以扩展 UC1 的点,而不引用包含扩展的用例)并且用例 UC2 指定要在扩展点 EX1 插入的步骤在 UC1 中,那么用例图应该在 UC1 和 UC2 之间具有“扩展”关系,箭头从 UC2 指向 UC1。在用例图中,您还可以提及扩展点的名称。如果您需要有关此的详细信息,请参阅 UML 2.5.1 规范,第 18.1.4 和 18.1.5 章。

概括

如果UC1和UC2相似,但是UC1比UC2更通用,UC2比UC1更具体,那么用例图可能在UC1和UC2之间存在泛化关系,箭头从UC2指向UC1。例如,UC1 是“购买产品”,UC2 是“购买食品”。 UC2 的描述说明了它与 UC1 的不同之处,但 UC1 没有提及更具体的用例。如果 UC1 不应单独执行,而仅执行更具体的用例,则 UC1 应标记为 {abstract}。

结论

可能存在从用例 MA03“管理帐户详细信息”到 MA01“管理登录和安全”的概括,但前提是所有帐户详细信息都可以视为登录和安全详细信息并且 MA01 不引用 MA03。

MA03 和 MA03.001 之间的关系取决于如何指定这些用例的流程。请参考上面的描述以确定哪种关系适用于此处。

从用例“显示登录和安全”到用例“设置密码”应该有一个«include»关系,因为前一个用例在第 3 步说:“执行过程 UC-MA11 - 设置密码”。

【讨论】:

  • UC set password 永远不存在。这是一个动作。
猜你喜欢
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
相关资源
最近更新 更多