3

我有这个问题,我的系统是一家服装店,它允许客户在购买日期后一天才能退回他购买的衣服。

退货是用例……但我怎么能代表一天的情况呢?我想过使用“守卫条件”,你怎么看?

4

3 回答 3

3

几个选项取决于您选择如何表示用例流程。

  • 序列图:UML 有内置计时器的想法,请参见此处。您可以显示到期时间(即返回期结束)作为确定后续行为的触发器。
  • 如果您使用活动图,您可以简单地拥有一个带有两条路径的决策点(自购买以来<1 天 / >=自购买以来 1 天)。[这和你的守卫条件建议是一样的]。
  • 如果您使用文本步骤,请将“快乐的一天”案例放在主要流程中(可能不到一天),然后添加一个扩展以涵盖异常流程(> 1 天)。

为清楚起见,最后一个示例:

主流

  1. 从客户收到的退货
  2. 确认返回日期小于最大返回间隔(1 天)
  3. 客户已退款
  4. ...ETC。

异常流:超出最大返回间隔

2a. 确认返回日期大于或等于最大返回间隔

3无论你在这种情况下做什么......

底线,有选择。选择哪个取决于您的建模偏好。但是要回答您最初的问题:警卫条件是完全可以接受的。

于 2010-10-27T22:24:52.913 回答
3

您在这里拥有的实际上是两个不同的用例,它们共享一个共同的操作。

您想创建一个“尝试归还衣服”的基本用例,然后将其扩展为两个不同的用例,并对其进行推广,例如:

  • 基本用例是“尝试退货”
  • “1天后”延伸“尝试归还衣服”
  • “1 天内”延伸“尝试退货”

然后,您可以在您的序列图中识别这些用例的结果,例如,一天后执行此操作的客户不允许处理退货。

于 2010-10-27T21:24:40.613 回答
1

用例中不使用条件语句,因为条件由行为组成。这样的用例“退衣服”很奇怪。为您的用例使用命令式语句,例如:“进行注册”“完成订单”等。

于 2010-10-27T21:25:38.403 回答