UML-用例、类图、类图之间的关系详解

UML

一、用例图

用例图的基本概念

参与者用例以及用例与用例之间的关系构成的用于描述系统功能的动态视图称为用例图。

参与者的基本概念

参与者(Actor)是指存在于系统外部直接与系统交互的人、系统或者设备等。

参与者在画图中使用简笔人物画来表示,如下所示: 这里写图片描述
用例的基本概念

用例是系统为参与者提供的功能

对于用例的命名,我们可以给用例取一个简单的、概括性的,一般带有 动作性的词语
用例的图形化表示,如下所示:
这里写图片描述
参与者和用例的关系
如下所示:
这里写图片描述
用例与用例之间的三个基本关系

包含关系(include):一个用例中包含了其他的用例。 先看一个购买彩票的例子:

这里写图片描述
解释:当一个彩民进入到手机App页面后,购彩大厅页面包含了注册和登陆按钮,而注册和登陆按钮分别对应着两个页面。而用户,可能会经过购彩大厅去注册或者去登陆。 包含关系,一般含有这 一个意图的延续性。
扩展关系(extend): 将基用例中一段 相对独立并且可选的动作。看一个简单的登陆页面:
这里写图片描述
对于 自动登陆而言,它相对于登陆页面是相对独立,并且可选的,这个就叫做扩展关系。图形关系如下所示:
这里写图片描述
解释:对于彩民而言,他经过购彩大厅,主要的目标可能是登陆( 延续性),但是他登陆并不代表他会把 自动登陆给选上,这里面没有延续性,可能选择也可能不选择,只能作为登陆的一个跟屁虫存在,如果登陆界面不存在了,那么自动登陆也没有存在的必要了。
泛化关系(generalization):代表着一般到特殊的关系。反应到代码中,要么是 接口和实现类的关系,要么是 抽象类和子类的关系。图形化表示如下所示:
这里写图片描述
解释:对于”双色球选号”or”福彩3D选号”来说, 选号是他们公共的部分。

二、类图

简单的类图

先看一个简单的代码与类图的对应关系的示例:

这里写图片描述
解释:我们可以把类图看成三个 抽屉,第一个抽屉对应着 类名,第二个抽屉对应着 成员变量,第三个抽屉对应着 方法
一个完整的类图:
这里写图片描述
如何表示一个抽象类

图片如下所示,第一个抽屉中的字体是斜体:

这里写图片描述
如何表示一个接口

这里写图片描述

类与类之间的关系

泛化(父子)关系(Generalization):在Java中,此类关系通过关键字extends来明确的标识。

在UML中如下所示:
这里写图片描述
实现关系(Realization):在Java中,此类关系通过 implements来标识。
在UML中如下所示:
这里写图片描述
依赖关系(Dependency)(很薄弱的关系,很少画):依赖关系体现为,局部变量、方法中的参数、和对静态方法的调用。
在UML中如下所示:
这里写图片描述
关联关系(Association):如果在Field中出现了其他类的引用,那么它就是关联关系。
这些关系出现的位置有迹可循,请看下图:
这里写图片描述
这里写图片描述
但是,关联关系中也有 区别的,有如下几种形式:
1. 单向关联:单相思
2. 双向关联:心心相印,彼此都有对方的引用

3. 自关联:自己有自己的引用,典型的应用是 单例模式

3. 聚合:是 整体和部分的关联,描述的是”has a”的关系。汽车 = 发动机+轮子。 当汽车报废时,发动机和轮子不一定会报废,可能会进入二手市场。

4. 组合:首先,是 整体和部分的关系,但是和聚合有些区别,整体会 控制部分的生命周期,是一种产生(或者叫生产)的关系。例如:公司 = 部门1+部门2….。 当公司倒闭是时,部门也就没了,会随之销毁。
类图解决的问题

① 数据封装成类

② 类与类之间的关系
  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值