0

Example:

  • Use Case 1 : Buy drinks
  • Use Case 2 : Buy food

A user can enter our store and start by ordering some drinks. We can upsell him a food item => Buy food extends buy drinks.
The other way around would be possible as well. A user wants to order a sandwich and we upsell him a drink. => Buy drinks extends buy food.
Is this the correct way to model this or would it be better to use Generalization/Specialization were we would have a Buy item that specializes in Buy Drinks/Buy food.
Or maybe still some other way... ?

4

2 回答 2

0

扩展永远不是双向的(即扩展关系始终是有向的)。

在您的情况下,您只有一个 Thomas Kilan 建议的用例。

如果您一直坚持区分用例,那么泛化是一个不错的选择,但在您的情况下很可能没有必要。

虽然这种情况极为罕见(绝对不是您的情况),但如果这代表系统的逻辑,则不禁止在相同用例之间沿相反方向使用两个扩展关系(或使用扩展关系构建其他形式的循环) (例如,管理两个单独的实体,每个实体可以单独处理或与两者中的任何一个一起作为初始实体处理)。在实践中,这种循环可以在与(未来的)系统用户讨论时解决,应该避免。另一方面,包含关系永远不会创建循环,如果它们这样做,则模型无效。

于 2016-07-20T11:43:23.653 回答
0

您在使用<<extends>>(这种方式)时正在尝试功能分解。用例不是关于系统的功能分解,而是围绕正在考虑的系统 (SUC) 交付给参与者的独特附加价值的行动综合。试着从这个角度来看。那么SUC(我猜是销售系统)的那些独特附加值是什么?Sell Goods两者之间存在差异Sell Food,然后它们是不同的Sell DrinksUC,或者没有,在这种情况下,您不需要两个 UC。

于 2016-07-20T09:46:29.623 回答