用例图之参与者、用例间的四种关系
来源:互联网 发布:postgresql 数组查询 编辑:程序博客网 时间:2024/05/16 08:38
用例图中包括三种元素,参与者,用例,它们之间的关系。下面说说参与者与用例之间,用例与用例之间都有哪些关系。
1.关联关系
定义:参与者与用例之间通常用关联关系来描述。
表示方法:带箭头的实线,箭头指向用例。
如图所示:
2. 泛化关系
定义:一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。
泛化关系在类间也有。
子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变已继承的行为。
表示方法:带空心箭头的实线,箭头指向被泛化(被继承)的用例,即父用例。(PS:泛化关系的箭头不是指向被泛化,而是指向被继承。泛化和继承是不同的方向。泛化是从下到上的抽象过程,继承是从上到下,从一般到特殊的过程。)
如图所示:
机房收费系统中可以这样应用:
当系统中具有一个或多个用例是一般用例的特化时,就使用用例泛化。
3.包含关系
定义:其中一个用例(基础用例)的行为包含了另一个用例(包含用例)的行为。基础用例可以看到包含用例,并依赖于包含用例的执行结果。但是二者不能访问对方的属性。
表示方法:虚线箭头+<<include>>字样,箭头指向被包含的用例。
如图所示:
使用情况:
(1)如果两个以上用例有重复的功能,则可以将重复的功能分解到另一个用例中。其他用例可以和这个用例建立包含关系。
(2)一个用例的功能太多时,可以用包含关系创建多个子用例。
4.扩展关系(extend)
定义:是把新行为插入到已有用例的方法。
个人感觉可以叫做特殊情况处理。比如去食堂用饭卡打饭,绝大部分人是刷卡,拿饭,两个步骤就完成了。但是如果某个学生的饭卡里没钱了,假定不用现金或者借钱或者赊账等等其他的方式来打饭,而是必须用自己的饭卡来打饭。那么他就要先去给饭卡充值。“饭卡充值”就是“刷卡”的一个扩展用例。“饭卡充值”与“刷卡”就是扩展关系。
表示方法:虚线箭头+<<extend>>字样,箭头指向被扩展的用例(即基础用例)。
如图所示:
作用:为处理异常或构建灵活系统框架提供了一种有效的方法。
对比:
包含与扩展的区别。在扩展关系中,基础用例没有扩展也是完整的,而在包含关系中,基础用例依赖于包含用例的执行结果。
总结:
所有的箭头指向都是“被”的一端。
找关系,是一件挺复杂的事儿。从不同的角度看会有不同的结果。找到大前提,再理顺特定环境下的关系,会更加顺手。
- 用例图之参与者、用例间的四种关系
- UML 之 类的四种关系
- UML之四种关系
- UML 之 四种关系
- UML 之 四种关系
- uml之四种关系
- UML 基本图速查---类图. 对象图. 用例图 .参与者. 依赖关系. 泛化继承关系. 关联.....
- UML用例图之寻找参与者与用例
- AgileFlow的参与者实现
- AgileFlow的参与者实现
- AgileFlow的参与者实现
- UML 核心元素之 参与者
- UML核心元素之参与者
- UML 核心元素之参与者
- UML的四种关系
- UML的四种关系
- UML的四种关系
- UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。
- SSH action返回Json错误 404
- 事件监听机制——列出指定目录内容、添加Dialog对话框
- iOS获取基于ASIHTTP的上传数据的变化方法
- You must restart adb and Eclipse处理方法(sjk_daemon.exe占用5037端口)
- 算法导论第15章 动态规划-最长公共子序列
- 用例图之参与者、用例间的四种关系
- ThinkPHP 3.2.x 将异常发出头部改为 503 的方法
- YII_获取控制器模块操作
- 设计兼容不同的屏幕尺寸的Android界面
- Java基础知识汇总 - 05
- ffmpeg 常用命令
- 牛刀小试 - 趣谈Java中的异常处理
- Spring兩大特色IoC和AOP
- webviewv36 支持的 Remote Debugging 特性以及与 appium 的关系