用例图(use case diagram)

用例图可以让其他人更直观的了解一个系统。假如我们现在有一个 APP 方案📝想让其他人了解它,但是无论怎么表达他们都无法理解,那么我们可以使用用例图去表示它,这样能让其他人更加直观的了解它。下面是关于百度百科🌐对它的描述:

用例图(use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。通过用例图,人们可以获知系统不同种类的用户和用例。用例图也经常和其他图表配合使用。

用例图是静态模型,是需求分析中的产物。其主要作用是描述参与者和用例之间的关系,帮助开发人员能够可视化了解系统的功能。


用例图的模型元素

1️⃣系统(System):使用一个矩形框表示一个系统,并将系统的名称放在顶部。在矩形内的所有东西都属于这个系统,而在矩形外的任何东西都能够使用这个系统。

2️⃣参与者(Actor):使用一个小人图形表示参与者。参与者放置在矩形框外部。参与者是使用系统的人或物,它可能是个人、一个组织、其他系统或者外部设备。参与者有三个重点因素:

  1. 参与者是系统的外部对象,需要放置在系统之外;
  2. 参与者需要被视为类型或类别,它们不是特定的个人或者特定的组织。例如顾客指代的是所有顾客,而并非某个人;又或者银行指代的是所有银行,而并非某个银行。
  3. 参与者分为主要参与者(Primary Actor)和次要参与者(Secondary Actor)。主要参与者是主动发起行为,而次要参与者往往更为被动。一般将主要参与者放置在系统左边次要参与者放置在系统右边。

3️⃣用例(Use Case):使用一个椭圆形来表示一个用例,在椭圆形内写上用例完成的动作。用例放置在矩形框内部。用例代表完成的系统中某种任务的一个动作,所以用例属于系统内部。用例的描述应着重于系统从外界来看有什么样的行为,而不管该行为在系统内部是如何具体实现的。用例都以动词开头并强化所发生的操作,且最好按照逻辑排列用例。

✨关系(relationship)

4️⃣关联(Association):使用一根实线连接参与者和用例,表示参与者和用例在进行一种基本的交流或互动。注意:关联关系只用在执行者和用例之间,用例和用例之间不会存在关联关系。

5️⃣包含(Include):使用一根带有箭头的虚线,由基本用例指向包含用例。包含关系表示基本用例和包含用例之间的依赖关系,每次执行基本用例的时候,也会执行包含用例。又或者说基本用例依赖包含用例。注意:每次调用基本用例时都必须同时执行包含用例。

6️⃣扩展(Extend):使用一根带有箭头的虚线,由扩展用例指向基本用例。扩展关系由基本用例和扩展用例组成。当执行基本用例时,扩展用例不是一定要执行。它们只有在满足某些条件时才会执行。又或者说你可以使用扩展用例去扩展基本用例的行为。

7️⃣带扩展点的用例(Extension Point):用一根实线把用例分成两部分,上半部分写用例的名称,下半部分写用例的扩展点。扩展点只是扩展关系的详细版本。

8️⃣泛化(Generalization):使用一个带实线的三角形空心箭头来表示泛化关系,三角形箭头由子指向父。子参与者继承父参与者的所有关系、子用例继承父用例的所有结构、行为和关系。

示例用例图:


包含关系和扩展关系的区别

每次执行基本用例时,包含关系一定执行,扩展关系可能执行。这两种关系的箭头指向不同。基本用例依赖包含用例,而扩展用例依赖基本用例。注意:多个基本用例可以指向同一个包含或扩展用例。

例如,每次打喷嚏眼睛都会闭上,但不是每次打喷嚏都会说“不好意思”,说“不好意思”只是对于打喷嚏行为的补充。如下图所示:



📌最后:希望本文能够给您提供帮助,文章中有不懂或不正确的地方,请在下方评论区💬留言!

🔗参考文献:

🌐 用例图 –百度百科

▶️ bilibili - UML用例图