UML图之学习绘制样例

177 阅读5分钟

流程图(活动图)

活动图可以通过节点和连接线展示起点和终点的执行顺序,描述并发流程、条件判断、循环等复杂的逻辑。

当需要描述一个状态下的时候,有 “如果… 就…”、“同时做…”、“不同人负责不同部分”等等状况下,都可以使用流程图(活动图)。

流程图基础图形。

image.png

以图书馆借书为例。

椭圆作为流程图的开始。 一个流程图当中只有一个开始符号。

是否找到书籍部分需要利用条件判断,不同的条件来执行不同的流程。

image.png

为了提高流程图的逻辑性, 应该遵循从上到下,从左到右的顺序排列

用例图

用例图拥有四个元素。

image.png

银行系统实例

银行应用代表的是一个系统。

参与者有主要参与者和次要参与者的区别,主要参与者(客户)做出动作之后次要参与者(银行)才会做出响应。

主要参与者在系统的左边,次要参与者在系统的右边。

每个参与者必须至少与系统中的一个用例交互。

屏幕截图 2025-06-16 230536.png

之所以不联系上银行和登录,登录发生在银行内部,银行没有必要参与登录过程。

其他三张类型关系,有包含、扩展和泛化。

当用户登录账号时,页面会提示登录密码或者是密码错误。

image.png

当客户想转账或者是付款时,应用需要确保用户有足够的资金来完成这些交易。

image.png

当客户想要付款的时候,银行应用会给客户两个选择,从支票账户付款或从储蓄账户付款。

image.png

包含关系

包含关系显示了基本用例和包含用例之间的依赖关系。每次执行基本用例时,包含用例也会执行。

image.png

当有包含关系时,需绘制一条带有箭头的虚线指向包含的用例。

image.png

扩展关系

当执行基本用例时,扩展用例只有在满足某一条件的时候才会被触发。

使用一条带有箭头的虚线指向基本用例。

image.png

泛化(继承)关系

子用例有着父用例的功能,并且子用例还具有特有的功能。

image.png

类图

image.png

思考:既然已经存在了类名,那么又应该通过什么确定每个实例具体是什么呢?

image.png

属性可以做到区分实例里面各自有什么东西。

属性包含描述该类的每个实例的具体信息,也被称为字段、变量

image.png

在每一个属性之前都需要放置可见性符号。

属性名称以小写字母开头,后面跟着冒号和数据类型。

image.png

image.png

同样在方法之前我们需要设置可见性符号。

image.png

属性或方法的可见性用于设置该属性或方法的可访问性。

-属性(方法)表明属性或方法都是私有的。任何其他类或子类都无法访问他们;+表示的是属性或方法是公共的;#表示另一种可见性类型,意味着属性或方法受到保护,只能由同一个类或其子类访问;~表示可见性为package或default,意味着只要在同一个包中,任何其他类都可以访问。

继承性

继承不必对子类进行一个个的修改,只需对父类进行整体的修改即可。

image.png

关联

image.png

水獭吃海胆,但是二者没有关联关系。

聚合

用于说明整体和部分的关系。

部分可以脱离整体而独立存在。

image.png

组合

部分不能存在于整体之外。

没有父类时子类将无法存在。

image.png

多重性允许对关系设置数字约束。

时序图

银行服务器和银行账户之间都是自动取款机的一部分。

image.png

生命线从上往下表示时间顺序的先后。

image.png

接下来绘制参与者与对象之间的交互关系。

虚线代表返回消息或从接受对象返回到请求对象的消息。

image.png

图中使用了多个选择框和激活框,可以明显看出在哪一个部分活跃又或者是哪个部分需要考虑不同的情况。

E-R图

E-R图的基本概念:

image.png

image.png

两个实体之间的关系。

image.png

当你有一张数学试卷的时候,此时的你和数学试卷就是一对一的关系。

image.png

当各个科目的老师都给了你一份试卷之后,此时你和试卷之间就是一对多的关系。

image.png

当各个科目的老师分发给班级学生一人一份试卷的时候,此时学生和试卷之间就是多对多的关系。

image.png

三个实体之间一对多的关系

image.png

三个实体之间多对多的关系

image.png