用例图之参与者、用例间的四种关系

简介: 用例图之参与者、用例间的四种关系

用例图中包括三种元素,参与者,用例,它们之间的关系。下面说说参与者与用例之间,用例与用例之间都有哪些关系。

1.关联关系

       定义:参与者与用例之间通常用关联关系来描述。

       表示方法:带箭头的实线,箭头指向用例。

       如图所示:

 

2. 泛化关系

       定义:一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。

       泛化关系在类间也有。

       子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变已继承的行为。

       表示方法:带空心箭头的实线,箭头指向被泛化(被继承的用例,即父用例。PS:泛化关系的箭头不是指向被泛化,而是指向被继承。泛化和继承是不同的方向。泛化是从下到上的抽象过程,继承是从上到下,从一般到特殊的过程。)

       如图所示:

       机房收费系统中可以这样应用:

       当系统中具有一个或多个用例是一般用例的特化时,就使用用例泛化。

3.包含关系

       定义:其中一个用例(基础用例)的行为包含了另一个用例(包含用例)的行为。基础用例可以看到包含用例,并依赖于包含用例的执行结果。但是二者不能访问对方的属性。

       表示方法:虚线箭头+<<include>>字样,箭头指向被包含的用例。

       如图所示:

       使用情况:

           (1)如果两个以上用例有重复的功能,则可以将重复的功能分解到另一个用例中。其他用例可以和这个用例建立包含关系。

           (2)一个用例的功能太多时,可以用包含关系创建多个子用例。

 

 4.扩展关系(extend)

       定义:是把新行为插入到已有用例的方法。

      个人感觉可以叫做特殊情况处理。比如去食堂用饭卡打饭,绝大部分人是刷卡,拿饭,两个步骤就完成了。但是如果某个学生的饭卡里没钱了,假定不用现金或者借钱或者赊账等等其他的方式来打饭,而是必须用自己的饭卡来打饭。那么他就要先去给饭卡充值。“饭卡充值”就是“刷卡”的一个扩展用例。“饭卡充值”与“刷卡”就是扩展关系。

       表示方法:虚线箭头+<<extend>>字样,箭头指向被扩展的用例(即基础用例)。

      如图所示:

       作用:为处理异常或构建灵活系统框架提供了一种有效的方法。

对比:

       包含与扩展的区别。在扩展关系中,基础用例没有扩展也是完整的,而在包含关系中,基础用例依赖于包含用例的执行结果。

总结:

       所有的箭头指向都是“被”的一端。

       找关系,是一件挺复杂的事儿。从不同的角度看会有不同的结果。找到大前提,再理顺特定环境下的关系,会更加顺手。


相关文章
|
测试技术 uml 数据安全/隐私保护
UML图——用例图
用例图是由参与者(Actor)、用例(Use Case)以及用它们之间的关系构成的用于描述系统静态视图的UML图(本定义摘自百度百科)。用例图能够展示系统外部的各类执行者与系统中用例的关系。
UML图——用例图
|
存储 算法 测试技术
【C++数据结构——线性表】求集合的并、交和差运算(头歌实践教学平台习题)【合集】
本任务要求编写程序求两个集合的并集、交集和差集。主要内容包括: 1. **单链表表示集合**:使用单链表存储集合元素,确保元素唯一且无序。 2. **求并集**:遍历两个集合,将所有不同元素加入新链表。 3. **求交集**:遍历集合A,检查元素是否在集合B中存在,若存在则加入结果链表。 4. **求差集**:遍历集合A,检查元素是否不在集合B中,若满足条件则加入结果链表。 通过C++代码实现上述操作,并提供测试用例验证结果。测试输入为两个集合的元素,输出为有序集合A、B,以及它们的并集、交集和差集。 示例测试输入: ``` a c e f a b d e h i ``` 预期输出:
432 7
|
存储 前端开发 中间件
『软件工程10』结构化系统分析:数据流图和字典案例分析
该文章通过具体案例分析了在软件工程中如何运用数据流图和数据字典来进行结构化系统分析,帮助明确系统的信息流程和数据定义。
『软件工程10』结构化系统分析:数据流图和字典案例分析
|
数据可视化 uml
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
UML图讲解,关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系。
6603 0
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
|
域名解析 运维 监控
网络故障排查的常用工具与方法:技术深度解析
【8月更文挑战第20天】网络故障排查是一项复杂而重要的工作,需要网络管理员具备扎实的网络知识、丰富的实践经验和灵活的问题解决能力。通过掌握常用工具和方法,遵循科学的排查流程,可以显著提高故障排查的效率和准确性。希望本文能为读者在网络故障排查方面提供有益的参考和启示。
2115 2
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
4223 0
|
机器学习/深度学习 算法
【机器学习】支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择(面试回答)?
文章对支持向量机(SVM)、逻辑回归(LR)和决策树(DT)进行了直观和理论上的对比,并提供了在选择这些算法时的考虑因素,包括模型复杂度、损失函数、数据量需求、对缺失值的敏感度等。
716 1
|
敏捷开发 数据可视化 测试技术
场景用例图的作用是什么?
场景用例图的作用是什么?
563 3
|
存储 算法 数据挖掘
软件体系结构 - 架构风格(11)黑板架构架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(11)黑板架构架构风格
2064 0
|
关系型数据库
面向对象七大设计原则,看了必会(代码详细版)(上)
面向对象七大设计原则,看了必会(代码详细版)(上)

热门文章

最新文章