在用例图中包含和扩展之间的区别是什么?
当前回答
让我们说清楚一点。每当我们想表达一种情况的存在依赖于另一种情况的存在时,我们就用包含。
例子:
用户只有登录账号后才能在网上购物。换句话说,在他登录自己的账户之前,他不能购物。
在材料被上传之前,用户不能从网站上下载。 所以,如果什么都没有上传,我就无法下载。
你明白了吗?
这是关于条件后果的。如果之前我没有这样做,我就不能这样做。
至少,我认为这是我们使用Include的正确方式。 我倾向于认为上面的笔记本电脑和保修的例子是最有说服力的!
其他回答
包含关系允许一个用例包含另一个用例的步骤。
例如,假设你有一个亚马逊账户,你想查看订单,如果不先登录你的账户,就不可能查看订单。所以事件的发展会这样。
扩展关系用于向用例流添加一个额外的步骤,这通常是一个可选的步骤…
假设我们还在谈论你的亚马逊账户。让我们假设基本用例是Order,扩展用例是Amazon Prime。用户可以选择定期订购商品,也可以选择亚马逊Prime,以确保他的订单以更高的成本更快到达。
但是,请注意,用户不必选择Amazon Prime,这只是一个选项,他们可以选择忽略这个用例。
这是一个很好的资源,有很好的解释: 用例中包含什么? 什么是扩展用例?
扩展用例通常定义可选的行为。它独立于扩展用例 Include用于提取两个或多个用例的行为的公共部分
我经常用这个来记住这两点:
我的用例:我要去城市。
包括->驾驶汽车
Extends ->填充汽油
“加油”不一定总是被要求,但也可以根据车里剩余的汽油量来选择。“开车”是一个先决条件,所以我把它包括在内。
<include>和<extend>都依赖于基类,但<extend>是可选的,也就是说,它是从基类派生的,但在用户的角度来看,它可以被使用,也可以不被使用。
<include>被合并到基类中,也就是说,在用例中必须使用<include>,否则它将被认为是不完整的。
eg:
在ATM机构造上(根据用户角度):
1:提现、存现、支票账户属于<extend>,因为它取决于用户是提现、存款还是支票。这些都是用户可以选择做的事情。
2:“输入pin,放置卡片,移除卡片”这些是在<包括>下的事情,因为用户必须,而且应该,放置卡片并输入有效的pin进行验证。
我记得是通过电子游戏。例如, (下面不是100%的用例,只是一个用例的例子)
扩展:主菜单扩展了一些功能,这意味着它们有一些功能,但不需要按下
包括:为了在电子游戏中开火,你必须先有一个武器。