UML建模--用例图

本文最后更新于:2024年5月10日 下午

定义

根据百度百科:用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模

组成

用例图包含的元素如下:

  1. 参与者(Actor)

    不一定指人,它表示你开发的系统以外的,使用本系统或与本系统交互的角色。用小人形表示

  2. 用例(Use Case)

    是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。简单说用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。

  3. 容器

    容器代表的就是开发的系统。

    image-20230420172714300

    系统边界:系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

    箭头:用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。

作用

用例图的作用主要由三个:

  1. 获取需求
  2. 指导测试
  3. 在开发的其他工作流中起指导作用

关系

用例图中涉及的关系有四种:包含、泛化、扩展

  1. 包含关系(include):两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。(因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才实现完整功能。

    例如:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那添加、修改以及删除都要在用例详述中描述,过于复杂;如果分成添加用例、修改用例和删除用例,则划分太细。这时包含关系可以用来理清关系。

    【箭头指向】:include关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从基用例指向子用例。

    image-20230420172732551
  2. 扩展关系(extend):假设一个用例明显地混合了两种或者两种以上的不同场景,即依据情况可能发生多种分支,则能够将这个用例分为一个基用例和一个或多个扩展子用例。这样可能会使描写叙述更加清晰。(基用例即使没有子用例的参与,也可以完成一个完整的功能

    扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

    【箭头指向】:extend关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从子用例指向基用例。

    image-20230420172749045
  3. 泛化关系(generalization):泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。

    【箭头指向】:在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。

    image-20230420172802314

以下是一个小示例:

image-20230420172820440

UML建模--用例图
https://61hhh-github-io.vercel.app/20200511/208504bf/
作者
LY
发布于
2020年5月11日
许可协议