如何表示用例条件?

3
我有一个问题,我的系统是一个服装店,只允许顾客在购买日期后一天内退货。
退货是用例...但如何表示一天的条件呢?我考虑使用“守卫条件”,你觉得怎么样?
3个回答

3
你所看到的实际上是两种不同的用例,它们共享一个常见的动作。
你想创建一个基本的用例"尝试退货",然后将其扩展为两个不同的用例,这些用例可以归纳为它,例如:
- 基本用例是"尝试退货" - "一天后"扩展了"尝试退货" - "一天内"扩展了"尝试退货"
然后你可以在你的序列图中识别这些用例的结果,例如,一天后进行退货的顾客不被允许处理退货。

3

有几种选择,取决于你如何表示用例的流程。

  • 序列图:UML中内置了计时器的概念,例如在此处。您可以将时间过期(即退货期结束)显示为确定后续行为的触发器。
  • 如果使用活动图,您可以简单地使用两个出路(<购买日1天 / > =购买日1天)来进行决策。[我认为这与您的防护条件建议相同]。
  • 如果使用文本步骤,请将“顺利完成”情况放在主要流程中(可能少于一天),然后添加扩展以涵盖异常流程(>一天)。

以下是最后一个示例,以便更清楚:

主要流程

  1. 从客户处收到退回的商品
  2. 确认退货日期不超过最大退货间隔(1天)
  3. 客户退款
  4. ...等等

异常流程:超过最大退货间隔

2a. 确认退货日期大于或等于最大退货间隔

3 在这种情况下所做的任何事情...

总之,有选择的余地。选择哪种取决于你的建模偏好。但是回答您最初的问题:防护条件是完全可以接受的。


1

在用例中不使用条件语句,因为条件包含行为。像“归还衣服”这样的用例很奇怪。对于您的用例,请使用命令语句,例如:“进行注册”,“完成订单”等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接