用例是否适合 UI 要求?
用例代表参与者想要实现的目标。它是一种行为(通常是一种行为)。这不是用户如何实现目标;不是用户界面的描述;更不用说数据模型了。
如果您必须设计一个用户界面(正如您的练习叙述所要求的那样),您可能不需要 UC,而是需要线框来绘制 UI。
你对UC有什么要求?
考虑到这一点,我将在您的要求中确定以下 UC:
Manage contact details
(#1) - 我用 Ma强调文本nage 来缩短Enter 或更新- 开放式问题:也许两个 UC 毕竟:Manage Payer details
+ Manage payee details
。
Manage expenses for a day
(#2) - 日期的选择是 UI 的细节,而不是 UC!
Report expenses
(#3) - 日期范围的选择是 UI 的细节,而不是 UC!
Forecast financial situation
(#4)
Enter (maintain?) events
(#5)
Report weekly situation
(#6)
您的图表中有哪些可以改进的地方?
现在回顾一下你自己的 UC 图:
Select data range
可能是和的包含(注意:错字),因为它是行为的一部分,并且包含的 UC 是不完整的,没有包含的 UC。请注意,在我看来,将其作为单独的 UC 似乎是人为地详细说明,不建议这样做。 Add transation
Generate reports
Select data range
原则上不应该是 的扩展, Add transation
因为扩展是可选的,扩展的 UC 应该是完整的,没有扩展。在这里,Add a transaction
不知道日期是没有意义的。
- 我建议将 UC 名称从更改为主动行为: 选择/选择数据范围、生成/报告每周视图
- 您当前在用例中使用泛化。虽然这不是最常见的做法,但这是完全合法的:UC 是一个分类器,分类器可以泛化。但是,当在 UC 中使用泛化时,它通常与所有其他“链接”具有相同的图形风格,仅在两个元素之间单独和之间,并且通常不是共享目标形式(示例)。请注意,您的专业名称听起来像是对应于数据对象(例如Payer)而不是行为(例如Manage payers)的名词。另请注意,错字导致收款人出现两次
编辑:更多关于 UC 中的泛化
在 UC 中使用继承存在一些争议,因为它的实际意义不如其他类型的关系那么直观。
当同一 UC有多个变体时,继承可能很有用。这是抽象的原则。但是 UC 应该提供一个简单的概述,而不会失去读者的详细信息。因此,更好的做法是保留您的图表而不显示专业化,并有第二张图表专门用于这些细节。
但就个人而言(并查看评论和其他答案,我并不孤单)我建议不要使用它。它制作了一个简单易懂的图表,具有不同抽象级别的更复杂的东西。在这方面,值得一提的是 UC 的发明者Ivar Jacobson:
- 在将继承包含在 UML 中之前,他没有在他的 UC 中使用继承。
- 他在他最近关于用例 2.0的工作中也没有使用它,在那里他提倡使用用例切片来处理变体。