- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已阅读这篇文章:Use case generalization versus extension .我有以下2个案例。 案例一
更新电影
仅在至少三个用例之一发生时发生。在泛化关系中,只有one and only 用例发生。在扩展关系中,Update movie
可以在没有任何用例的情况下发生。那么我应该使用哪一个?
最佳答案
如果只保留左边的用例不是一个选项,那么更喜欢基于泛化的第二个版本,因为它更好地传达了面向目标的用例。但是,请考虑重命名一般用例。
该特定图表中的用例不明确:
Update movie
与Modify 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/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!