示例:
用户可以进入我们的商店并开始订购一些饮品。我们可以向他推销食品=>购买食品延伸购买饮料。
另一种方式也是可能的。用户想要订购三明治,我们向他推销饮料。 =>买饮料延伸购买食品。
这是建模的正确方法,还是使用Generalization / Specialization更好是因为我们有一个专门购买饮料/购买食品的Buy商品。
或者还有其他方式......?
答案 0 :(得分:0)
使用<<extends>>
时,您正在尝试功能分解(这种方式)。用例不是关于系统的功能分解,而是围绕着所考虑的系统(SUC)提供给参与者的独特附加值的动作的综合。尝试从这个角度查看它。那么SUC的独特附加价值是什么(我猜是销售系统)?这是Sell Goods
并且Sell Food
和Sell Drinks
之间存在差异,那么它们是不同的UC或没有,在这种情况下您不需要两个UC。
答案 1 :(得分:0)
Extend绝不是双向的(即扩展关系总是指向的)。
在您的情况下,您只有Thomas Kilan建议的一个用例。
如果你一直坚持让用例区分,那么泛化是一个不错的选择,但很可能在你的情况下它是不必要的。
虽然这种情况非常罕见(绝对不是你的情况),但是不禁止在相反方向使用相同用例之间的两个扩展关系(或者使用扩展关系构建其他形式的循环)这表示系统的逻辑(例如,管理两个单独的实体,每个实体可以单独处理或与两者中的任何一个一起作为发起的实体处理)。在实践中,这些周期可以在与(未来)系统用户讨论期间解决,并且应该避免。 另一方面,包括关系永远不会创建一个循环,如果他们这样做,模型是无效的。