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 ...
最新文章
- 51nod 1490: 多重游戏(树上博弈)
- 基于注解的 IOC 配置——创建对象(Component、Controller、Service、Repository)注入数据(Autowired、Qualifier、Resource、Value)
- WCF分布式开发常见错误(26):Authentication failed
- 黑客——技术的凝聚者???
- oracle如何获取自增id,oracle实现自增id
- Python出入库简洁系统
- [转载]读史记札记26:容人岂皆有雅量
- TypeScript:数组
- 将java类的泛型集合转换成json对象
- CSS z-index 属性 控制div上下层次
- html5设置谷歌浏览器兼容性,google浏览器
- 【English】【托业】【四六级】写译高频词汇
- FPGA基础之HLS
- GoogleEarth-- 一日坐看天下八千里
- 【翻译】十大要避免的Ext JS开发方法
- 2019年日历 打印 备注_2010年日历:可打印的日历和墙纸
- 使用Visual Paradigm如何复制表格
- 1.27 Cubemx_STM32H7 软\硬件I2C
- 传感器连接mysql_获取传感器数据并传入数据库-HTTP/POST/ASP.NET
- Android_10开发京东商城手机客户端的几点非技术性总结