千家信息网

UML急速入门

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,UML是什么UML定义:统一建模语言(Unified Modeling Language,缩写UML)非专利的第三代建模和规约语言UML特点:UML是一种开放方法用于说明、可视化、构建和编写一个正在开
千家信息网最后更新 2026年11月02日UML急速入门

UML是什么

UML定义:

  • 统一建模语言(Unified Modeling Language,缩写UML)
  • 非专利的第三代建模和规约语言

UML特点:

  • UML是一种开放方法
  • 用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法
  • UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效

在UML2.2中一共定义了14中图示,大体分为三类:

  • 结构式图形:强调的是系统式的建模
  • 行为式图形:强调系统模型中触发的事件
  • 交互式图形:属于行为式图形的子集,强调系统模型中资料流程

1.结构式图形:

  • 静态图(类图、对象图、包图)
  • 实现图(组件图、部署图)
  • 剖面图
  • 复合结构图

2.行为式图形:

  • 活动图
  • 状态图
  • 用例图

3.交互式图形:

  • 通信图
  • 交互概述图(UML2.0)
  • 时序图(UML2.0)
  • 时间图(UML2.0)

UML类图:

类图(Class Diagram):用于表示类、接口、实例等之间相互的静态关系,虽然名字叫类图,但类图中并不只有类。我们来看一个比较全面的UML类图样例:

首先在图的上方可以看到一个"动物"矩形框,这个矩形框就代表一个类。类图分三层,第一层是类的名称,如果是抽象类,类名会使用斜体表示。第二层是类的属性,也就是类的字段或变量。第三层是类的行为,也就是方法或者说函数。

图中左下角的"飞翔"表示一个接口图,与类图的主要区别是接口图顶端有<<interface>>。第一层自然是接口的名称,第二层则是接口方法。接口还有另一种表示方法,也就是图中的棒棒糖表示法。

然后我们来简单说说子类与父类及实现类与接口的关系在UML类图中的表示方式:

当类与类之间是继承关系时,使用空心三角形和实线来表示,而一个类实现了一个接口时,使用空心三角形和虚线来表示,不管是继承关系还是实现关系,三角形箭头都是由子类指向父类或接口

类与类之间的关系及其在UML类图中的表示方式,关联关系:

当一个类"知道"另一个类时,那么它们就具有关联关系,关联关系使用实线箭头表示。例如图中的企鹅需要知道气候这个类,此时企鹅类与气候类就是关联关系

聚合关系:

图中的大雁群和大雁这两个类就是聚合关系,我们都知道大雁是群居动物,多只大雁可以聚合成一个雁群,所以它们之间就满足聚合关系。聚合表示一种弱的"拥有关系",体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系使用空心菱形和实线箭头来表示

合成(组合)关系:

合成是一种强的"拥有"关系,体现了严格的部分和整体的关系,部分与整体的生命周期一样。上图中的鸟和其翅膀就是合成(组合)关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。合成关系用实心的菱形和实线箭头来表示。另外,在图中合成关系的连线两端还有一个数字1和数字2,这被称为基数,表明这一端的类可以有几个实例。很显然,一只鸟应该有两只翅膀,所以翅膀的基数是2。如果一个类可能有无数个实例,则就用n来表示。除了合成关系外关联关系以及聚合关系也可以有基数

依赖关系:

我们都知道动物维持生命就得进行新陈代谢,那么就需要氧气、水等物质。也就是说,动物依赖于氧气和水。所以它们之间是依赖关系,使用虚线箭头来表示。


接着我们再来看单个类的类图:

同样的从上至下分别是类名、属性以及行为。属性和行为前面都有权限表示符,+ 表示public、- 表示private、# 表示protected、~ 表示default。属性和行为中有下划线的表示static,即静态的属性、方法。

而与该类图所对应的Java代码如下:

public abstract class StudentClass {    public String name;    private int age;    protected double weight;    double height;    public static char sex;    public void eat(String food) {    }    protected void drink() {    }    private void walk() {    }    void run() {    }    public abstract void study();    public boolean openMac() {        return true;    }    public static void playGame(){    }}

记忆技巧

下面介绍一些简单UML类图的记忆技巧:

记忆技巧1:UML箭头方向:

  • 从子类指向父类

可能有些人会认为子类是以父类为基础的,箭头应从父类指向子类。但我们都知道定义子类时需要通过extends关键字指定父类,那么子类一定是知道父类定义的,只有知道对方信息时才能指向对方,而父类是不知道子类是如何定义的,所以箭头方向应从子类指向父类。

记忆技巧2:实线 - 继承 | 虚线 - 实现:

  • 空心三角箭头:继承或实现:
  • 实线 - 继承,is a 关系,扩展目的,所以不虚,很结实
  • 虚线 - 实现,虚线之所以"虚"是因为无实体,因为接口是需要被实现的

记忆技巧3:实线 - 关联 | 虚线 - 依赖:

  • 虚线 - 依赖关系:临时用一下,若即若离,虚无缥缈,若有若无,所以是虚线,表示一种使用关系,一个类需要借助另一个类来实现功能。一般是一个类里的函数使用了另一个类作为参数,或作为返回值
  • 实线 - 关联关系:关系稳定,实打实的关系,铁哥们,表示一个类对象和另一个类对象有关联,通常是一个类中有另一个类对象做为属性

记忆技巧4: 空心菱形 - 聚合 | 实心菱形 - 组合:

  • 我们可以想象菱形就是一个盛东西的器皿(例如盘子,或者代码中的集合容器)
  • 而聚合代表空器皿里可以放很多相同的东西,聚在一起(箭头方向所指的类),所以是整体和局部的关系,两者有着独立的生命周期,是has a的关系,是弱关系
  • 组合则代表器皿里已经有实体结构的存在,可以说是生死与共了,是整体与局部的关系,和聚合关系相比,关系更加强烈,两者有相同的生命周期,contains - a 的关系,是强关系

记忆技巧5:常见基数表达及含义,假设有A类和B类,数字标记在A类一端:

  • 0..1:0个或1个实例,在系统某一时刻,代表B类的实例可以与0个或1个A类的实例相关
  • 0..*:0个或多个实例,代表B类的实例可以与0个或多个A类的实例相关
  • 1..1:1个实例,代表B类的实例可以与1个A类的实例相关
  • 1:只能有1个实例,代表B类的实例可以与1个A类的实例相关
  • 1..*:至少有1个实例,代表B类的实例可以与1个或多个A类的实例相关

注:通常会省略".."直接使用数字表示


UML时序图:

时序图(Sequence Diagram):是显示对象之间交互的图,这些对象是按时间顺序排列的

时序图中包括的建模元素主要有:

  • 对象(Actor)
  • 生命线(Lifeline)
  • 控制焦点(Focus of control)
  • 消息(Message)

我们来看一个简单的时序图, 左边是代码右边是时序图:

右边的时序图的三个方框表示三个实例:Client、Service、Device,而下面的虚线则是该实例的生命线,时间从上向下流逝,生命线仅存在于实例的生命周期内。其中虚线上的细长方形表示实例处于某种活动中,称之为控制焦点。黑色的实线实心箭头表示方法的同步调用,异步调用是实线非实心箭头,而虚线非实心箭头则表示方法的结束返回。这些箭头所表示的元素就是消息,例如图中的work和open等。

实例 箭头 对象 虚线 实线 接口 图中 子类 生命 代表 方法 关联 图形 技巧 时序 行为 记忆 之间 属性 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网加科技 伟宏互联网科技 互联网科技英文 互联网科技公司怎么样 赫美联合互联网科技 互联网科技视频素材 哈尔滨新华互联网科技 互联网科技博主是什么意思 北京华百购互联网科技有限公司 中国航天科技大学国际工业互联网 湖南一路畅行互联网科技 东莞新华互联网科技学校 西安小鹰速贷互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 群盈汇互联网科技有限公司 元气玛特互联网科技公司是外包吗 新氧科技和美国互联网有关系吗 陕西九四连强互联网科技有限公司 兰石爱特工业互联网科技分公司 数字互联网科技有限公司 互联网金融科技 互联网科技金融公司 互联网科技ppt模板 海南科技产业互联网平台 上海电发互联网科技有限公司 现代互联网科技股 互联网经济与金融科技 苏州五指互联网络科技有限 赶超互联网科技 微信多开 亚光科技低轨卫星互联网
0