gpt4 book ai didi

inheritance - 用例中的扩展与泛化

转载 作者:行者123 更新时间:2023-12-05 03:23:28 27 4
gpt4 key购买 nike

我已阅读这篇文章:Use case generalization versus extension .我有以下2个案例。 enter image description here案例一

enter image description here案例二

更新电影 仅在至少三个用例之一发生时发生。在泛化关系中,只有one and only 用例发生。在扩展关系中,Update movie 可以在没有任何用例的情况下发生。那么我应该使用哪一个?

最佳答案

简而言之

如果只保留左边的用例不是一个选项,那么更喜欢基于泛化的第二个版本,因为它更好地传达了面向目标的用例。但是,请考虑重命名一般用例。

更多论据

该特定图表中的用例不明确:

  • 用例原则上是针对参与者目标的。左边的案例看起来像一个目标。权利可以是对用户重要的子目标(对于用例来说可以)或如何实现目标的功能分解(对于用例来说不行)。
  • 不清楚Update movieModify movie 有何不同,看平时的理解CRUD .因此需要重命名以避免歧义。 管理电影怎么样?
  • 看左边,与右边用例的关系,«extends» 表明您实际上是在为用户界面或功能建模例如,一个窗口 Update movie 可能会导致不同的其他功能特性,右边的每一个都是可选的。只有当左边的 Update movie 对 Actor 有意义而不考虑其任何扩展时,这才有意义。但事实并非如此,因为您声称“三个用例中的至少一个 [在右边] 发生了”。让我们避免这种功能分解。

具有概括性的版本可以完美地对应于具有一般目标的适当用例,这些用例在更具体的目标中指定,每个目标都有其自身的意义。

作者怎么说?

Alistair Cockburn 在他的优秀著作 Writing effective use-cases 中用整整一章介绍了 CRUD 用例:

The question is, are they all part of one bigger use case, Manage xxx, or are they separate?
In principle they are separate because each is a separate goal, carried out by a different person with different security level. However they clutter up the use-case set and can triple the number of items to track.

由于 Cockburn 更侧重于描述用例而不是 UML 模型,因此他描述了他所谓的“参数化用例”,其中包含一个通用用例和一些场景操作,这些场景操作对于特定用例而言更为具体。这种技术非常符合泛化/特化,他还在有关 UML 符号的附件中提到了这一点。

Kurt Bitter 和 Ian Spence 在他们的优秀著作 Use Case Modeling 中不鼓励使用 CRUD 用例。他们的主要论点不是 CRUD 案例是错误的,而是它们很耗时并且为建模提供的值(value)很小:

Although it is technically appropriate to employ use cases to describe this kind of behavior [CRUD], it’s probably not a great use of time to describe this behavior in terms of use cases. We summarize this guideline as “use cases should contain more than CRUD.”

他们阐明了为什么不值得付出努力:

Use cases for simple CRUD behavior don’t add much value to ensuring that the system is doing the right thing. (...) there’s little chance of getting the requirements wrong.

关于inheritance - 用例中的扩展与泛化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72512652/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com