UML学习笔记——用例图

本文围绕UML中的用例图展开,介绍其概念、基本思想和作用。阐述了用例图的构成元素,包括参与者、用例和关系,详细说明了关联、包含、扩展、泛化等关系。还讲解了用例描述的方面和用例建模的过程,为软件开发提供依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


用例图

UML中的用例图的相关知识。

用例图的概念

用例是一种*描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模。

用例图的基本思想

用例图是从用户角度来描述系统功能的,只关心系统所能提供的服务,并不需要了解系统的内部结构和设计细节

用例图的作用

作为整个系统开发过程中的开发依据,指导和驱动其它模型。用例驱动的软件开发

用例图的构成

  • 用例图用于定义系统的功能需求,描述了系统的参与者与系统提供的用例之间的连接关系。

用例图的构成元素

(1)参与者(Actor) (活动者、角色)

(2)用例(Use Case)

(3)关系(Relationship )

(参与者与参与者之间的关系,参与者与用例之间的关系,用例之间的关系)

1

参与者

  • 参与者(actor) 是系统外部与系统直接交互的事物,也称为活动者。
2

参与者参与用例的执行过程。

  • 每个参与者可以参与一个或多个用例,每个用例可以被多个参与者使用。

  • 参与者是由参与用例时所担当的角色来表示。

什么是参与者?

参与者的特征是其作为外部用户与系统发生交互。

参与者的种类

3

(1)与系统直接交互的真实的人

(2) 与系统直接交互的其它系统:与系统进行信息交换的计算机外部设备、数据库系统,其它软件系统等。

(3)一些可以运行的进程:时间(经过一段时间或到达某一个时间点,触发系统中某个事件时,时间就是参与者)

用例

用例是外部可见的系统功能单元,是对功能需求的描叙。

用例的名称:

①简单名

②路径名:指出用例所在的包

4

用例规约(Use Case Specification)

(用例描述、用例说明)

针对每一个用例都应该有一个用例规约文档与之相对应,该文档描述用例的细节内容,例如描述参与者与系统交互实现用例功能的事件流。

用例图的关系

关联(association)

5

包含(include)

6

扩展(extend)

7

泛化(generalization)

8

注意:

  • 关联指参与者与用例之间的关系

  • 包含、扩展、泛化指用例之间的关系

  • 泛化即可以用于参与者之间的关系,也能用于用例之间的关系。

关联关系

  • 表示参与者与用例之间进行通信。

  • 每个用例都有参与者关联,除了包含和扩展用例。

  • 一个参与者可以访问多个的用例,一个用例可以被多个参与者访问。

  • 关联关系可以是单向的,也可以是双向的。

9

包含关系

  • 一个用例可以包含其它用例具有的行为,并把它作为自身行为的一部分,称为包含依赖关系。
10
  • 基用例被包含的用例行为作为自身行为的一部分。

例如:

11 12

注意:

  • 箭头方向由基用例指向被包含的用例,被包含用例如果不存在了,基用例就不完整了。

  • 执行基用例时,每次都必须调用被包含的用例。

  • 被包含的用例也可以单独执行。

13
使用包含关系的情形
  • 如果两个以上用例有大量一致的功能,可以将一致的功能抽取到另一个用例中,其它用例和这个用例建立包含关系。------体现复用

  • 一个用例的功能太多太复杂时,可以将功能分解成小功能小用例,然后使用包含关系。------功能分解

14

扩展关系

  • 一个用例在一定条件下(扩展点)扩展另一个用例的功能,构成新用例,称为扩展用例,被扩展的用例称为基用例

  • 扩展用例被定义为基用例的增量

  • 扩展用例依赖于基用例

15

注意:

  • 基用例本身是一个完整的用例,可以单独执行,在每次执行基用例时,扩展用例不是每次都被执行。

  • 扩展用例本身不是完整独立的用例,无法单独执行,扩展用例的执行必须依赖于基础用例。

16
使用扩展用例的情形

UML提供了扩展点来为基用例扩展新的行为。

扩展点

扩展点的定义:基础用例中的一个或多个位置,在该位置会衡量某个条件以决定是否启用扩展用例。

  • 一旦基用例中扩展点给出条件满足,则扩展用例将被执行。
17
  • 一个用例可以有多个扩展点,每个扩展点也可以出现多次。

  • 扩展关系为分支处理、异常处理、构建灵活的系统架构提供了一种非常有效的方法。

泛化关系

体现一般和特殊之间的关系。

用例之间可以泛化,参与者之间也可以泛化。

  • 子用例表示父用例的特殊形式,通过插入额外的步骤或细节步骤,子用例特化父用例

18

19
参与者间的泛化关系
  • 在用例图中,使用泛化关系来描述多个参与者之间的公共行为。
20

例如:

21

用例描述和建模过程

用例图描述参与者和系统功能之间的关系,但是它缺乏描述系统行为的细节。

用例描述用来更详细地描述用例的功能。

用例描述常以书面文档的方式进行表达,可以使用 文本方式进行文字描述,也可以使用图形的方式可视化描述,例如活动图有助于描述复杂用例实现的决策流程,状态转移图有助于描述与状态相关的系统行为,顺序图适合于描述基于时间顺序的消息传递。

用例描述一般包含的方面

在UML中对用例的描述并没有硬性规定,但一般情况下用例描述

应包括以下几个方面:

用例名称

表明用例的用途,如上面示例中的“借阅图书”、“归还图书”,

标识符[可选]编号

惟一标识符一个用例,如“UC200601”。这样就可在项目的其他元素(如

类模型)中用它来引用这个用例。

参与者[可选]

与此用例相关的参与者列表。尽管这则信息包含在用例本身当中,但在没

有用例图时,它有助于增加对该用例的理解。

简要说明

对该用例进行说明,描述用例作用。注意语言简要,使用自然语言。

前置条件

一个条件列表。前置条件描述了用例之前系统必须满足的条件。如果条件不满足,则用例不会被执行。

例如:借阅图书用例

前置条件:学生出示的借书证必须是合法的借书证。

后置条件

后置条件在用例成功完成后得到满足,它提供了系统的部分描述。用例结束后,系统处于什么状态。

例如:借阅图书用例

后置条件:借书成功,则返回该学生借阅信息;结束失败,则返回失败的原因。

扩展点

如果包括扩展用例,则写出扩展用例在什么情况下使用。应该在编写事件流的同时编写。

基本事件流(主事件流)

描述当各项工作都正常进行时用例的工作方式。

事件流描述了用户和执行用例之间交互的每一步。.

事件流是将个别用例进行合适的细化任务。

可以发现原始用例图遗漏的内容。

其它事件流(扩展事件流,错误事件流)

在变更工作方式、出现异常或发生错误的情况下所遵循的步骤

22 23

例如:

23 25

用例建模过程

■捕获需求;

■确定系统的边界范围,找出系统外部的参与者和外部系统;

■确定每-一个参与者所希望的系统行为,命名用例;

■把公共系统行为分解为新用例,供其他用例引用;

■把一些变更的行为分解为扩展用例;

■编制用例的脚本;编写用例描述

■绘制用例图;

■把特殊情况的用例画成单独的子用例图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

省下洗发水钱买书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值