扩展用例和父用例之间有什么区别?
What's the difference between extension use case and parent use case?
我对用例图中的扩展用例和父用例之间的区别感到很困惑。
我想知道什么时候可以使用 extend 以及什么时候可以使用父用例?
例如:
- 打印单延期确认
- 通过 PayPal 支付 继承 支付。
- 通过信用卡支付继承支付。
继承和扩展有什么区别?
右下角的两个蓝色泡泡通过泛化关系继承自Payment
。嗯,虽然看起来很方便,但并不可取。与明确定义的 class 继承不同,UC 继承是一个开放领域。 UML 规范仅在一个图表中使用概括,并且完全没有定义 UC 的概括实际上意味着什么!
用例在散文和非正式语言的世界中非常普遍。它(可能,因为没有定义)意味着您获取 parent UC 的描述并将其部分替换(覆盖)为继承 UC 中定义的文本。从有时部分起作用的上下文。然而,通过信用卡和 Paypal 支付是非常不同的(你知道的)并且没有太多共同点。因此,更好的方法是使用各种支付方式来“扩展”Payment
。这样你就有了一个固定的支付程序,可以选择使用信用卡或 Paypal 方式(如果这样设计,甚至可以混合使用)。
N.B.: 上面的例子只是一个糟糕的例子。它开始功能分解。用例应显示正在考虑的系统应为其参与者带来的单一独特附加值。 Print slip
绝对是一个纯函数,没有真正的附加值(现在谁需要纸条?)。 Selection of product
一样:这里的附加值是什么? Calculate...
只是告诉它是一个函数。基本上你有两个用例:Confirm order
和 Make payment
(请注意,在描述标题中的用例时必须使用动词+实质)。
一如既往,我将推荐 Bittner/Spence 作为有关用例的优秀读物。
保留所有比例以比较扩展和包含 + 概括就像比较聚合 a 和 b + 中的概括:
在您的图表中,由于扩展了 UC 中定义的行为 Print Slip 可以 插入到 UC 定义的行为中确认订单
概括就像它们在 UML 中的其他地方一样,pay through paypal 是 Payment 和 pay through credit card 也是 Payment。该图表明 UC Confirm Order 包括 UC Payment 或两个继承 UC 之一。所以UCConfirm Order的行为包含[=36=]unconditionallyUCPayment的行为或者UC通过paypal支付或UC通过信用卡支付的行为
规范中有UC之间继承的例子,见formal/2017-12-05
第18.1.5章第646页图18.11
我对用例图中的扩展用例和父用例之间的区别感到很困惑。 我想知道什么时候可以使用 extend 以及什么时候可以使用父用例?
例如:
- 打印单延期确认
- 通过 PayPal 支付 继承 支付。
- 通过信用卡支付继承支付。
继承和扩展有什么区别?
右下角的两个蓝色泡泡通过泛化关系继承自Payment
。嗯,虽然看起来很方便,但并不可取。与明确定义的 class 继承不同,UC 继承是一个开放领域。 UML 规范仅在一个图表中使用概括,并且完全没有定义 UC 的概括实际上意味着什么!
用例在散文和非正式语言的世界中非常普遍。它(可能,因为没有定义)意味着您获取 parent UC 的描述并将其部分替换(覆盖)为继承 UC 中定义的文本。从有时部分起作用的上下文。然而,通过信用卡和 Paypal 支付是非常不同的(你知道的)并且没有太多共同点。因此,更好的方法是使用各种支付方式来“扩展”Payment
。这样你就有了一个固定的支付程序,可以选择使用信用卡或 Paypal 方式(如果这样设计,甚至可以混合使用)。
N.B.: 上面的例子只是一个糟糕的例子。它开始功能分解。用例应显示正在考虑的系统应为其参与者带来的单一独特附加值。 Print slip
绝对是一个纯函数,没有真正的附加值(现在谁需要纸条?)。 Selection of product
一样:这里的附加值是什么? Calculate...
只是告诉它是一个函数。基本上你有两个用例:Confirm order
和 Make payment
(请注意,在描述标题中的用例时必须使用动词+实质)。
一如既往,我将推荐 Bittner/Spence 作为有关用例的优秀读物。
保留所有比例以比较扩展和包含 + 概括就像比较聚合 a 和 b + 中的概括:
在您的图表中,由于扩展了 UC 中定义的行为 Print Slip 可以 插入到 UC 定义的行为中确认订单
概括就像它们在 UML 中的其他地方一样,pay through paypal 是 Payment 和 pay through credit card 也是 Payment。该图表明 UC Confirm Order 包括 UC Payment 或两个继承 UC 之一。所以UCConfirm Order的行为包含[=36=]unconditionallyUCPayment的行为或者UC通过paypal支付或UC通过信用卡支付的行为
规范中有UC之间继承的例子,见formal/2017-12-05
第18.1.5章第646页图18.11