UML用例图的画法详细介绍【软件工程】
文章目录
- I.总述和预备知识
- II.关联(Association)关系
- III.泛化(Generalization)关系
- IV.包含(Include)关系
- V.扩展(Extend)关系
- VI.总结
I.总述和预备知识
首先,用例图是用来描述系统功能的技术,表示一个系统中用例与参与者及其关系的图,主要用于需求分析阶段,同时它由参与者(actor)、用例(case)和容器(container) 三部分组成,并具有关联(Association)、泛化(Generalization)、包含(Include)和扩展(Extend) 四种关系。
【预备知识】:关于组成成分:参与者、用例和容器
✅参与者(actor): 表示与应用软件或系统进行交互的用户、组织或外部系统,画图时用一个小人表示:
✅用例(case): 表示外部可见的系统或软件的功能,对系统提供的服务进行描述,画图时用椭圆和文字表示:
✅容器(container): 代表着一个系统,画图时用一个矩形表示,矩形内一般是一个一个的用例:
下面从用例图的四种关系进行逐一介绍。
II.关联(Association)关系
关联(Association)关系是用例图最常见的一种关系,简单理解就是参与者(actor)与每个用例(case)之间存在的一种相互交流、通信的关系,发生的对象是参与者和用例。这种关系与类图的关联关系很相似,可以近似理解。
画法上,关联关系无论是双向的还是单向的,一律用单向的实线箭头从参与者指向用例:
III.泛化(Generalization)关系
泛化(Generalization)关系是我们通常理解的继承关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系;子用例可以使用父用例的一段行为,也可以重载它。此时,父用例通常是抽象的,而子用例表现出很强的具体性。(这里的子用例和父用例同样适用于参与者)
在用例图中,泛化关系存在于用例(case)之间或参与者(actor)之间,但通常不会出现在二者混合之间。画法上,泛化关系表示为实线、空心三角箭头,从“子”指向“父”:
IV.包含(Include)关系
包含(Include)关系是用来表示把一个较复杂用例所表示的功能分解成较小的步骤的一种关系。从定义不难看出,这种关系只会存在于用例(case)之间,并且通常是对一个复杂的用例进行拆解操作。
画法上,包含关系表示为两个部分:首先是一条虚线箭头,从较复杂的用例指向拆解出的功能用例;第二部分是在虚线上标注《include》,表示这是包含关系(与下一个扩展关系进行区分):
V.扩展(Extend)关系
扩展(Extend)关系是用来表示用例功能的延伸的一种关系。这种关系同样是发生在用例(case)之间,相当于为基础用例提供一个附加功能用例。
画法上,扩展关系同样分两个部分:首先是一条虚线箭头,从延伸功能用例指向基础用例(直观感受与包含关系刚好相反);第二部分是在虚线上标注《extend》,表示这是扩展关系:
VI.总结
对四种关系的画法进行一个总结:
关系 | UML画法 |
---|---|
关联关系 | 一条从参与者指向用例的实线 |
泛化关系 | 一条从 “子”指向“父” 的空心三角实线 |
包含关系 | 一条从较复杂用例指向拆解出的功能用例的虚线,并标有 《include》 |
扩展关系 | 一条从延伸功能用例指向基础用例的虚线,并标有 《extend》 |
最后放一个登录注册系统的UML用例图:
UML用例图的画法详细介绍【软件工程】相关推荐
- UML的定义和组成详细介绍
UML的定义和组成详细介绍 1.UML 1.1概述 1.2 UML是一种建模语言 1.3 UML语言包含三方面 2.UML支持软件体系结构建模 2.1 逻辑视图 2.2 实现(开发)视图 2.3 部署 ...
- 五种UML图的画法详细介绍【软件工程】
文章目录 I.介绍 II.五种图的画法汇总 I.介绍 统一建模语言(UML)是软件工程领域的一种通用的.开发的建模语言,旨在提供一种标准的方法来可视化系统的设计. UML的创建最初是出于将不同的符号系 ...
- UML图:活动图详细介绍
活动图简介 什么是活动图(Activity Diagram) 活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图: ...
- UML图:类图 --详细介绍
类图的概念 描述类.接口及它们之间关系的图,显示系统中各个类的静态结构 类图的元素 类 面向对象系统组织结构的核心 对一组具有相同属性.操作.关系和语义的对象的抽象 包括名称部分(Name).属性部分 ...
- 《火球——UML大战需求分析》——详细介绍及样章下载
简介: 本书融合UML.非UML.需求分析及需求管理等各方面的知识,帮助读者解决UML业界问题.需求分析及需求管理问题.全书主要介绍UML的基本语法.面向对象的分析方法.应用UML进行需求分析的最佳实 ...
- 一张图阐述UML活动图的画法【软件工程】
文章目录 I.介绍活动图 II.一图搞定活动图画法 I.介绍活动图 活动图是软件工程UML图的一个重要的种类,是状态图的一个变体,显示了系统从一个活动到另一个活动的流程,阐明了业务用例实现的工作流程. ...
- 如何绘制UML用例图
本节向大家介绍一下如何绘制UML用例图,主要包括UML简介,用例建模,用例图说明等内容,相信通过本节的介绍你对绘制UML用例图的方法一定会有所了解.下面让我们一起来看一下UML用例图是如何绘制的吧. ...
- uml里的extend和include_解析UML用例图中include与extend的区别
本文和大家重点讨论一下UML用例图中include与extend的区别,include是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分,而extend则恰好相反.下面请看本文详细介 ...
- 【UML】如何记忆UML类图的画法
目录 1. 前言 2. 元素 2.1. 访问权限 3. 类之间的各种关系 3.1. 泛化 3.2 关联 3.3. 依赖 4. 另一篇参考的博文 1. 前言 UML类图形象反映系统类之间的关系,在正规的 ...
- u-boot 详细介绍 .
Bootloader 对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程.嵌入式Linux系统同样离不开引导程序,这个引导程序就叫作Bootloader. 6.1.1 Bootloader ...
最新文章
- Java集合源码学习(四)HashMap
- 别再说学习无趣了,跟你分享这 8 条 Python 奇技淫巧!
- 【C语言简单说】二十:指针基础
- “苹果税”猛于虎惹众怒,库克:我们是不会让步的
- linux下用户命令
- softmax的简洁实现
- linux自动分区shell,SHELL脚本实现分区
- redis配置认证密码以及远程访问
- react-testing-library
- Windows官方镜像大全---【内附网盘链接】
- 刷新计算机dns缓存的命令,Windows系统刷新DNS缓存命令是什么?Win7系统清除DNS缓存方法...
- 弹幕有硬伤,转变主流成妄想
- python最好视频教程_国外最顶级的Python视频教程,赶紧收藏!(带中文字幕)
- Theano简单入门(三)
- 时间固定效应和个体固定效应的选择_固定效应模型必须同时控制时间和个体吗?...
- K8S------概述
- 打卡学习——应对焦虑的一剂良方!
- python爬虫 requests+lxml爬取前程无忧网之模拟浏览器登录
- 2021年起重机司机(限桥式起重机)考试内容及起重机司机(限桥式起重机)最新解析
- 全局对比度的图像显著性检测算法
热门文章
- php实现 令牌桶,php 基于redis使用令牌桶算法实现流量控制
- 海康威视二次开发 python_海康威视面试python后端题
- 软件测试VS软件开发哪个好?怎么选择
- JAVA基础知识点大全之一
- CEFSharp崩溃分析及解决办法
- Iphone 5s/iPad Air/iPad Mini 2 降级10.3.3
- 思科交换机路由器破解密码
- java后台设置定时执行任务,Java定时任务调度详解
- java 定时任务 单元测试_介绍java 定时任务最简单的3种实现方法
- android viewholder模式,为什么在ViewHolder模式中ViewHolder类应该是静态的?