在用例图中包含和扩展之间的区别是什么?


当前回答

当您理解您的用例过于复杂时,可以使用Extends。因此,您将复杂的步骤提取到它们自己的“扩展”用例中。

Includes用于在两个用例中看到相同的行为。因此,您将常见的行为抽象到一个单独的“抽象”用例中。

(参考:Jeffrey L. Whitten, Lonnie D. Bentley,系统分析与设计方法,McGraw-Hill/Irwin, 2007)

其他回答

让我们说清楚一点。每当我们想表达一种情况的存在依赖于另一种情况的存在时,我们就用包含。

例子:

用户只有登录账号后才能在网上购物。换句话说,在他登录自己的账户之前,他不能购物。

在材料被上传之前,用户不能从网站上下载。 所以,如果什么都没有上传,我就无法下载。

你明白了吗?

这是关于条件后果的。如果之前我没有这样做,我就不能这样做。

至少,我认为这是我们使用Include的正确方式。 我倾向于认为上面的笔记本电脑和保修的例子是最有说服力的!

当您理解您的用例过于复杂时,可以使用Extends。因此,您将复杂的步骤提取到它们自己的“扩展”用例中。

Includes用于在两个用例中看到相同的行为。因此,您将常见的行为抽象到一个单独的“抽象”用例中。

(参考:Jeffrey L. Whitten, Lonnie D. Bentley,系统分析与设计方法,McGraw-Hill/Irwin, 2007)

<include>和<extend>都依赖于基类,但<extend>是可选的,也就是说,它是从基类派生的,但在用户的角度来看,它可以被使用,也可以不被使用。

<include>被合并到基类中,也就是说,在用例中必须使用<include>,否则它将被认为是不完整的。

eg:

在ATM机构造上(根据用户角度):

1:提现、存现、支票账户属于<extend>,因为它取决于用户是提现、存款还是支票。这些都是用户可以选择做的事情。

2:“输入pin,放置卡片,移除卡片”这些是在<包括>下的事情,因为用户必须,而且应该,放置卡片并输入有效的pin进行验证。

这是一个很好的资源,有很好的解释: 用例中包含什么? 什么是扩展用例?

扩展用例通常定义可选的行为。它独立于扩展用例 Include用于提取两个或多个用例的行为的公共部分

为了简化,

为包括

当基本用例执行时,包含的用例将每次执行一次。 基本用例需要完成所包含的用例才能完成。

一个典型的例子:在登录和验证密码之间

(登录)——<< include >>——>(验证密码)

为了使登录过程成功,“验证密码”也必须成功。


为扩展

当基本用例被执行时,扩展用例只是偶尔执行 扩展用例仅在满足某些条件时才会发生。

一个典型的例子:在登录和显示错误消息之间(只偶尔发生)

(登录 ) <--- << 扩展> >——(显示错误消息)

“show error message”只在登录过程失败时才会出现。