在用例图中包含和扩展之间的区别是什么?
当前回答
当您理解您的用例过于复杂时,可以使用Extends。因此,您将复杂的步骤提取到它们自己的“扩展”用例中。
Includes用于在两个用例中看到相同的行为。因此,您将常见的行为抽象到一个单独的“抽象”用例中。
(参考:Jeffrey L. Whitten, Lonnie D. Bentley,系统分析与设计方法,McGraw-Hill/Irwin, 2007)
其他回答
我记得是通过电子游戏。例如, (下面不是100%的用例,只是一个用例的例子)
扩展:主菜单扩展了一些功能,这意味着它们有一些功能,但不需要按下
包括:为了在电子游戏中开火,你必须先有一个武器。
当一个用例有先决条件时,就使用include。
对于有身份验证的用例,最坏的情况,或者是可选的,然后选择extend..
示例:用于寻求入场、预约、机票预订的用例 您必须填写一份表格(注册或反馈表)....这就是包容的由来。
例如:对于验证登录或登录您的帐户的用例,您的身份验证是必须的。还要考虑最坏的情况。比如按时还书,没有预定,逾期付款,这就是延期发挥作用的地方。
不要在图中过度使用include和extend。
保持简单,傻瓜!!
这里已经解释了两者之间的区别。但没有解释的是,<<include>>和<<extend>>根本不应该被使用。
如果你读过Bittner/Spence,你就知道用例是关于综合的,而不是分析的。用例的重用是毫无意义的。它清楚地表明您已经错误地切割了您的域名。附加值本身必须是唯一的。我所知道的唯一附加值再利用方式就是特许经营。如果你是做汉堡生意的,很好。但在其他任何地方,你作为BA的任务是试图找到一个USP。这必须在良好的用例中呈现。
每当我看到人们使用其中一种关系时,都是在尝试进行功能分解的时候。这是完全错误的。
简单地说:如果你可以毫不犹豫地回答你的老板“我做了……”,那么“……”就是你的用例,因为你这样做得到了钱。(这也清楚地表明“登录”根本不是一个用例。)
在这方面,找到包含或扩展其他用例的独立用例是非常不可能的。最终,您可以使用<<extend>>来显示您的系统的可选性,即一些许可模式,它允许包含某些许可的用例或省略它们。但除此之外,就避免他们。
我不建议用这个来记住这两点:
我的用例:我要去城市。
包括->驾驶汽车
Extends ->填充汽油
我宁愿你用: 我的用例:我要去城市。
Extends ->驾驶汽车
包括->加油
扩展关系延续了基类的行为。基类功能必须在那里。 另一方面,包含关系类似于可能被调用的函数。梅是粗体字。
这可以从 用例模型中的重用
我喜欢把“包含”看作基本用例的必要前提/伴随。这意味着如果没有基本用例所包含的用例,就不能认为基本用例是完整的。我将给出一个向客户销售商品的电子商务网站的例子。如果不先选择商品并将其放入购物车,你就无法支付商品。这意味着用例“Pay for Item”包括“select Item”。
扩展的用途多种多样,但我喜欢将其视为一种可能使用也可能不使用的替代方法。例如,仍然在电子商务网站。在付款时,您可以选择货到付款、使用paypal付款或刷卡付款。这些都是“为物品付费”用例的替代方案。我可以根据自己的喜好选择其中任何一种。
想要更清楚地了解用例的规则,请阅读我的文章:
http://businessanalystlearnings.com/ba-techniques/2013/2/20/use-case-diagram-the-basics